今天小編分享的科技經驗:AlphaFold為什麼能精準預測蛋白質結構?,歡迎閱讀。
2024 年 5 月 AlphaFold 3 問世,在預測生物分子結構方面再次更新,不僅提升了預測精度,其适用性也更加廣泛,很多人認為這是具有裡程碑意義的進展。人工智能究竟是如何預測蛋白質結構的,為什麼它的準确率如此之高?本文将簡要介紹 AlphaFold 系列預測蛋白質結構的基本原理。
神秘的蛋白質折疊
提到蛋白質,大家首先可能想到,它是一種人體必需的營養素,也可能會想到煎蛋、牛排或是一鍋美美的鲫魚豆腐湯。蛋白質是美食的代名詞,更是生命功能的物質基礎,處處發揮作用:負責運送氧氣的血紅蛋白是蛋白質;幫助我們消化食物的消化酶是蛋白質;胰島素、甲狀腺素等激素是蛋白質;參加免疫反應的抗體也是蛋白質 ……
據估計,人體内至少存在 2 萬種不同類型的蛋白質,這些蛋白質的結構和功能千差萬别,但構成它們的基本元素是一樣的——由 20 種氨基酸通過不同的排列組合而構成,譬如胰島素就是由 16 種、51 個氨基酸構成的。
當不同的氨基酸連成一串的時候,它們會脫水形成肽鏈,也就是蛋白質的一級結構;而這樣的一級結構是不穩定的,受到疏水作用、氫鍵和範德華力等影響,肽鏈最終會折疊成一個非常復雜而穩定的三維結構。圖 1 是一個蛋白質折疊前後對比的例子。
圖 1:蛋白質折疊示意圖丨圖源:wiki
蛋白質折疊成何種結構決定了它将具有何種功能,于是理解蛋白質如何折疊就成了一個十分重要的研究課題,這便是 " 蛋白質折疊問題 "。一個蛋白質如果因為各種原因而沒有正确折疊,就有可能不會正常發揮其功能,從而引發疾病,阿爾茲海默病、帕金森等疾病都和蛋白質的錯誤折疊有關。此外,在藥物設計上面,研究人員常常需要開發具有特定功能的蛋白質,而這需要對蛋白質折疊有深入理解。
1970 年代,美國生物學家、諾貝爾獎得主克裡斯蒂安 · 安芬森(Christian B.Anfinsen)提出 [ 1 ] :當環境條件合适(溫度、pH 值等)時,蛋白質折疊後的穩定三維結構完全由其氨基酸序列決定。這就是影響深遠的安芬森假說(Anfinsen's dogma),它背後的深意是:盡管蛋白質折疊的過程十分復雜,其中有各種力、分子的相互作用,但所有的信息竟然都包含在了其最初的氨基酸序列之中,這個過程又是如何發生的呢?于是 " 蛋白質結構預測問題 ",即給定蛋白質的氨基酸序列,輸出其最終折疊後的三維結構,成了分子生物學中的一座聖杯。
世界各地的生物學家拿起計算機這件強大武器,設計各路算法來追逐這座聖杯。這裡有一個問題:為什麼不直接通過實驗觀測蛋白質來确定其空間結構呢?事實上,自 1970 年代以來,通過實驗方法來确定蛋白質結構在不斷進步,精度不斷提高,特别是冷凍電鏡技術得到應用後,結構生物學得到了長足的發展。通過實驗方法确定的蛋白質結構也被認為是标準答案。
不過這些實驗方法非常耗時耗力,據估計,用實驗方法确定一個蛋白質結構需要 10 萬美元和長達數月的時間 [ 2 ] 。因此,如果能設計一個計算機算法來預測蛋白質三維結構,那将會大大地加速蛋白質結構的分析。并且計算機科學和算力的飛速發展也給生物學家們敞開了一扇新的大門,但是,用計算機算法來做預測絕非易事。
計算機預測的兩種方式
使用計算機來對自然過程的結果進行預測通常有兩種方式。第一種方式基于物理學,模拟計算分子運動過程,我們不妨稱之為 " 模拟派 "。這種方式在科學計算領網域有廣泛應用,我們每天都看的天氣預報正是通過計算機來模拟大氣運動實現的。
類似地,看過《三體》的讀者們一定都知道,三體運動不存在精确的解析解,但可以通過計算機進行數值模拟:将連續的物理過程模拟成很多離散的小步,然後在每一小步計算出可以接受的近似解,依次迭代完成最終的模拟。然而,要高分辨率地模拟物理過程需要巨大的計算量。
在蛋白質結構預測領網域,Folding@Home 便是一個知名的" 模拟派 "項目,它由斯坦福大學教授 Vijay Pande 于 2000 年發起,聯合全世界志願者的計算機來構成一個超大的分布式計算機,它同時也是全世界第一台 exaflops 級别(每秒進行 1018 次雙精度浮點數計算)的超級計算機。這樣強大的算力使得 Folding@Home 能夠對蛋白質折疊過程進行原子級别的模拟,超出先前估計可模拟的時段數千倍,其成果已經參與了 200 餘篇科學論文的發表。
模拟法的優勢在于它可以模拟出完整的、動态的分子運動過程;但是另一方面,由于需要巨大的計算量,對于比較大的蛋白質,模拟出最終的三維結構需要非常長的時間。不過,正是因為 " 模拟派 " 試圖模拟蛋白質折疊完全的過程,這使得他們的工作的意義遠遠不止預測最終的三維結構。
試想,若是計算機能将蛋白質折疊完整的動态過程如動畫般展現出來,這對于科學家理解蛋白質的錯誤折疊和藥物設計都會有極大幫助。正因如此,Folding@Home 在對于蛋白質錯誤折疊疾病的理解和治療上已經做出了若幹貢獻。
計算機預測自然過程的第二種方法是基于統計規律的預測,我們可以稱之為 " 統計派 "。" 統計派 " 不直接對物理過程進行模拟,而是将其視作一個黑箱,通過對過往的輸入和輸出尋找規律,進而對新的輸入進行預測。
換言之,這個過程是 " 數據驅動 " 的,首先需要有過往歷史數據,然後從數據中尋找規律。因為不需要模拟黑箱中完整的物理過程," 統計派 " 顯然比 " 模拟派 " 在計算上更高效。還是以天氣預報作為例子," 統計派 " 從過往的天氣中來尋找規律和特征,運用數理統計方法對未來做出預報,這就是天氣預報中的數理統計預報法。
然而對于蛋白質結構預測的問題,想要精确地找出輸入輸出之間的規律也十分困難,因為理論上任意兩個氨基酸之間都可能發生相互作用,其中的物理化學過程十分復雜。此外," 統計派 " 還有一個致命的難點在于,當過往數據中缺乏與當前輸入類似的輸入時,預測将會變得更加困難。
AlphaFold 為何如此耀眼?
" 統計派 " 的一大巨作便是 DeepMind 公司開發的 AlphaFold 了。其實在 AlphaFold 橫空出世之前,其他的預測算法(如 Rosetta@Home)也一直在進步,準确率不斷提升,然而 AlphaFold 的光芒實在太耀眼,以至于前人算法的進步顯得十分暗淡。
2020 年,AlphaFold 2 參加了蛋白質結構預測技術關鍵測試(CASP)比賽。這是蛋白質結構預測界的奧林匹克競賽,來自世界各地的參賽團隊會拿到未知結構的蛋白質的氨基酸序列,然後使用自己的算法預測其三維結構,最後和實驗測定結果進行比較,相似度越高分數就越高。
在這一年的比賽中,AlphaFold 2 取得了中位數分數 92.4 分(滿分 100 分;90 分以上被認為預測方法可與實驗方法媲美)的高分預測結果,它預測的蛋白質三維結構和最後實驗觀測的标準答案,僅有原子大小尺度的差異!這樣出色的成績以至于讓很多人認為,這個困擾了生物學界 50 年的問題就這樣被解決了!當然," 聖杯 " 不會那麼容易被拿下,但生物學家迎來了一件利器。
AlphaFold 是怎麼做到如此準确的預測的呢?它的核心武器就是深度學習。深度學習是一種從 2010 年代開始蓬勃發展的機器學習技術,它通過建立多層的神經網絡來模拟人腦的學習方式,具有強大的泛化能力和表達能力,能夠自動地從過往數據中學習復雜的模式與特征,以此對于新輸入進行精準預測。事實上,在 2018 年的 CASP 比賽中 AlphaFold 便已經參賽并奪得頭籌,不過那時還尚未達到如此高的預測準确率。
不過,AlphaFold 2 同樣也面臨諸多挑戰。首先,深度學習通常需要龐大的數據集來進行學習,而當時的蛋白質數據庫(Protein Data Bank)中只有大約 17 萬條蛋白質數據。這聽起來似乎已經不少了,但是我們橫向對比一下就知道這個數據量有多麼捉襟見肘:同樣是在 2020 年訓練的語言模型 GPT-3 使用了 3000 億個 token(可以理解為 " 詞 ")作為數據集,這可比 17 萬大了許多個數量級。
其次,AlphaFold 2 預測出的三維結構要遵循基本的空間幾何規律。從分子結構來說,三個原子所構成的三角形應該遵循兩邊之和大于第三邊的基本規律,而這樣的規律又應該如何與機器學習模型訓練的過程結合起來?換言之,如何讓機器在有限的數據集中習得這些知識呢?
AlphaFold 預測蛋白質基本原理
圖 2 是 AlphaFold 2 深度學習模型架構示意圖。最左邊的輸入表示需要被預測結構的序列(input sequence);旁邊畫了一個小人,代表人類的某種蛋白質。
圖 2:AlphaFold 2 深度學習模型架構圖丨圖源:參考文獻 [ 5 ]
接下來,這個輸入序列被轉換成兩種不同的信息,傳入後面的神經網絡進行迭代和學習。第一個信息,上面的 "MSA" 是多序列對比(Mutiple Sequence Alignment)的縮寫,意思是說,我們從一個現有的基因數據庫中搜索出與當前輸入序列最接近的一些序列進行對比。當然,搜出來的這些序列不一定是存在于人體中的,圖中就舉例了三個類似的序列,分别畫上了魚、兔子和雞,代表其來自相應的生物體。
搜索這些類似的氨基酸序列有什麼用呢?這是因為生物學裡有一些基本的遺傳規律,通過觀察其他存在的相似的序列,我們可以推測兩個氨基酸之間是否存在關聯,而這對于預測最終的三維結構是非常有用的信息。舉個例子,我們可能發現某兩個氨基酸(譬如一個在序列首位、一個在末尾)總是成對地出現突變(mutation),這就意味着它們倆在最後的三維結構中會有某種關聯。
在基因數據庫中搜出來了以後,MSA 信息會被轉換成一個矩陣,也就是圖片中橙色的矩陣(MSA representation)。這個矩陣的維度是(s,r,c),s 代表序列數,r 代表氨基酸序列的長度,c 代表氨基酸 embedding 的長度,相當于我們用一個向量來表示一個氨基酸,其長度就是 c。這個 MSA representation 矩陣在模型的訓練過程中會被反復迭代和更新。
第二個用來學習和迭代的信息是圖 2 中的 "Pair Representation",它是一個維度為(r,r,c)的矩陣,相當于把輸入序列橫着和豎着排列起來(行和列),形成一個正方形的矩陣;而元素(i,j)代表氨基酸 i 和氨基酸 j 之間的空間關系,如距離、角度等,用一個長度為 c 的向量來表示。換言之,這裡用了兩個不同的矩陣,一個是 MSA,代表生物演化信息;另一個是 Pair,代表空間幾何信息。在模型訓練的過程中,這二者相輔相成、相互更新,使得模型能夠充分融合、匯總兩者包含的信息。
MSA 和 Pair Representation 被傳入 Evoformer 模塊中進行更新,圖 3 是 DeepMind 論文中提供的 Evoformer 展開圖。如它的名字所暗示,Evoformer 是 Transformer 的一個變種,即在普通的 Transformer 模塊裡加入了各種 MSA 與 Pair representation 相互融合的操作,以及一些特定的模塊使得機器能夠習得空間幾何關系,等等。關于 Transformer 已經有許多介紹,這是一種十分強大的神經網絡架構,特别擅長捕捉長序列的上下文關系(long-range dependency),ChatGPT 名字裡的 T 正是 Transformer。
圖 3:Evoformer 模塊展開圖丨圖源:參考文獻 [ 5 ]
Transformer 的核心是一種被稱為自注意力(Self-Attention)的機制,它使得模型能夠學習出一段序列中每一個元素和其他元素的相關程度的高低。在語言模型的應用中,它能幫助模型學習到一句話中每一個詞和其他詞的相關性。在蛋白質結構預測的應用中,輸入的氨基酸序列恰恰也是一種序列——氨基酸按順序排列在一起,互相之間可以發生相互作用,這使得自注意力機制十分适用于這個場合。
這也充分顯示了 Transformer 的通用性,只要是可以表示為序列的數據,不管是文字、語音、影像,還是蛋白質序列,都可以使用 Transformer 來捕捉上下文信息。
原始的 Transformer 處理的是文字這種一維的序列,而 AlphaFold 兩種不同的輸入(MSA 和 Pair representation)都是二維的矩陣,于是在 Evoformer 模塊中,自注意力是以軸向注意力(Axial attention)的方式被使用,它是自注意力的一個變種,适用于對超過一維的數據進行上下文捕捉,即每次按某一個軸來進行那個維度上的自注意力計算。對于矩陣(二維)而言,是按行(row-wise)和列(column-wise)進行自注意力計算。
Evoformer 模塊裡還包括了若幹用來滿足三角不等式(即三角形的兩邊之和大于第三邊)的模塊,譬如 Triangle multiplicative update(黃色框)和 Triangle self-attention(粉紅色框),兩者皆可用來幫助模型學習到三角不等關系。前者需要的計算量更小,但 AlphaFold 2 團隊發現,兩者一起用,預測準确率更好。這樣的 Evoformer 模塊一共有 48 個,使得模型可以一層一層地學到深層次的特征模式,在此過程中,不斷地更新 MSA 和 pair representation,使得它們能夠表征更加豐富、準确的特征信息。
我們前面提到,Alphafold 2 的挑戰之一就是數據集比較小。研究人員的解決方案是,除了将 MSA 等演化相關的先驗的人工知識嵌入到神經網絡之中以外,還使用了一些擴充數據集的技術,如 Self-Distillation ——他們使用了一個未标注的、具有約 35 萬條氨基酸序列的新數據集 Uniclust30,并使用 AlphaFold 2 對其進行預測,然後通過将其中高置信度的預測結果加入到原始 PDB 數據集中,形成了一個擴充後的新數據集,然後在這個新的數據集上對模型進行重新訓練,這樣做也提升了最後的預測準确率。
總體而言,在訓練集不是很大的情況下,AlphaFold 2 的一大設計挑戰就是将人工的知識和模型學習的過程有機地融合在一起。AlphaFold 2 也很好地應對了這個挑戰,最後模型取得了出色的預測效果,掀起了一場生物信息學的革命。
更通用的 AlphaFold 3
AlphaFold 的腳步并沒有止步于 AlphaFold 2,就在 2024 年 5 月,DeepMind 推出 AlphaFold 3,再次引起業界轟動。AlphaFold 3 不僅僅能夠預測蛋白質的三維結構,也能預測更廣泛的生物分子復合物的結構(包括蛋白質、核酸、配體等),以及生物分子之間的相互作用。有趣的是,盡管 AlphaFold 3 對于預測精度和廣度都有提升,它自身的模型架構相比 AlphaFold 2 卻更加簡化而且通用了。
AlphaFold 2 雖然使用了 Transformer 這種通用的模型,但同時它也加入了許多工程化的細節去提升最後預測的結果。而在 AlphaFold 3 中,工程化的細節得到了簡化,取而代之的是更強大、更通用的模塊。譬如 AlphaFold 3 大大降低了對于 MSA 的使用和依賴,而主要使用 Pair representation 進行學習。
AlphaFold 2 中的核心模塊—— Evoformer 的數量在 AlphaFold 3 中被減到了 4 個;同時 AlphaFold 3 也增加了一個新的模塊 Pairformer,而這個模塊只對 Pair representation 進行更新,其數量是 48 個。這樣的設計是為何呢?
如我們前文所述,MSA 中保存的是從基因數據庫中搜出來的氨基酸序列,其包含了蛋白質演化信息,而 Pair representation 包含的是空間幾何信息。毫無疑問,後者是一種更加通用的表達方式,它不僅限于蛋白質這一種分子,也适用于配體等其他分子。因此,降低對 MSA 的依賴而加強對 Pair representation 的學習與更新能使得模塊更加通用化、能處理更多不同類型的輸入,這也正是 AlphaFold 3 的目标。
AlphaFold 3 另一通用化的設計在其結構模塊(structure module),即從 Pair representation 生成最終的三維結構圖。上一代的 AlphaFold 2 把蛋白質最終的三維結構視為一系列由氨基酸殘基構成的三角形在空間中的旋轉和平移構成的主幹框架(backbone frames)以及側鏈的扭轉(side-chain torsion),通過讓模型計算出這些三角形的旋轉角度、平移大小以及側鏈的扭轉角度來得出最終的蛋白質三維影像,其中的技術細節十分復雜。
而 AlphaFold 3 删繁就簡,模型架構中不再手動地編入三角形、旋轉、平移等概念,而是直接采用了一個标準的擴散模塊(diffusion module),這個擴散模塊将直接預測每一個原子在三維結構中的坐标,這也使得 AlphaFold 3 不再僅僅局限于蛋白質這一種分子的結構預測了。
令人感到驚奇的是,盡管 AlphaFold 3 在模型架構中去掉了許多 " 蛋白質特定 " 的部分,其在 " 蛋白質結構預測 " 這一問題上的預測結果竟然也超越了 AlphaFold 2。這似乎意味着,當模型走向通用化的時候,它以自己的方式從更加多樣化的輸入和任務中學習到了一些更本質的物理、化學規律,其海量的矩陣中,似乎包含了對我們所生活的世界更精準的認知。而這些更廣博的知識也使得 AlphaFold 3 在專項任務上的表現更加出色。
最後總結一下,AlphaFold 系列通過精準預測出最終的蛋白質結構,成為科研工作者的有力幫手;也再次證明了深度學習從數據中學習復雜模式的能力,借此 AI 變得更加智能與多任務化。盡管如此,人類對于蛋白質折疊完整的動态過程和機理仍然需要更多的理解,但 AlphaFold 已經成為了 AI 推動科學發展的一座裡程碑,而愈發強大的 AI 對于科學研究的助力還将繼續。