蛋白結構建模與優化_最終幻想: 無中生有的蛋白質從頭設計

c92fb66a43cb0169cf0b52fd64033da1.png
作者簡介: 劉源 北京大學化學與分子工程學院/力文所

零.導讀

近幾年,蛋白質結構預測領域連續取得重大突破。首先是【AlphaFold】,在可以充分利用共進化信息結合深度神經網絡生成空間約束條件并降低相空間的搜索,極大地幫助了蛋白質的結構建模,顛覆了往年需要結合復雜結構采樣的算法,現在直接使用能量最小化即可得到預測的結構。隨后,在2019年底,David Baker團隊發表了【trRosetta】,其集合深度學習的諸多進展,并與Rosetta建模軟件結合,使得預測蛋白結構的門檻大大降低(在筆記本折疊蛋白) 。在【trRosetta】的文章中, 作者還發現了一個有趣的現象,對于很多之前設計的de novo design 的人工蛋白,在沒有同源序列(MSA)的情況下,只憑單序列輸入就可以預測到比較可靠的結構。

這個結果似乎暗示,trRosetta模型不但學到了用共進化信息來推斷空間約束,也學會了某些序列和結構之間的本質關聯。于是作者提出了兩個問題,

  1. 這些信息能否用來生成與訓練集序列不相關的新蛋白?
  2. 對于給定的空間約束(結構),模型能否通過反向傳播優化序列,也就是實現“design”的操作?

大佬David Baker 和 Sergey Ovchinnikov (Rising Star)最近在bioRxiv一起上線了兩篇文章,肯定了這兩個回答。在這兩篇文章中,同時也發現了一些令人意外的現象,讓我們一起來看看吧。

一、引理

蛋白質的結構和序列之間的關系,可以用條件概率和貝葉斯公式表示

P(seq|struct) = P(seq,struct)/P(struct) = P(struct|seq)*P(seq)/P(struct)

其中P(struct|seq),給定序列求結構,是trRosetta解決的結構預測問題。P(seq)是序列與結構無關的概率,也就是天然蛋白中氨基酸的頻率。P(struct)是與蛋白序列無關的結構信息,即背景。在文章中,作者對背景噪音單獨訓練了一個神經網絡,神經網絡的結構和trRosetta相似,但輸入的MSA為只與蛋白長度相關的隨機噪音。

二、不給結構隨便幻想

有了這個簡單的概率模型,作者的第一個問題就是如何讓神經網絡去幻想(hallucination)新的蛋白結構,我們能否隨機在P(seq,struct)中找一個位置然后找到它附近的極值?這就要說到深度學習中的一個有趣的問題DeepDream(深夢)。

DeepDream

這個方法反映的是一個神經網絡是怎么“認識”世界的,當你訓練好一個圖像分類器后,輸入一張圖片,deepdream就在圖中拼命尋找符合它所認識物體的pattern并加以放大,最后得到一張非常魔幻的照片。

db4eaf9cc8273a99c8e02137842c8afb.png

這也正是幻想蛋白希望得到的效果,如果給定一個條序列(比如一條隨機序列)時, trRosetta預測出來的空間約束往往是缺乏特征的。如果能夠像deepdream一樣在里面尋找像是理想蛋白的特征并加以強化,最后我們就能得到一個具有良好蛋白性質的空間約束及其序列。

ee486946a0c3f1155387ca8259f83a63.png

MCMC序列優化

具體的做法也相當簡單,首先給定一條初始序列(可以完全隨機也可以是有意義的序列),接著將一個大小為Lx64的隨機噪音輸入背景網絡,得到背景的空間約束。然后從初始序列出發,通過trRosetta網絡預測其空間約束,最初的約束可能分布相當彌散(因為序列不具有明顯結構特征),計算這個分布與背景分布的差異,如果兩者的KL散度越大,則說明得到的空間約束越像一個蛋白。作者在序列中隨機引入點突變,用Metroplis判據來不斷優化(增大)KL散度。

323a05461f523465de5661838a75c15e.png

通過一個模擬退火的過程,隨著溫度不斷降低,作者得到了與噪音相比,KL散度非常大的序列。從D圖中可以看到,天然蛋白,從頭設計的蛋白,以及模擬退火后的幻象蛋白序列與背景空間約束分布的散度依次提高。40000步后幻想序列具有非常高的KL散度。

863d65df5967d4876a32a80b5495d0fa.png

