进化「发现」的进化算法
生物之中的各种现象为包括计算机科学在内的科学和工程的很多领域带来了灵感和启发。其中生物进化的现象和机制启发了我们设计很多进化算法,包括遗传算法等。
另一方面,我们有很多创造性的设计,后来发现其实和生物通过进化产生的结构有异曲同工之处。例如,声纳和蝙蝠与海豚的超声波定位,或者照相机和眼睛 (我就不吐槽背照式出来之前,做 CMOS 的都是脊椎动物生理学太好的梗了)。
然而,在各种生物体之中,为应对面对环境带来的选择压,进化所找出的解决方案可能比你所设想的还更丰富多样—甚至进化算法本身,也成为一些生物对所在环境的适应的一部分。
脊椎动物的免疫系统,就包括这样一个进化算法的实现。
背景
生物体经常会被寄生生物感染,包括细菌,真菌,寄生虫等。脊椎动物也不例外。生物通常会有一些免疫机制以减少这些寄生生物的危害,例如动物的免疫系统。除了先天免疫系统之外,高等脊椎动物的免疫系统还包括适应性免疫系统,而后者则是本文主要讨论的内容。在适应性免疫系统中,抗体和 T 细胞受体的抗原特异性形成机制类似。这里主要讨论体液免疫的 B 细胞以及他们分泌的抗体。
尽管脊椎动物,比如人,会产生种类不计其数的抗体,他们的基因数相比这个值却少得可怜,例如人的基因总共也才两万多个。抗体是如何达到种类多样和具有高度抗原特异性的呢? 这里涉及的遗传机制主要包括 V(D)J 重组 (V(D)J recombination),体细胞超变 (somatic hypermutation, SHM) 和克隆筛选 (clonal selection) 等。
Problem
适应性免疫系统解决的问题可以近似表述如下:
给定一个蛋白质/多糖/其他具有抗原性的分子,找到一个合适的蛋白质序列,使得该抗原分子存在一个片段可以与该蛋白质序列达到足够强的结合。
可以看出这个问题有如下一些特点:
解空间极为巨大,
难以获得精确的最优匹配,然而
相似的序列的匹配程度通常也比较相似。
这时我们通常会希望—由于计算能力有限—得到一个足够好的近似解,因此这也正是以遗传算法为代表的各种进化算法派上用场的时候。
OK, let’s go.
V(D)J 重组
第一步需要生成一个候选方案集。在脊椎动物的适应性免疫系统中,这一过程是这样实现的。在种系细胞之中,编码免疫球蛋白重 (H) 链的基因包括几十个编码可变 (V) 区,几十个多样性 (D) 区,若干连接 (J) 区和两个恒定 (C) 区的片段。而编码轻 (L) 链的基因则不包括 D 区,另外 C 区的结构也不同。在 B 细胞发育的过程中,在合适的酶以及其他蛋白质因子的作用下,它会随机选取一段编码 V 区的片段,一段 D 区片段 (仅在 H 链中),一段 J 区和所有 C 区的片段,组合成一个新的基因。
V(D)J 重组的步骤:
重链位点的基因。
移除不需要的 D 和 J 基因片段。
重组 D 和 J 外显子—DJ 重组。
移除不需要的 V 和 D 基因片段。
重组 V 和 DJ 外显子—VDJ 重组。
抗体转录本也包括恒定区基因。
而这一过程的分子机理是,这些 DNA 片段在被剪下来之后,连接之前,两个链是连在一起的发夹结构,这时由另一个酶随机的切断这个发夹结构,产生具有不定长度的回文末端,然后由一种不依赖任何模板的 DNA 聚合酶—末端脱氧核苷酸基转移酶—往上添加随机脱氧核苷酸直到出现微同源结构为止。然后通过非同源末端连接 (non-homologous end joining, NHEJ) 把这些片段连在一起,就形成了这个细胞独一无二的免疫球蛋白 H/L 链基因,可以表达了。到此时,V(D)J 重组还只涉及两条染色体中的一条。
当然这时候这个新形成的基因很可能是不能正确表达出来的,比如核苷酸数不是 3 的整数倍造成移码,或者出现了一个终止密码子提前停止翻译等。如果这次重排失败了,那么它的同源染色体上的等位基因就发生重组,如果仍然失败,那这个细胞就只能狗带。
由于生物体自己也含有很多蛋白质,如果这些抗体/T 细胞表面受体与这些蛋白质具有强烈亲和力,后果很严重—比如各种自体免疫疾病。成功表达出 B 细胞表面受体,也就是这时还结合在细胞表面的抗体,的这些 B 细胞们随后要过一遍自体免疫测试。在胸腺和一些其他部位,有一种叫做 autoimmune regulator (AIRE) 的蛋白,而它的作用是在相应细胞中表达生物体中所有的蛋白质,包括通常只在周边器官和组织中表达的那些—比如胰岛素等。如果某个 B/T 细胞表面受体与这些蛋白质的某一种/某些具有较为强烈的结合,那对这些细胞也只能说 may God be with you 了。
亲和力成熟 (affinity maturation): 体细胞超变和克隆选择
而另外一个步骤,则是在现有的一个比较初步的结果上做出优化,以形成更好的匹配。当抗原通过某些方式被呈递给 B 细胞的时候,那些表面受体对该抗原有较好结合力的细胞就增殖分化。在增殖的过程中,在 DNA 复制的过程中,它们通过一些酶,故意为这个基因编码互补性决定区的片段引入至少为正常体细胞的 105-106 倍的突变率。这个过程就是体细胞超变。这些突变细胞随后被用来对这个抗原做亲和力测试,亲和力越高,收到的存活信号就越强烈,也越容易成活。而这个过程,则是克隆选择。体细胞超变和克隆选择逐代进行,直到亲和力足够高为止,此时满足这个亲和力标准的 B 细胞分化为浆细胞 (效应 B 细胞) 和记忆细胞。
似乎讨论算法的话发这里也不错… (喂