文章来源:https://finance.sina.com.cn/tech/2021-01-06/doc-iiznezxt0812011.shtmlhtml
从辉瑞疫苗被批准之后,它就被置于世界的聚光灯下。近日,一位程序员从计算机科学的角度,对辉瑞疫苗的设计进行了‘逆向工程’,文章引发不小的反响。程序员
从信头(Header)、元数据(Metadata),到帮助假装躲过人体免疫系统防火墙的 Ψ 分子,一支疫苗有2万亿段重复的代码,咱们看到了计算机与生物学那颇为神秘的联系。编程
辉瑞疫苗,逆向工程?后端
听起来有些难以想象,但一位程序员从计算机科学的角度深度剖析了Biotech/辉瑞的mRNA新冠疫苗BNT162b设计,并撰写了这篇文章—— Biotech/辉瑞SARS-CoV-2疫苗的源代码的反向工程(Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine)。(如下简称辉瑞疫苗)安全
读事后,你或许会开始会让你对生命和计算机世界产生奇妙的联系。服务器
若是你对编程感兴趣,想在将来为国家的医疗或其余方面奉献一份力量,小编给你推荐一个学习交流群,学习
十多年编程大神手把手带你成为程序员,q群:1151395975,还有免费好礼相送优化
简单的生物学背景编码
让咱们先来回顾一下生物学知识,这里,咱们将透过程序员的眼睛看待生命编码。spa
DNA和程序的种种类似的地方,但与计算机使用0和1不一样,生命使用A、C、G和U/T来编码。
在天然界中,A、C、G和U/T都是分子,以链的形式储存在DNA(或RNA)中。
在计算机中,咱们把8位编入一个字节,字节是处理数据的典型单位。
天然界将3个核苷酸组合成一个密码子,而这个密码子是典型的处理单元。
密码子包含6位信息 (每一个DNA字符2位,3字符= 6位,这意味着2⁶ = 64种不一样密码子值) 。
其次,疫苗是一种液体,咱们该如何谈论源代码?
源代码!
让咱们从疫苗的一小部分源代码开始,下图为世界卫生组织公布的BNT162b前500个字符。
mRNA新冠疫苗BNT162b的核心就是这个数字代码。它有4284个字符长,在疫苗生产过程的最开始,将这段代码上传到DNA打印机,而后打印机将磁盘上的字节转换成实际的DNA分子。
从这样的机器中产生了少许的DNA,在通过大量的生物和化学处理后,最终成为疫苗瓶中的RNA。
RNA就像计算机的RAM同样,可是,RNA很是脆弱,因此,辉瑞的mRNA疫苗必须储存在最深处的深冷库里。
每一个RNA字符的重量为 0.53·10⁻²¹克,一针疫苗里有2万亿段重复的代码,至关于25 Pb的数据量。
让咱们来看世卫组织文件披露的一页:
首先,cap是什么?就像你不能在计算机上的一个文件中输入操做码而后运行它同样,生物操做系统须要头文件、连接器和调用约定之类的东西。
疫苗的编码由如下两个核苷酸开始:
这能够与以MZ开头的DOS和Windows可执行文件,或以#!开头的UNIX脚本进行比较。在生活系统和操做系统中,这两个字符都不会以任何方式执行。但他们必须在那里,不然什么都不会发生。
mRNA ‘帽’有许多功能,它让代码看起来合法,从而保护它不被咱们身体里的免疫系统破坏。
未翻译区5 ‘UTR
生命由蛋白质组成。当RNA转化为蛋白质时,这被称为翻译。
RNA分子只能从一个方向读取。使人困惑的是,阅读开始的部分被称为5‘UTR。读数在3 ’UTR中止。
UTR(Untranslated Regions) 即非翻译区,是mRNA分子两端的非编码片断:
在这里,咱们遇到了第一个惊喜。正常的RNA特征是A、C、G和U。U在DNA中也被称为‘T’。但在这里咱们发现了一个ψ。
怎么回事?
这是关于疫苗的一个特别聪明的地方。咱们的身体运行着一个强大的反病毒系统,因为这个缘由,细胞对外来RNA很是冷淡,而且在它作出任何反应以前就要破坏它。
这对咱们的疫苗来讲是个问题——它须要偷偷经过咱们的免疫系统。通过多年的实验,人们发现,若是RNA中的U被一种稍做修饰的分子所取代,咱们的免疫系统就会失去兴趣。
因此在辉瑞疫苗中,每一个U都被1-甲基-3 ‘ -伪尿酰(ψ)所取代,它能帮助咱们的疫苗逃过免疫系统这一关。
在计算机安全领域,咱们也知道这个诀窍:有时可能传输某样东西,虽然这会引发防火墙和安全解决方案的怀疑,但这仍然被后端服务器接受,而后可能被黑客攻击。
不少人问,病毒可否也用ψ技术来战胜咱们的免疫系统?
这是不太可能的。由于生命根本没有制造1-甲基-3 ‘ -伪尿酰核苷酸的机制,而病毒须要依靠生命的机制来繁殖本身。而mRNA疫苗在人体内迅速降解,而ψ修饰后的RNA不可能在那里复制。
回到5 ‘ UTR。这51个字符是作什么的?如同天然界的一切事物同样,几乎没有任何事物有一个明确的功能。
当咱们的细胞须要将RNA翻译成蛋白质时,这须要使用一种叫作核糖体的机器。核糖体就像蛋白质的3D打印机。它摄取一串RNA,在此基础上释放出一串氨基酸,而后折叠成蛋白质。
这就是咱们在上面看到的状况。底部的黑色丝带是RNA。出如今绿色部分的缎带是正在造成的蛋白质。进出的东西是氨基酸和使它们适合RNA的适配器。
这个核糖体须要坐在RNA链上才能发挥做用。一旦就位,它就能够开始根据它摄入的RNA进一步造成蛋白质。从这一点上,你能够想象它还不能读出它首先降落的地方。
这只是UTR的功能之一:核糖体着陆区。UTR提供‘导入’。
S糖蛋白信号肽
如前所述,疫苗的目标是让细胞产生大量刺突蛋白。到目前为止,咱们在疫苗源代码中遇到的大可能是元数据和调用约定。如今咱们进入病毒蛋白质的领域。
然而,咱们还有一层元数据须要处理。一旦核糖体制造出一个蛋白质,这个蛋白质仍然须要去某个地方。这是编码在‘S糖蛋白信号肽(扩展先导序列)’。
了解这一点的方法是,在蛋白质的开头有一种地址标签,做为蛋白质自己编码的一部分。在这个特定的例子中,信号肽代表这种蛋白质应该经过‘内质网’离开细胞。
‘信号肽’不是很长,可是当咱们看代码时,病毒和疫苗的RNA是有区别的:
怎么回事呢?咱们知道,在生物学中,三个RNA字符组成一个密码子。每一个密码子都对特定的氨基酸进行编码。而疫苗中的信号肽与病毒自己的氨基酸彻底相同。
那么RNA是怎么不一样的呢?
有4³=64个不一样的密码子,由于有4个RNA字符,一个密码子中有3个。然而只有20种不一样的氨基酸。这意味着多个密码子对同一种氨基酸进行编码。
下表映射了RNA密码子和氨基酸之间的编码关系:
在这个表中,咱们能够看到疫苗(UUU -> UUC)的修改都是同义的。疫苗的RNA编码不一样,但会产生相同的氨基酸和蛋白质。
若是咱们仔细观察,咱们会发现大部分的变化发生在密码子的第三个位置,上面有一个‘ 3 ’。若是咱们检查通用密码子表,咱们会发现第三个位置一般与产生的氨基酸无关。
因此,这些变化是同义的,但为何会有这些变化呢?仔细观察,咱们发现除了一个变化以外,全部的变化都会致使更多的C和G。
你为何要这么作?如上所述,咱们的免疫系统会对‘外源性’RNA进行攻击,为了逃避检测,RNA中的‘U’已经被ψ所取代了。
然而,事实证实,含有更多G和C的RNA也能更有效地转化为蛋白质,这已经在疫苗RNA中实现了只要有可能就用G和C替换许多字符。
真正的刺突蛋白
疫苗RNA的下3777个字符相似于‘密码子优化’,能够添加大量的C和G。
这里咱们看到同义的RNA变化。例如,在第一个密码子中CUU变成了CUG。这给疫苗增长了另外一个‘G’,咱们知道这有助于提升蛋白质的生产。
当咱们比较疫苗中的整个刺突蛋白时,全部的变化都是同义的。除了两个,这就是咱们在这里看到的。
上面的第三和第四个密码子表明了实际的变化。那里的K和V氨基酸都被P或脯氨酸所取代。对于‘K’,这须要改变三次(‘!!’),而对于‘V’,这只须要改变两次(‘!!’)。
事实证实,这两个变化极大地提升了疫苗的效率。
那么这里发生了什么?若是你看一个真正的冠状病毒粒子,你能够看到刺突蛋白:
这些刺钉被安装在病毒体内 (‘核衣壳蛋白’)。但问题是,咱们的疫苗只会产生刺突,咱们不会把它们植入任何一种病毒体内。
结果是,未经修饰的,独立的刺突蛋白崩溃成不一样的结构。若是做为疫苗注射,这确实会使咱们的身体产生免疫力。但只针对崩溃的刺突蛋白。
真正的冠状病毒是带着尖刺的。在这种状况下,疫苗不会颇有效。
那么该怎么办呢?
2017年,有人描述了如何在正确的位置放置一个双脯氨酸替代,将使SARS-CoV-1和MERS S蛋白造成‘预融合’结构,即便不是整个病毒的一部分。这是由于脯氨酸是一种很是坚硬的氨基酸。它就像一种夹板,在咱们须要向免疫系统展现的状态下稳定蛋白质。
蛋白质的末端,下一步
若是咱们浏览其他的源代码,咱们会在刺突蛋白的末端遇到一些小的修改:
在蛋白质的末端,咱们会发现一个‘中止’密码子,在这里用小写的‘s’表示。这是一种礼貌的说法,表示蛋白质应该到此为止。最初的病毒使用UAA终止密码子,疫苗使用两个UGA终止密码子,也许只是为了更好的措施。
3 ‘UTR
就像核糖体在5 ‘端须要引入,咱们发现了’ 5UTR,在蛋白质的末端咱们发现了一个相似的结构,称为3 ‘ UTR。
关于3 ‘ UTR有不少说法,但这里引用维基百科的说法:‘3 ’ UTR在基因表达中起着相当重要的做用,它影响mRNA的定位、稳定性、输出和翻译效率。尽管咱们目前对3 ‘ -UTRs有了解,但它们仍然是相对神秘的。’
咱们所知道的是,某些3 ‘ UTR在促进蛋白质表达方面很是成功。根据世卫组织的文件,辉瑞疫苗3 ’ UTR是从‘split (AES) mRNA的氨基末端加强子和编码12S核糖体RNA的线粒体中提取的,以保证RNA的稳定性和高总蛋白表达’。
The AAAAAAAAAAAAAAAAAAAAAA end of it all
mRNA的最末端是聚腺苷化的。这是一种以‘AAAAAAAAAAAAAAAAAAAAAA’的奇特结尾。
彷佛,就连mRNA彷佛也受够了这个糟糕的2020年!
mRNA能够重复使用不少次,但在这个过程当中,它也会在末端失去一些A。一旦A耗尽,mRNA就再也不起做用而被丢弃。这样,‘多聚腺苷酸尾(Poly-A Tail)’就能够防止其退化。
有研究代表,对于mRNA疫苗来讲,A的最佳数量是多少。我在公开文献中读到,这个数字在120左右达到了顶峰。
BNT162b2疫苗的是:
这是30个A,而后是‘10个核苷酸链接体’(GCAUAUGACU),再后面是70个A。
太长不看版
若是上面的一切让你感到云里雾里,做者在这里为您准备了一份‘太长不看版’:
文章在reddit上引发了普遍讨论,学科间的边界彷佛也愈来愈模糊。
一位网友看完后直言:我经过稍微修饰U核苷酸,可使RNA越过咱们的‘安全系统’。咱们的安全系真的糟透了!
你呢?你怎么看?