再比較一下序列,會發現幻想出來的序列距離天然蛋白非常遠,但結構上卻在PDB中具有很好的匹配程度。也就是說,幻想出來的蛋白是序列獨特但結構老套的蛋白。當然這并不奇怪,PDB庫早已經被報道覆蓋了蛋白質大部分可能折疊的空間,更何況trRosetta就是基于PDB結構進行的訓練。最終作者展示了多種全新幻想出來的序列,形成覆蓋全α全β或兩者混合的各類拓撲結構。

三、給定結構幻想序列

蛋白質設計的目的則在于優化P(seq|struct)。而在第二章節的MCMC采樣過程中,每次隨機突變一個氨基酸的方法效率較低,并沒有用到深度學習的關鍵技術“反向傳播”。這個方法可以使我們根據目標分布與預測分布的差異,有目的地批量更新氨基酸,為了用連續變量編碼氨基酸,文中采用PSSM來描述一條序列。這套方法被稱為trDesign。

a60b3c5a4521be1182db151c889c90d8.png

當我們有了一個目標結構的時候,就可以計算目標的空間約束(Target-P),用一條隨機序列通過trRosetta可以得到預測空間約束Q,P和Q的散度,就是我們希望最小化(使得Q接近P)的損失函數(注意在幻想時是希望最大化和背景的差異)。

085e09c507ad8b47fc44d63781a126be.png

這個流程可以快速的對輸入序列進行優化,只需幾十步的迭代就可以得到收斂的結果。通過對Foldit玩家設計的幾千個蛋白進行分析,傳統的勢能面打分Pnear可以得到與實驗較好的關聯性,但開銷十分巨大。而trDesign的損失函數與Pnear有很好的關聯性,且對實驗驗證成功的例子有更好的區分度。說明trDesign所優化的是整個能量面,即降低目標構象的能量同時提高其它構象的能量。但缺點在于對native結構的優化不如Rosetta深入,這主要是受限于模型的精度。

a01ccdaafcf3ffe2494471a7cd11bd42.png

那么究竟trRosetta學到了什么呢?作者列出了三點:

  1. 一些距離的雙峰分布說明模型學到了全局或二級結構的不同堆疊狀態;
  2. 相對天然蛋白或De novo設計的蛋白而言,trRosetta設計的蛋白具有更理想的局域序列-結構關系(圖E);
  3. trDesign設計的蛋白具有更少的表面輸水側鏈(圖F),盡管它們對全局最小影響可能不大,但如果表面過多的疏水側鏈,這可能使得蛋白質會偏向折疊成使這些氨基酸包埋的亞穩態結構。

總結

作者開發的這套方法不但可以進行快速的蛋白質設計,而且其效果是可以優化整個能量面的形狀,如果與適合在局部深挖的Rosetta FastDesign相結合,可以達到遠超原來蛋白設計流程的效果。

隨心所欲

劉源:有人可能會說,你能想象出新蛋白又有什么用?能反向傳播又如何,不就比design快點么?于是重點來了,由于這兩個方法都是基于trRosetta模型來的,所以如果合理的設計損失函數,人們就可以做到固定一部分想要的結構,然后幻想生成剩下的部分!這也就是深度學習里常見的inpaint問題,擋住一部分圖片,自動補全新圖。而且最終得到的設計是非常接近ideal的穩定蛋白,具有很多好的性質,從這個角度trDesign可以看成是一種濾鏡,給輸入的蛋白“磨皮”,讓它更加完美(穩定易折疊,優化能量面)。最近的一個例子是Baker組設計的一個IL-2的mimic從頭設計蛋白【neo-2】,在文章中作者使用了大量復雜的算法生成主鏈構象再進行設計,而理論上這個操作可以在新的框架中一步到位。相信這套方案在成熟之后會在設計抗體、疫苗等重大問題上帶來突破性進展。

皮卡車:這兩篇文章的idea是如何出來的,和Sergey的一些經歷和想法分不開。Sergey 主要做的是共進化相關的工作,GREMLIN為主,也可以叫markov random field, potts model,self-supervised learning等。通過對MSA的分析來得到蛋白質的接觸圖譜。然后遇到的一個問題是,目前的結果是通過分析單層神經網絡的參數獲得的。如果層數增加,物理意義不明晰,就在模型中丟失了接觸圖譜的解釋性,于是他搞了一套基于梯度的分析方法,Seqsal,把輸入當變量,就可以從多層神經網絡中,得到蛋白質的接觸圖譜,于是各種模型,autoencoder,VAE等都可以通過這個方法來重新解析。在后來,trRosetta有了,是一種從序列到結構的分析方法。那么倒過來把序列當變量,通過調整序列來降低模型的損失函數,同時又把序列推離序列噪音,deep network hallucination就出來了。在損失函數中增加一項給定的結構約束,trDesign就出來了。在有了這些想法之后,能夠在幾個月時間內快速推進算法和實驗。除了baker實驗室,其他地方也難找了。

