RoseTTAFold-蛋白質(zhì)預(yù)測的“平凡之路”


  • 在個人筆記本win10自帶子linux系統(tǒng)下奸鸯,運(yùn)行基于CPU運(yùn)算的RoseTTAFold
  • 避開uniref30、BFD這兩個超大數(shù)據(jù)包的下載及解壓
  • 提供便捷的pyRosetta安裝方式
  • 使用網(wǎng)頁工具獲得MSA和二級結(jié)構(gòu)文件


??7月份吧趣,AlphaFold2和RoseTTAFold相繼公布源碼,讓生物圈著實(shí)沸騰了一把。尤其是AlphaFold2忱辅,預(yù)測的準(zhǔn)確性只能用“卓越”來描述焰宣,在CASP 14大賽中一騎絕塵霉囚。但AlphaFold2所需要的運(yùn)算資源太苛刻了,只適合“貴族“玩家匕积,它的“平凡之路”還很遠(yuǎn)佛嬉。RoseTTAFold雖與AlphaFold2還有一定差距,但比其他預(yù)測軟件還是有很大的優(yōu)勢闸天,最可貴的是RoseTTAFold運(yùn)算資源要求低得多暖呕,能夠滿足平民化要求。下面我就來介紹下RoseTTAFold真正“飛入尋常百姓家”的過程與方法苞氮。

??首先聲明本教程有多“貧民化”湾揽。我做測試的硬件條件是:雜牌筆記本,intel i7 9750 CPU,24G內(nèi)存库物,1T移動硬盤霸旗,有NVIDIA顯卡但無法使用(即完全CPU版運(yùn)算),系統(tǒng)是Win10下的WSL 2?Ubuntu-20.04戚揭。相信對大多數(shù)人而言诱告,這個配置沒太大難度。使用example文件夾下的示例蛋白(138aa)運(yùn)行需要30min左右民晒,224aa測試蛋白50min左右精居。因?yàn)槲沂褂玫臋C(jī)械移動硬盤,I/O受限潜必,如果使用電腦自身固態(tài)硬盤靴姿,時間估計還能減少20%-30%。

測試輸出:

Starting......
2021-08-07 **12:59:19**
>>> Running hhsearch <<<
<<< hhsearch runing Done >>>
2021-08-07 **13:05:42**
>>> Predicting distance and orientations <<<
<<< predict_pyRosetta.py running Done >>>
2021-08-07 **13:11:57**
>>> Running parallel RosettaTR.py <<<
<<< parallel RosettaTR.py running Done >>>
2021-08-07 **13:47:09**
>>> Running DeepAccNet-msa <<<
<<< DeepAccNet-msa running Done >>>
>>> Picking final models <<<
<<< Final models saved in: ./model >>>
2021-08-07 **13:48:40**
****** All Done ******

??RoseTTAFold的官方說明介紹了其安裝使用方法磁滚,按照這了步驟佛吓,我們首先來看看適合的硬件要求:

  1. 能夠運(yùn)行GPU的NVIDIA顯卡,并且要支持CUDA 10.2及以上版本垂攘。這個要求不難维雇,一般筆記本就能勝任,難得是在WSL 2下配置NVIDIA顯卡驅(qū)動和CUDA環(huán)境晒他。(如果真想將RoseTTAFold用于預(yù)測計算谆沃,還是推薦安裝真正的linux系統(tǒng),網(wǎng)上有很多安裝linux系統(tǒng)的教程仪芒。)

  2. CPU和內(nèi)存:8核和64G內(nèi)存唁影,這個也不難。i7 cpu大多6核12線程了掂名,可能內(nèi)存達(dá)不到据沈,但事實(shí)證明16G內(nèi)存運(yùn)行224 aa的蛋白質(zhì)沒有問題,但內(nèi)存越大越好饺蔑。

  3. 硬盤空間:RoseTTAFold包含三個超大數(shù)據(jù)庫锌介,需下載432G,解壓后≈2.6T猾警,一般的筆記本是頂不住的孔祸。

