【新智元導讀】從輝瑞疫苗被批準以后,它就被置于世界的聚光燈下。近日,一位程序員從計算機科學的角度,對輝瑞疫苗的設計進行了「逆向工程」,文章引起不小的反響,從信頭 (Header)、元數(shù)據(jù)(Metadata),到幫助偽裝躲過人體免疫系統(tǒng)防火墻的Ψ 分子,一支疫苗有2萬億段重復的代碼,我們看到了計算機與生物學那頗為神秘的聯(lián)系。
輝瑞疫苗,逆向工程?
聽起來有些不可思議,但一位程序員從計算機科學的角度深度剖析了Biotech/輝瑞的mRNA新冠疫苗BNT162b設計,并撰寫了這篇文章——Biotech/輝瑞SARS-CoV-2疫苗的源代碼的反向工程(Reverse Engineering the sourcecode of the BioNTech/Pfizer SARS-CoV-2 Vaccine).(以下簡稱輝瑞疫苗)
讀過后,你或許會開始會讓你對生命和計算機世界產(chǎn)生奇妙的聯(lián)系。
簡單的生物學背景
讓我們先來回顧一下生物學知識,這里,我們將透過程序員的眼睛看待生命編碼。
DNA和程序的種種相似的地方,但與計算機使用0和1不同,生命使用A、C、G和U/T來編碼。
在自然界中,A、C、G和U/T都是分子,以鏈的形式儲存在DNA(或RNA)中。
在計算機中,我們把8位編入一個字節(jié),字節(jié)是處理數(shù)據(jù)的典型單位。
自然界將3個核苷酸組合成一個密碼子,而這個密碼子是典型的處理單元。
密碼子包含6位信息(每個DNA字符2位,3字符= 6位,這意味著2? = 64種不同密碼子值)。
其次,疫苗是一種液體,我們該如何談論源代碼?
源代碼!
讓我們從疫苗的一小部分源代碼開始,下圖為世界衛(wèi)生組織公布的BNT162b前500個字符。
mRNA新冠疫苗BNT162b的核心就是這個數(shù)字代碼。它有4284個字符長,在疫苗生產(chǎn)過程的最開始,將這段代碼上傳到DNA打印機,然后打印機將磁盤上的字節(jié)轉(zhuǎn)換成實際的DNA分子。
DNA打印機,型號BioXp 3200
從這樣的機器中產(chǎn)生了少量的DNA,在經(jīng)過大量的生物和化學處理后,最終成為疫苗瓶中的RNA。
RNA就像計算機的RAM一樣,但是,RNA非常脆弱,所以,輝瑞的mRNA疫苗必須儲存在最深處的深冷庫里。
每個RNA字符的重量為0.53·10?21克,一針疫苗里有2萬億段重復的代碼,相當于25 Pb的數(shù)據(jù)量。
讓我們來看世衛(wèi)組織文件披露的一頁:
首先,cap是什么?就像你不能在計算機上的一個文件中輸入操作碼然后運行它一樣,生物操作系統(tǒng)需要頭文件、鏈接器和調(diào)用約定之類的東西。
疫苗的編碼由以下兩個核苷酸開始:
這可以與以MZ開頭的DOS和Windows可執(zhí)行文件,或以#!開頭的UNIX腳本進行比較。在生活系統(tǒng)和操作系統(tǒng)中,這兩個字符都不會以任何方式執(zhí)行。但他們必須在那里,否則什么都不會發(fā)生。
mRNA 「帽」有許多功能,它讓代碼看起來合法,從而保護它不被我們身體里的免疫系統(tǒng)破壞。
未翻譯區(qū)5 'UTR
生命由蛋白質(zhì)組成。當RNA轉(zhuǎn)化為蛋白質(zhì)時,這被稱為翻譯。
RNA分子只能從一個方向讀取。令人困惑的是,閱讀開始的部分被稱為5'UTR。讀數(shù)在3'UTR停止。
UTR(Untranslated Regions)即非翻譯區(qū),是mRNA分子兩端的非編碼片段:
在這里,我們遇到了第一個驚喜。正常的RNA特征是A、C、G和U。U在DNA中也被稱為「T」。但在這里我們發(fā)現(xiàn)了一個ψ。
怎么回事?
這是關于疫苗的一個特別聰明的地方。我們的身體運行著一個強大的反病毒系統(tǒng),由于這個原因,細胞對外來RNA非常冷淡,并且在它做出任何反應之前就要破壞它。
這對我們的疫苗來說是個問題——它需要偷偷通過我們的免疫系統(tǒng)。經(jīng)過多年的實驗,人們發(fā)現(xiàn),如果RNA中的U被一種稍作修飾的分子所取代,我們的免疫系統(tǒng)就會失去興趣。
所以在輝瑞疫苗中,每個U都被1-甲基-3 ' -偽尿酰(ψ)所取代,它能幫助我們的疫苗逃過免疫系統(tǒng)這一關。
在計算機安全領域,我們也知道這個訣竅:有時可能傳輸某樣東西,雖然這會引起防火墻和安全解決方案的懷疑,但這仍然被后端服務器接受,然后可能被黑客攻擊。
很多人問,病毒能否也用ψ技術來打敗我們的免疫系統(tǒng)?
這是不太可能的。因為生命根本沒有制造1-甲基-3 ' -偽尿酰核苷酸的機制,而病毒需要依靠生命的機制來繁殖自己。而mRNA疫苗在人體內(nèi)迅速降解,而ψ修飾后的RNA不可能在那里復制。
回到5 ' UTR。這51個字符是做什么的?如同自然界的一切事物一樣,幾乎沒有任何事物有一個明確的功能。
當我們的細胞需要將RNA翻譯成蛋白質(zhì)時,這需要使用一種叫做核糖體的機器。核糖體就像蛋白質(zhì)的3D打印機。它攝取一串RNA,在此基礎上釋放出一串氨基酸,然后折疊成蛋白質(zhì)。
這就是我們在上面看到的情況。底部的黑色絲帶是RNA。出現(xiàn)在綠色部分的緞帶是正在形成的蛋白質(zhì)。進出的東西是氨基酸和使它們適合RNA的適配器。
這個核糖體需要坐在RNA鏈上才能發(fā)揮作用。一旦就位,它就可以開始根據(jù)它攝入的RNA進一步形成蛋白質(zhì)。從這一點上,你可以想象它還不能讀出它首先降落的地方。
這只是UTR的功能之一:核糖體著陸區(qū)。UTR提供「導入」。
S糖蛋白信號肽
如前所述,疫苗的目標是讓細胞產(chǎn)生大量刺突蛋白。到目前為止,我們在疫苗源代碼中遇到的大多是元數(shù)據(jù)和調(diào)用約定。現(xiàn)在我們進入病毒蛋白質(zhì)的領域。
然而,我們還有一層元數(shù)據(jù)需要處理。一旦核糖體制造出一個蛋白質(zhì),這個蛋白質(zhì)仍然需要去某個地方。這是編碼在「S糖蛋白信號肽(擴展先導序列)」。
了解這一點的方法是,在蛋白質(zhì)的開頭有一種地址標簽,作為蛋白質(zhì)本身編碼的一部分。在這個特定的例子中,信號肽表明這種蛋白質(zhì)應該通過「內(nèi)質(zhì)網(wǎng)」離開細胞。
「信號肽」不是很長,但是當我們看代碼時,病毒和疫苗的RNA是有區(qū)別的:
怎么回事呢?我們知道,在生物學中,三個RNA字符組成一個密碼子。每個密碼子都對特定的氨基酸進行編碼。而疫苗中的信號肽與病毒本身的氨基酸完全相同。
那么RNA是怎么不同的呢?
有43=64個不同的密碼子,因為有4個RNA字符,一個密碼子中有3個。然而只有20種不同的氨基酸。這意味著多個密碼子對同一種氨基酸進行編碼。
下表映射了RNA密碼子和氨基酸之間的編碼關系:
RNA密碼子表(維基百科)
在這個表中,我們可以看到疫苗(UUU -> UUC)的修改都是同義的。疫苗的RNA編碼不同,但會產(chǎn)生相同的氨基酸和蛋白質(zhì)。
如果我們仔細觀察,我們會發(fā)現(xiàn)大部分的變化發(fā)生在密碼子的第三個位置,上面有一個' 3 '。如果我們檢查通用密碼子表,我們會發(fā)現(xiàn)第三個位置通常與產(chǎn)生的氨基酸無關。
所以,這些變化是同義的,但為什么會有這些變化呢?仔細觀察,我們發(fā)現(xiàn)除了一個變化之外,所有的變化都會導致更多的C和G。
你為什么要這么做?如上所述,我們的免疫系統(tǒng)會對「外源性」RNA進行攻擊,為了逃避檢測,RNA中的「U」已經(jīng)被ψ所取代了。
然而,事實證明,含有更多G和C的RNA也能更有效地轉(zhuǎn)化為蛋白質(zhì),這已經(jīng)在疫苗RNA中實現(xiàn)了只要有可能就用G和C替換許多字符。
真正的刺突蛋白
疫苗RNA的下3777個字符類似于「密碼子優(yōu)化」,可以添加大量的C和G。
這里我們看到同義的RNA變化。例如,在第一個密碼子中CUU變成了CUG。這給疫苗增加了另一個「G」,我們知道這有助于提高蛋白質(zhì)的生產(chǎn)。
當我們比較疫苗中的整個刺突蛋白時,所有的變化都是同義的。除了兩個,這就是我們在這里看到的。
上面的第三和第四個密碼子代表了實際的變化。那里的K和V氨基酸都被P或脯氨酸所取代。對于「K」,這需要改變?nèi)?「!!」),而對于「V」,這只需要改變兩次(「!!」)。
事實證明,這兩個變化極大地提高了疫苗的效率。
那么這里發(fā)生了什么?如果你看一個真正的冠狀病毒粒子,你可以看到刺突蛋白:
這些刺釘被安裝在病毒體內(nèi)(「核衣殼蛋白」)。但問題是,我們的疫苗只會產(chǎn)生刺突,我們不會把它們植入任何一種病毒體內(nèi)。
結(jié)果是,未經(jīng)修飾的,獨立的刺突蛋白崩潰成不同的結(jié)構(gòu)。如果作為疫苗注射,這確實會使我們的身體產(chǎn)生免疫力。但只針對崩潰的刺突蛋白。
真正的冠狀病毒是帶著尖刺的。在這種情況下,疫苗不會很有效。
那么該怎么辦呢?
2017年,有人描述了如何在正確的位置放置一個雙脯氨酸替代,將使SARS-CoV-1和MERS S蛋白形成「預融合」結(jié)構(gòu),即使不是整個病毒的一部分。這是因為脯氨酸是一種非常堅硬的氨基酸。它就像一種夾板,在我們需要向免疫系統(tǒng)展示的狀態(tài)下穩(wěn)定蛋白質(zhì)。
蛋白質(zhì)的末端,下一步
如果我們?yōu)g覽其余的源代碼,我們會在刺突蛋白的末端遇到一些小的修改:
在蛋白質(zhì)的末端,我們會發(fā)現(xiàn)一個「停止」密碼子,在這里用小寫的「s」表示。這是一種禮貌的說法,表示蛋白質(zhì)應該到此為止。最初的病毒使用UAA終止密碼子,疫苗使用兩個UGA終止密碼子,也許只是為了更好的措施。
3 'UTR
就像核糖體在5 '端需要引入,我們發(fā)現(xiàn)了' 5UTR,在蛋白質(zhì)的末端我們發(fā)現(xiàn)了一個類似的結(jié)構(gòu),稱為3 ' UTR。
關于3 ' UTR有很多說法,但這里引用維基百科的說法:「3 ' UTR在基因表達中起著至關重要的作用,它影響mRNA的定位、穩(wěn)定性、輸出和翻譯效率。盡管我們目前對3 ' -UTRs有了解,但它們?nèi)匀皇窍鄬ι衩氐摹!?/p>
我們所知道的是,某些3 ' UTR在促進蛋白質(zhì)表達方面非常成功。根據(jù)世衛(wèi)組織的文件,輝瑞疫苗3 ' UTR是從「split (AES) mRNA的氨基末端增強子和編碼12S核糖體RNA的線粒體中提取的,以保證RNA的穩(wěn)定性和高總蛋白表達」。
The AAAAAAAAAAAAAAAAAAAAAA end of it all
mRNA的最末端是聚腺苷化的。這是一種以「AAAAAAAAAAAAAAAAAAAAAA」的奇特結(jié)尾。
似乎,就連mRNA似乎也受夠了這個糟糕的2020年!
mRNA可以重復使用很多次,但在這個過程中,它也會在末端失去一些A。一旦A耗盡,mRNA就不再起作用而被丟棄。這樣,「多聚腺苷酸尾(Poly-A Tail)」就可以防止其退化。
有研究表明,對于mRNA疫苗來說,A的最佳數(shù)量是多少。我在公開文獻中讀到,這個數(shù)字在120左右達到了頂峰。
BNT162b2疫苗的是:
這是30個A,然后是「10個核苷酸連接體」(GCAUAUGACU),再后面是70個A。
太長不看版
如果上面的一切讓你感到云里霧里,作者在這里為您準備了一份「太長不看版」:
帽子來確保RNA看起來像普通的mRNA
已知的成功和優(yōu)化的5 ' UTR
密碼子優(yōu)化信號肽,將刺突蛋白送到正確的位置(100%從原始病毒復制)
原始刺的密碼子優(yōu)化版本,有兩個「脯氨酸」替代,以確保蛋白質(zhì)以正確的形式出現(xiàn)
一個已知的成功和優(yōu)化的3 ' UTR
一個有點神秘的多聚腺苷酸尾(Poly-ATail),里面有一個無法解釋的「連接器」
密碼子優(yōu)化在mRNA上增加了大量的G和C。與此同時,用ψ(1-甲基-3 ' -偽尿酰ψ)而不是U來幫助逃避我們的免疫系統(tǒng),因此mRNA會停留足夠長的時間,所以我們實際上可以幫助訓練免疫系統(tǒng)。
文章在reddit上引起了廣泛討論,學科間的邊界似乎也越來越模糊。
一位網(wǎng)友看完后直言:我通過稍微修飾U核苷酸,可以使RNA越過我們的「安全系統(tǒng)」。我們的安全系真的糟透了!
你呢?你怎么看?
責任編輯:lq
-
計算機
+關注
關注
19文章
7520瀏覽量
88233 -
編碼
+關注
關注
6文章
949瀏覽量
54874 -
代碼
+關注
關注
30文章
4803瀏覽量
68754
原文標題:一針重復2萬億段代碼,我「逆向工程」了輝瑞疫苗!
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論