嘗鮮

現在已經提供了源代碼和例子,感興趣的同志可以去嘗試 https://github.com/gjoni/trDesign。 安裝和使用都比較簡單,但目前的例子也比較簡單,更復雜的功能有待諸君開發。

5d12bf64c315345d1e52aa9495cc661f.png

引文

  1. Deep network hallucination:I Anishchenko, TM Chidyausiku, S Ovchinnikov, SJ Pellock, D Baker. De novo protein design by deep network hallucination. (2020) bioRxiv, doi:10.1101/2020.07.22.211482
  2. trDesign:C Norn, B Wicky, D Juergens, S Liu, D Kim, B Koepnick, I Anishchenko, Foldit Players, D Baker, S Ovchinnikov. Protein sequence design by explicit energy landscape optimization. (2020) bioRxiv, doi:10.1101/2020.07.23.218917
  3. AlphaFold:A.W., Evans, R., Jumper, J. et al. Improved protein structure prediction using potentials from deep learning. Nature 577, 706–710 (2020).
  4. trRosetta: Jianyi Yang, Ivan Anishchenko, Hahnbeom Park, Zhenling Peng, Sergey Ovchinnikov, and David Baker PNAS January 21, 2020 117 (3) 1496-1503
  5. neo-2:Silva, D., Yu, S., Ulge, U.Y. et al. De novo design of potent and selective mimics of IL-2 and IL-15. Nature 565, 186–191 (2019). https://doi.org/10.1038/s41586-018-0830-7

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530373.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530373.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530373.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【JAVA基礎篇】徹底搞懂拆箱裝箱

什么是裝箱拆箱? Java有8種基本數據類型,并且為這8種類型提供了包裝器類型。比如說int類型的包裝器類型是Integer。 裝箱是指將基本數據類型轉換成對應的包裝器類型。拆箱是指將包裝器類型轉換基本數據類型。 Integer i 10; //自動裝箱 int n i; …

gcn在圖像上的應用_每日摘要|基于CNN 特征的圖像卷積網絡識別雜草和作物

文章信息標題:CNN feature based graph convolutional network for weed and crop recognition in smart farming期刊:《 Computers and Electronics in Agriculture》第一單位:山東農業大學在線日期:2020-05-13Highlights1.提出了…

安卓超過兩行就加省略號_基礎標點符號使用規則詳解—8.省略號

省略號省略號,是標點符號家族中的比較特殊的一個符號,它是由六個小圓點組成。省略號的用法不止省略文字的作用。它還有以下幾種用法。1用法一(一)表示重復詞語或列舉的省略。例:1、果園里有桃樹、梨樹、杏樹、枇杷樹……真的是種類齊全。2、那…

【Java基礎篇】你真的了解構造器嗎?