uniref30 [46G] #解壓后180G

BFD [272G] #解壓后1.73T

pdb100_2021Mar03.tar.gz [114G]    #解壓后666G
  1. 理想狀態(tài),需要配置完全匹配的conda发皿、CUDA崔慧、Tensorflow-gpu、pyRosetta環(huán)境穴墅,這對于結(jié)構(gòu)預(yù)測老手不是啥難事兒惶室,但對“還菜還愛玩兒”青銅玩家就太復(fù)雜了温自,比如我。而且皇钞,使用win10的linux子系統(tǒng)悼泌,幾乎無法按要求完成CUDA配置,因此我的GPU根本沒用上夹界。我看有帖子說必須把win10升到win11才能使WSL 2正常使用CUDA

最基本的硬件要求

  1. 筆記本電腦(臺式機(jī)更好)
  2. CPU:不低于intel i5|4核8線程|2.6 GHz(筆記本最好是i7 6核)馆里。
  3. 內(nèi)存:不低于16G,500多就能買個金士頓的16G內(nèi)存條可柿。
  4. 硬盤:不低于1T(最好是固態(tài)硬盤鸠踪,機(jī)械硬盤I/O太慢了,嚴(yán)重影響效率)趾痘。
  5. 十分重要:如果是筆記本慢哈,一定要配個強(qiáng)力散熱底座蔓钟,如果是筆記本永票,一定要配個強(qiáng)力散熱底座,如果是筆記本滥沫,一定要配個強(qiáng)力散熱底座(嚴(yán)重聲明:我不是賣散熱底座的)侣集。modeling過程極其吃CPU。

軟件要求

  1. Win10的子linux系統(tǒng)已經(jīng)安裝好兰绣,推薦ubuntu 20.04版本世分,并完成軟件包安裝換源(如果不在乎軟件安裝速度這個無所謂)。
  2. conda已經(jīng)安裝好缀辩,并且配置好環(huán)境變量(可以在任何路徑啟動conda)臭埋,推薦anaconda3/miniconda3。
  3. 修改 ~/.condarc 文件臀玄,更換conda默認(rèn)安裝頻道瓢阴,刪除“ – defaults”,添加國內(nèi)鏡像源健无,最終內(nèi)容如下:
auto_activate_base: false
channels:
 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
show_channel_urls: true

使用步驟

  1. 下載源碼
git clone https://github.com/LiuZhen106/RoseTTAFold.git
cd RoseTTAFold/
  1. 下載建模用的network weights文件
wget https://files.ipd.uw.edu/pub/RoseTTAFold/weights.tar.gz
tar -zxvf weights.tar.gz
  1. 下載pdb100_2021Mar03.tar.gz文件并解壓到RoseTTAFold文件夾
wget -c https://files.ipd.uw.edu/pub/RoseTTAFold/pdb100_2021Mar03.tar.gz
tar -zxvf pdb100_2021Mar03.tar.gz
  1. 安裝conda環(huán)境

??conda是專門解決python不同版本軟件包沖突及其依賴關(guān)系的神器荣恐,安裝與使用網(wǎng)上有很多教程,本文不再贅述累贤。但有幾條常用命令叠穆,需要簡單介紹下。

conda env create -n test #新建一個名為test的環(huán)境
conda env create -f xxx.yml #從xxx.yml創(chuàng)建一個新的環(huán)境
conda remove -n test --all -y #刪除環(huán)境
conda activate XXX #啟用XXX環(huán)境
conda deactivate #關(guān)閉當(dāng)前環(huán)境
conda search xxx #查看xxx包的版本信息及channel來源
conda search xxx=yy –info     #查看包的詳細(xì)信息及依賴包
conda install xxx=yy #在當(dāng)前的環(huán)境安裝yy版本的xxx包
conda remove xxx=yy #卸載包
conda config --add channels 網(wǎng)址1 #添加軟件包源
conda config --remove channels 網(wǎng)址1 #刪除軟件包源

