从辉瑞疫苗被批准以后,它就被置于世界的聚光灯下。近日,一位程序员从计算机科学的角度,对辉瑞疫苗的设计进行了「逆向工程」,文章引起不小的反响。一支疫苗有2万亿段重复的代码,我们看到了计算机与生物学那颇为神秘的联系。
一位程序员从计算机科学的角度深度剖析了Biotech/辉瑞的mRNA新冠疫苗BNT162b设计,并撰写了这篇文章——Biotech/辉瑞SARS-CoV-2疫苗的源代码的反向工程(Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine)。读过后,你或许会开始会让你对生命和计算机世界产生奇妙的联系。
让我们先来回顾一下生物学知识,这里,我们将透过程序员的眼睛看待生命编码。DNA和程序的种种相似的地方,但与计算机使用0和1不同,生命使用A、C、G和U/T来编码。在自然界中,A、C、G和U/T都是分子,以链的形式储存在DNA(或RNA)中。在计算机中,我们把8位编入一个字节,字节是处理数据的典型单位。自然界将3个核苷酸组合成一个密码子,而这个密码子是典型的处理单元。
让我们从疫苗的一小部分源代码开始,下图为世界卫生组织公布的BNT162b前500个字符。mRNA新冠疫苗BNT162b的核心就是这个数字代码。它有4284个字符长,在疫苗生产过程的最开始,将这段代码上传到DNA打印机,然后打印机将磁盘上的字节转换成实际的DNA分子。从这样的机器中产生了少量的DNA,在经过大量的生物和化学处理后,最终成为疫苗瓶中的RNA。
RNA就像计算机的RAM一样,但是,RNA非常脆弱,所以,辉瑞的mRNA疫苗必须储存在最深处的深冷库里。每个RNA字符的重量为0.53·10²¹克,一针疫苗里有2万亿段重复的代码,相当于25 Pb的数据量。
疫苗的编码由以下两个核苷酸开始:这可以与以MZ开头的DOS和Windows可执行文件,或以#!开头的UNIX脚本进行比较。在生活系统和操作系统中,这两个字符都不会以任何方式执行。但他们必须在那里,否则什么都不会发生。mRNA「帽」有许多功能,它让代码看起来合法,从而保护它不被我们身体里的免疫系统破坏。
在蛋白质的末端,我们会发现一个「停止」密码子,在这里用小写的「s」表示。
这是一种礼貌的说法,表示蛋白质应该到此为止。最初的病毒使用UAA终止密码子,疫苗使用两个UGA终止密码子,也许只是为了更好的措施。3'UTR就像核糖体在5'端需要引入,我们发现了'5UTR,在蛋白质的末端我们发现了一个类似的结构,称为3'UTR。mRNA的最末端是聚腺苷化的。这是一种以「AAAAAAAAAAAAAAAAAAAAAA」的奇特结尾。
mRNA可以重复使用很多次,但在这个过程中,它也会在末端失去一些A。一旦A耗尽,mRNA就不再起作用而被丢弃。这样,「多聚腺苷酸尾(Poly-A Tail)」就可以防止其退化。