構造器是方法名和類名相同,并且沒有返回值的特殊方法,可以使用的關鍵字有public, protected & private,或者省略(表示default) public class Constructor {//構造方法public Constructor(){}//實例方法public void…

【JAVA中級篇】線程池

上一篇文章已經介紹了線程的基本概念以及線程相關的API,下面來看一下線程池 一、線程池框架 1、線程池的優點 重用線程池中的線程,避免因為線程的創建和銷毀所帶來的性能開銷。 能有效控制線程池的最大并發數,避免大量線程之間因互相搶奪系…

kafka 腳本發送_Kafka筆記歸納(第五部分:一致性保證,消息重復消費場景及解決方式)...

寫在開頭:本章是Kafka學習歸納第五部分,著重于強調Kafka的事一致性保證,消息重復消費場景及解決方式,記錄偏移量的主題,延時隊列的知識點。文章內容輸出來源:拉勾教育大數據高薪訓練營。一致性保證水位標記…

【Java基礎篇】集合排序

所謂集合排序是指對集合內的元素進行排序。 集合工具類Collections中提供了兩種排序算法,分別是: Collections.sort(List list)Collections.sort(List list,Comparator c) Collections.sort(List list)這種方式需要對象實現Comparable接口,…

語言nomogram校準曲線圖_預測模型的概率校準

1.背景 機器學習分為:監督學習,無監督學習,半監督學習(也可以用hinton所說的強化學習)等。在這里,先簡要介紹一下監督學習從給定的訓練數據集中學習出一個函數(模型參數),當新的數據到來時,可以根據這個函數預測結果。監督學習的訓練集要求包括輸入輸出,也可以說是特征和…

eclipse debug 工程源碼時出現source not found問題解決

問題描述:使用eclipse debug啟動應用,并且打斷點在工程的源碼上面,提示source not found。 問題解決: 1、選中工程,右鍵Debug As》Debug Configurations 2、在Java Application下面選中需要debug的程序,然…

代碼中有個get是啥意思_是時候秀一波了,甩掉get和set,Lombok讓代碼更簡潔

前言前幾天有個新來的同事(實習生)驚訝的對我說:我們的代碼里好多錯誤,我的程序本地都啟動不了。我一臉懵逼的質問他:目前線上的代碼,怎么會有問題嗎?他不服氣的說:你來看嘛,就是有問題&#xf…

JavaWeb工程師知識圖譜

一個工作快三年的的Java菜鳥,總結梳理了一下JavaWeb工程師必須掌握的一些知識點(持續更新中。。。)。 預覽效果 xmind原始文件 百度云盤 鏈接:https://pan.baidu.com/s/1hp3MWGOX2I8APw75Suu52Q 提取碼:j6w6

【Java中級篇】基于jxl讀寫Excel文件遇到的問題

發生異常,并且提示:unable to recognize ole stream 遇到這個問題需要將Excel文件另存為Excel 97-2003(*.xls)

松下a6伺服x4接線圖_2021中山東鳳松下溫控器回收價高同行

2021中山東鳳松下溫控器回收價高同行西門子TDC,西門子存儲卡,西門子變頻器等全線西門子自動化產品。小汪 滿意的價格,快的付款速度,熱誠歡迎全國各地朋友洽談合作。具體回收業務:SIEMENS可編程控制器 1、SIMATIC,S7系列…

eclipse啟動發生Failed to load JNI shared library

今天啟動eclipse發生下面的情況 從網上知道是eclipse和jdk位數不一致導致的。 輸入java -version ,查看JDK是多少位,顯示64位的就是64位JDK,未顯示的為32位的JDK。 eclipse的安裝目錄下有一個叫eclipse.ini的配置文件,打開后能看到 x86_64說…

imx226_相機選型器

-- 全部 --AR1820HS (8)CMV2000-2E5C1PP (2)CMV2000-3E12M1PP (2)CMV2000-3E5M1PP (2)CMV4000-3E12M1PP (1)CMV4000-3E5C1PP (5)CMV4000-3E5M1PP (5)EV76C560ABT (25)EV76C560ACT (25)EV76C570ABT (23)EV76C570ACT (23)EV76C661ABT (20)IMX174LLJ-C (8)IMX174LQJ-C (8)IMX178LL…

算法的時間復雜度和空間復雜度的原理

一、算法分析 如何判斷一個算法的好壞呢?首先算法必須要正確,這是最基本的要求。其次: 算法花費的時間算法占用的空間小(輔助存儲空間)算法要容易調試,測試,理解,編碼,…

5條件篩選功能_一分鐘,徹底學會Excel高級篩選,坐等升職加薪!

Excel中高級篩選是普通篩選的加強,能夠實現更加復雜的篩選功能。請您看下面的示例圖:數據示例圖如果要求篩選出班級為2班且語文成績大于100分的數據,那么使用普通篩選連續篩選兩次就可以得到結果。請您看下面的操作演示:普通篩選操…

數據結構之樹【完善中】

一、樹的概念 樹是一種分組的層次結構。 樹的定義: 樹是n(n>0)個數據元素的集合,在任意一棵非空樹中,有如下特征 有且只有一個根結點(無前驅結點)當n>1時,其他結點被分為若干個互不相交集合,并且…

phpgif圖片包_PHP生成GIF動態圖片驗證碼

1 <?php2 /**3 * 調用示例4 **/5 session_start();6 $randCode ;7 //驗證碼隨機8 $str"abcdefghjkmnpqrstuvwsyzABCDEFGHJKMNPQRSTUVWSYZ23456789";9 for($i0;$i<4;$i){10 $safe.substr($str,rand(0,strlen($str)),1);11 }12 $_SESSION["imgcode"]…

工程圖標注粗糙度_Inventor教程之工程圖標注實例

1工程圖標注實例對以下實體零件進行全部的標注演示。操作步驟如下&#xff1a;(1)打開文件。運行Inventor&#xff0c;單擊“快速入門”選項卡“啟動”面板上的“打開”按鈕&#xff0c;在“打開”對話框中選擇“實體零件”&#xff0c;單擊“打開”按鈕進入實體零件。(2)新建工…