??原程序提供了pyrosetta/e2e兩種預(yù)測模式臼膏,根據(jù)Baek等的報道pyrosetta方法要比e2e更精確一些硼被。 運(yùn)行e2e的“主攻”是pytorch,需要RoseTTAFold 環(huán)境渗磅;pyrosetta的“主攻”包括pytorch祷嘶、tensorflow屎媳、pyRosetta,需要RoseTTAFold和folding環(huán)境论巍,而且pyRosetta需要在folding環(huán)境額外安裝烛谊。tensorflow-gpu、pytorch需要特定版本的cudatoolkit嘉汰、cudnn丹禀、python依賴包,Baek已經(jīng)將它們寫到了RoseTTAFold-linux.yml鞋怀、folding-linux.yml兩個文件中双泪。而至于pyRosetta的安裝,Baek等提供了下載安裝連接密似,但需要向Rosetta Commons申請學(xué)術(shù)版賬號和密碼焙矛。我把我申請的學(xué)術(shù)賬號與密碼,寫到了folding-linux.yml文件中残腌,在安裝folding環(huán)境時村斟,會自動配置好相匹配的pyRosetta程序。這里要特別向Rosetta Commons組織和Jeffrey Gray’s實(shí)驗(yàn)室表示敬慕抛猫,感謝他們的學(xué)術(shù)分享精神蟆盹。

??這里需要說明一下,pytorch闺金、tensorflow-gpu是GPU版的逾滥,它們?nèi)绻麢z測到CUDA/GPU設(shè)備可用就調(diào)用,否則使用CPU败匹,因此不需要更改它們的版本寨昙。此外,有些同學(xué)發(fā)生psipred掀亩、psipass2運(yùn)行報錯舔哪,這很大可能是gcc版本沖突造成的,可以在RoseTTAFold 環(huán)境下下載源碼重新編譯归榕。本文通過使用網(wǎng)絡(luò)資源的方法繞過了這些步驟尸红。

  1. 獲取輸入文件

??本文的方法繞過了原方法的前兩個步驟,因此需要三個輸入文件:input.fa t000_.msa0.a3m t000_.msa0.horiz刹泄。.a3m外里、. horiz文件需要從網(wǎng)上獲取。

1) 獲取大規(guī)模序列比對(MSA)結(jié)果
網(wǎng)址:https://toolkit.tuebingen.mpg.de/tools/hhblits

Parameters:E-value cutoff for inclusion特石,相當(dāng)于hhblits程序的 -e 參數(shù)盅蝗,越低越嚴(yán)格,建議首選1e-6姆蘸,如果獲得的序列太少墩莫,可以調(diào)高此值芙委,不推薦超過1e-3。 Number of iterations: 相當(dāng)于 -n 參數(shù)狂秦,值越大越好灌侣,但越大運(yùn)行越慢,推薦設(shè)置2裂问。Min probability in hitlist (%):相當(dāng)于 -p 參數(shù)侧啼,值越大越準(zhǔn)確,推薦50堪簿,如果獲得的序列太少痊乾,可以調(diào)低此值。Max target hits: 相當(dāng)于 -maxfilt 參數(shù)椭更,越大越好哪审,但也會拖慢后續(xù)hhsearch運(yùn)行,推薦2000虑瀑。

