从程序员的角度来看DNA(1)
源代码
在这里,这不是在开玩笑。这些源代码可以通过一个叫做'Ensembl’的专门的perl脚本浏览器来查看。
DNA并不像C的源代码,更像是已经编译好的可以在“虚拟机”上运行的“机器代码”。这个“虚拟机”可以是生物的细胞核。我们并不知道这些已经编译好的“机器代码”的源代码是否存在。
就算有这些源代码,我们是否能读懂它?当然如果未来人类能更自由地操控DNA,那么一定会发明人类自己的DNA源代码的编程语言。
和我们目前的机器代码类似,DNA的代码语言是数字形式的,但不是二进制的。二进制是0和1两种数字组成的编码,但是DNA有4种:T,C,G和A。
我们常用的1个字节有8位,而DNA的1个字节(称为'编码子’)有3位,每一位有可以有4个值(A、T、C、G),而不是2个值(0和1)。所以一个基因编码子有64个可能的值(4×4×4)。
DNA编码子的一个典型的例子是'GCC’,氨基酸丙氨酸由它编码而成。大量的这些氨基酸的聚合体成为'多肽'’或者'蛋白’,而这些就是在生命诞生过程中的不可缺少的化学活性物质。
位置独立的代码
动态链接库(大家应该都用过吧/ 动态链接库文件,是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源。 ),在DNA里也有类似的,被称为'置换代码’:
将近一半的人类基因组是由一些可以换位的片段或者一些跳跃基因组成,这是20世纪40年代Dr. Barbara McClintock在研究一种在印度玉米上发现的有关颜色奇特遗传方式时首次发现的。跳跃基因是指DNA的某些片段不是很稳定并且会'换位’,例如,他们会在染色体的前后移动。(这些'置换代码’,也就是动态链接库,可以自由地被加载到染色体代码的前面或者后面,具体的位置并不重要,因为只要程序知道需要调用其他共享的代码片段就可以)