文章來源: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越過咱們的‘安全系統’。咱們的安全系真的糟透了!
你呢?你怎麼看?