??運(yùn)行結(jié)束后湿滓,可以在“Query Template MSA”菜單下,點(diǎn)擊下載完整版.a3m文件缴川。源程序的腳本里茉稠,對結(jié)果進(jìn)行了過濾描馅,先使用嚴(yán)格條件輸出.a3m把夸,如果得到的序列數(shù)量低于2000/4000,調(diào)高E-value重新執(zhí)行铭污,可以將上一步輸出的.a3m作為新的輸入文件恋日。使用該網(wǎng)站也可以模擬該循環(huán),在“Result”菜單欄點(diǎn)擊“Forward”可以自動載體輸出重新執(zhí)行hhblits嘹狞,知道獲得你認(rèn)為滿意的結(jié)果岂膳。將最終下載的.a3m更名為“t000_.msa0.a3m”,移動到輸入工作文件下(即input.fa所在目錄)磅网。

  1. 獲得二級結(jié)構(gòu)預(yù)測文件
    網(wǎng)址:http://bioinf.cs.ucl.ac.uk/psipred/
    輸入:fasta格式的蛋白質(zhì)序列谈截,不需要設(shè)置任何參數(shù)
    ??運(yùn)行結(jié)束可以在右側(cè)欄下載.horiz文件,下載后更名為“t000_.msa0.horiz”涧偷,同樣移動到輸入工作文件下簸喂。

6. 運(yùn)行pyrosetta_ver腳本

  cd test/
  ../run_pyrosetta_ver_lz.sh input.fa .

7. 結(jié)果
??最終生成的結(jié)構(gòu)文件保存在model文件夾里,程序默認(rèn)挑選5個得分最高的燎潮,得分信息保存在modelQ.dat文件里喻鳄。其中model_1.pdb~model_5.pdb是軟連接,指向pdb-3track文件夾中的某些模型确封,而model_1.crderr.pdb與最終的結(jié)構(gòu)文件相比除呵,只是缺少文件頭和氨基酸殘基的權(quán)重信息再菊,而這些信息對后續(xù)結(jié)構(gòu)分析是不必要的,像zdock等蛋白-蛋白對接軟件反而不需要這些信息颜曾,因此model_1.crderr.pdb可以作為最終結(jié)構(gòu)文件使用纠拔。

8. 源碼地址
RoseTTAFold在線服務(wù)器: https://robetta.bakerlab.org
RoseTTAFold GitHub源碼: https://github.com/RosettaCommons/RoseTTAFold
本文修改的RoseTTAFold:https://github.com/LiuZhen106/RoseTTAFold


\color{#00A0A0}{Enjoy\ your\ time!}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泛豪,隨后出現(xiàn)的幾起案子绿语,更是在濱河造成了極大的恐慌,老刑警劉巖候址,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吕粹,死亡現(xiàn)場離奇詭異,居然都是意外死亡岗仑,警方通過查閱死者的電腦和手機(jī)匹耕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荠雕,“玉大人稳其,你說我怎么就攤上這事≌ū埃” “怎么了既鞠?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盖文。 經(jīng)常有香客問我嘱蛋,道長,這世上最難降的妖魔是什么五续? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任洒敏,我火速辦了婚禮,結(jié)果婚禮上疙驾,老公的妹妹穿的比我還像新娘凶伙。我一直安慰自己,他們只是感情好它碎,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布函荣。 她就那樣靜靜地躺著,像睡著了一般扳肛。 火紅的嫁衣襯著肌膚如雪傻挂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天敞峭,我揣著相機(jī)與錄音踊谋,去河邊找鬼。 笑死旋讹,一個胖子當(dāng)著我的面吹牛殖蚕,可吹牛的內(nèi)容都是我干的轿衔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼睦疫,長吁一口氣:“原來是場噩夢啊……” “哼害驹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛤育,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤宛官,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瓦糕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體底洗,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年咕娄,在試婚紗的時候發(fā)現(xiàn)自己被綠了亥揖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡圣勒,死狀恐怖费变,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情圣贸,我是刑警寧澤挚歧,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站吁峻,受9級特大地震影響滑负,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锡搜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一橙困、第九天 我趴在偏房一處隱蔽的房頂上張望瞧掺。 院中可真熱鬧耕餐,春花似錦、人聲如沸辟狈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哼转。三九已至明未,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間壹蔓,已是汗流浹背趟妥。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佣蓉,地道東北人披摄。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓亲雪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疚膊。 傳聞我的和親對象是個殘疾皇子义辕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容