电子计算机是人类最伟大的发明之一。作为一种能够按照指令对各种数据和信息进行自动加工与处理的电子设备,计算机的出现直接加快了人类向信息化社会迈进的步伐,并深刻地影响着从国民经济到个人生活的各个方面。
但如今,科学家们已经不满足于由芯片等材料组成的电子计算机了,而是将目光转向对细胞的编程,使细胞变成一种“活”的计算机。这就是当下十分热门的合成生物学(syntheticbiology)所涉及的全新领域研究。
合成生物学结合了科学和工程学,以设计和建立(合成)新的生物功能和系统。虽然合成生物学还是个相对较新的研究领域,但是它的出现和发展,将会对生物学、纳米制造和医学等许多领域产生重大影响。
在这个新兴领域中,研究人员目前面临着一项主要挑战,即在无法插入电子微控制器的情况下,将计算嵌入分子环境。而要做到这一点,人们需要开发一种方法,可以使用分子组件有效地表示计算。
近日,德克萨斯大学奥斯汀分校(UniversityofTexasatAustin)的研究人员创建了CRN++——一种在执行计算时编程确定的(质量作用)化学动力学的新语言。在他们预发表在9月份arXiv的论文中,研究人员对该新语言进行了概述,并构建了一个将CRN++程序翻译成化学反应的编译器。
图丨欧几里得算法及其CRN++语言写法(来源:Vasic等)
我们可以拿软件工程中的程序员编程使用的高级语言来举例。计算机作为一个只认识“0”和“1”的机器,并看不懂程序员写好的一个复杂程序,但是,如果依着计算机能看懂的机器代码来编程,累死程序员且不说,根本就难以实现当今大规模复杂的软件开发需求。所以,这个时候就出现了便于程序员编程使用的高级语言,写好的高级语言程序只需由编译器自动编译为计算机看得懂的机器代码即可。
图丨此次的论文(来源:arXiv)
在合成生物学中,其中最主要的思路就是,利用计算机工作原理,将细胞作为硬件,基因作为软件,来组装成一个人工的全新生物体,以实现人们的预期目标。虽然近年来DNA合成的发展已经为分子工程开辟了令人兴奋的可能性,然而合成生物学的研究人员想要实现更复杂的预期目标,就必须首先设计一种能够以更直观的方式表达化学反应行为的高级语言。
“设计化学控制器,使之能够在细胞环境下相互作用并完成特定任务,是合成生物学的关键技术挑战,”本次研究的成员之一MarkoVasic表示,“为了实现这一目标,有必要设计合成分子并对其进行编程。分子通过化学反应相互作用,我们想要通过编程分子,定义其间相互作用的规则(化学反应)。”
(来源:GitHub)
在合成生物学领域中发明一种便于使用、易于理解的高级语言,并能够编译成各种复杂的化学过程,这便是CRN++开发人员的主要设想。
CRN++的设计主要基于两点:模块化及振荡器的使用。模块化意味着该语言包括一套被称为“模块”的化学反应,这些反应可以在不同的反应集之间组成,且不受干扰。为实现这一目标,研究人员将CRN++的基本操作映射到这些模块中。这就相当于软件开发过程中,功能模块化意味着可以根据需要,将这些功能模块自由组合。此外,化学振荡器的使用,意味着研究人员能够将已排序的语言命令,按时间排序转换为化学命令。
(图片来源:ITPRO)
作为一种全新的分子编程语言,CRN++解决了将常见的命令式构造嵌入到同时发生的一系列化学反应和操纵实值浓度的关键挑战。研究人员已经对CRN++进行了评估,并证明了其在一系列离散和实值计算算法上的可行性。
“当然,在将CRN++翻译成化学过程的程序中也包含一些错误,这些错误在某些类别的程序中可能非常低,但在有些程序中则可能很高,或者会随着时间的推移越积越多,”Vasic说,“因此,我们计划对错误来源进行进一步的研究,并设计程序以确保即使错误堆积,也不会超过限制。”
研究人员不仅提出了CRN++的语法和语义,并且构建了一个将CRN++程序翻译成化学反应的编译器,更重要的是,这一新语言还可以轻松扩展,支持新的命令或操作,这为开发更强大和实用的分子程序奠定了基础。
接下来,Vasic和他的同事们也将通过纳入新模块来扩展他们的编程语言,当然,这些新模块需要是被定义为可以执行基本操作的化学反应集。
图丨编译器的输出以及CRN++程序的模拟结果(来源:Vasic等)
“据我们所知,我们是提供符合化学反应网络的命令式编程语言的第一人,”Vasic说,“我们开源了我们的代码,包括CRN++和模拟框架,希望这能够使研究人员更容易地尝试新方法,从而进一步推进合成生物学领域的发展。”
尽管科学家们在合成生物学方面做的各项研究和实验还处于初级阶段,但毋庸置疑,合成生物学将催生下一次生物技术革命。
自年《自然》杂志报道了人工合成基因线路研究成果以来,合成生物学研究在全世界范围引起了广泛的