如今,“人工生命”已经不是难题,我们已经可以根据一些已知的生命共有规律来设计出一些模拟生命行为的对象——比如某种计算机程序;生命游戏就是一个经典的例子。它通过四条非常简单的游戏规则就展现出了一个千变万化的“生命”世界。
科普视频:《【混乱博物馆】生命游戏:另一种计算机》 https://www.bilibili.com/video/av11279860/
但是这都还仅仅是在我们自己设计的游戏规则内进行演绎,自然界的生命里那些我们未知的部分依然无法探究。所以我们更应该把目光集中到模拟现实中已知的生命活动上去。
2012年,发表在cell上的一篇文章,第一次对一个完整细胞(支原体)的生命过程进行了模拟。作者将细胞的生命过程分成了28个子模块,按时间片递进的架构进行演绎。虽然文章取得了令人瞩目的成功,但是整个模拟还是属于“建模”的层面。如果按照计算化学中,一切都必须从量子力学中的“第一原理”出发的“从头计算”方法来看,这个模型显然还是不符合的,这也就限制了这个模型的价值。
Karr, Jonathan R., et al. "A Whole-Cell Computational Model Predicts Phenotype from Genotype." Cell (2012)
制约我们直接按从头计算方法来模拟生命过程的主要因素之一就是计算量(除此之外还有计算精度等技术性瓶颈)。虽然理论上,所有生命活动以及生化反应都应服从基本物理定律。但是由于这些物理定律的描述对象大多是原子甚至亚原子级(或者是一个同构系统),而一个高级生命作为一个高度异构的系统,包含的原子是一个天文数字。我们现在的计算机性能几乎只能勉强达到模拟宏观物质水平的一半——是数量级上的一半。当然,坐等计算机性能提高自然是一个办法;但是,除了干等,我们应该还有其他办法。

我的看法是,我们实际上没有必要一定要去完成这么多模拟计算。一个生命过程中很多子过程都是高度冗余、高度重复或者是可以忽略不计的,我们理应对这些子过程进行抽象与简化。就像解题时我们在前面已经计算出了1+1=2,那么在后面的计算中再次遇到需要计算1+1的时候,就会直接代入先前的答案而没必要再算一遍。
实际上,我们人在进行研究时已经有意识或无意识地完成了这步工作。比如,研究水流时将无数水分子看作一个整体,研究细胞间的通讯时不再考虑细胞内部的活动,而是将细胞看作一个整体,仅仅考虑细胞膜表面的受体以及信号分子。在研究生命之间的相互影响时也用少数几个状态量来代表生命体。而这其中的隐患与问题在于,这些抽象是严重依赖研究者自身的,缺乏足够的客观性。比如,在现在的分子生物学研究中,同一个基因在不同的实验中体现出了不同的功能就可能被命名为多个名字,当然也有人尝试解决这个混乱与冗余,比如基因本体论(GO)。但是其本质依旧是一种人为的划分。
如果我们能寻找出一个公理化的抽象与化简标准,将这步工作交给计算机来完成,是否就可以在加速模拟效率的同时还不失模拟的客观性呢?
总的来说,我们在进行科学研究的过程中,已经形成了一套约定俗成的认识世界的流程与方法。现在我们要做的,不是把认识世界的结果教给计算机,而是将这套方法论教给计算机。这样计算机在重复发现我们的认识结果的基础上,还可能发现一些我们认识不到,或者根本在以前无法认识的对象。

实际上,在实验科学中,“重复”是一个非常重要的问题,以生物学为例有生物学重复、技术重复等等。但是生物学实验由于实验对象的特殊性,其黑盒性是无法避免的。这从游戏规则上就制约了我们对生命的进一步了解。
相反在计算机领域,每一次Debug都可以看做一次白盒实验,毕竟计算机本身就是我们人自己创造出来的机器,我们对其中的构造与运行是可以做到了如执掌的。那么,想办法利用计算机的白盒性,在计算机中重复出一个生物过程,对生物学研究的帮助无疑是巨大的。如先前所介绍的,这种重复在一些低级生物学过程上已经可以完成,但是对于高级生命过程我们现在还无能为力,我们的目标就是让计算机学会“跳步”,甚至学会“偷懒”,加速我们的模拟进程。

而这,就是「数字重复」——Cyber Repeat。
“行动”一词更能带给人行动力,所以整个构想的命名就成了「数字重复行动」,CR同时又可以是铬元素的缩写,那就neta为「铬元素行动」吧~

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。