【Alphafold】Alphafold2

題記:

其實(shí)Alphafold2剛出來的時(shí)候就看過大佬的報(bào)道和文章。2018年的AlphaFold使用的神經(jīng)網(wǎng)絡(luò)是類似ResNet的殘差卷積網(wǎng)絡(luò),到了AlphaFold2則借鑒了AI研究中最近新興起的Transformer架構(gòu)。Transformer使用注意力機(jī)制興起于NLP領(lǐng)域,用于處理一連串的文本序列。而氨基酸序列正是和文本類似的數(shù)據(jù)結(jié)構(gòu),AlphaFold2利用多序列比對,把蛋白質(zhì)的結(jié)構(gòu)和生物信息整合到了深度學(xué)習(xí)算法中。雖然自己也是學(xué)計(jì)算機(jī)的,但是這個(gè)算法修為和大佬們相差太遠(yuǎn),看的其實(shí)也是云里霧里,只是看了個(gè)熱鬧和寂寞而已。除了大拇指點(diǎn)贊,也沒有然后了,因?yàn)槲覀冞€幾乎沒做關(guān)于蛋白的工作。今年因?yàn)橐恍┕ぷ鳡砍兜降鞍最A(yù)測,以及可能結(jié)合的大分子或者小分子的靶標(biāo)預(yù)測,所以才來學(xué)習(xí)并且實(shí)驗(yàn)一下大佬們的成果,看下對我們的工作有沒有幫助。

===讓學(xué)界狂熱的Alphafold2====

?

Alphafold2,它作為一個(gè)AI模型,為何引起各界狂熱?

?

因?yàn)樗怀鰜?,就解決了生物學(xué)界最棘手的問題之一。這個(gè)問題于1972年被克里斯蒂安·安芬森提出,它的驗(yàn)證曾經(jīng)困擾科學(xué)家50年:那就是給定一個(gè)氨基酸序列,理論上就能預(yù)測出蛋白質(zhì)的3D結(jié)構(gòu)。

畢竟蛋白質(zhì)由氨基酸序列組成,但真正決定蛋白質(zhì)作用的,是它的3D結(jié)構(gòu),也就是氨基酸序列的折疊方式。

?

為了驗(yàn)證這個(gè)理論,科學(xué)家們嘗試了各種手段,但在CASP14(蛋白質(zhì)結(jié)構(gòu)預(yù)測比賽)中,準(zhǔn)確性也只達(dá)到40分左右(滿分100)。

Alphafold2出現(xiàn),將這一準(zhǔn)確性直接拔高到了92.4/100,和蛋白質(zhì)真實(shí)結(jié)構(gòu)之間只差一個(gè)原子的寬度,真正解決了蛋白質(zhì)折疊的問題。所以很多做蛋白結(jié)構(gòu)的人都在驚嘆是不是要失業(yè)了。

目前,AlphaFold2的源代碼已經(jīng)在GitHub上公開,而且現(xiàn)在科學(xué)家正在利用AlphaFold2對已有的蛋白數(shù)據(jù)庫進(jìn)行高通量的預(yù)測,建立了一些模式生物物種所有蛋白的AlphaFold2預(yù)測結(jié)構(gòu)數(shù)據(jù)庫。除了人類蛋白質(zhì)組,數(shù)據(jù)集中還包括大腸桿菌、果蠅、小鼠等20個(gè)具有科研常用生物的蛋白質(zhì)組數(shù)據(jù),總計(jì)超過35萬個(gè)蛋白質(zhì)的結(jié)構(gòu)。

可以看到,雖然利用AlphaFold2預(yù)測了這么重要模式生物的數(shù)據(jù)庫(很多是uniprot中的蛋白),但是還是有一些重要的研究對象的數(shù)據(jù)庫并沒有(我們自己的數(shù)據(jù)集也沒有),所以只有搭建本地的AlphaFold2服務(wù),你才能用AlphaFold2隨心所欲的預(yù)測自己研究蛋白的結(jié)構(gòu)。

====下載和安裝======

Alphafold官方給出包需要docker,要求root權(quán)限或者設(shè)置dock組,正經(jīng)人一般都是沒有root權(quán)限,我也沒有使用過dock

,這里分享和測試一下大佬用conda安裝使用Alphafold。

git clone https://github.com/kuixu/alphafold.git

cd alphafold

說明里讓直接執(zhí)行./install_on_local.sh,我自己怕出問題,所以是分布安裝的。

======下載程序所需要的庫和模型=====

存儲(chǔ)差不多,至少得有三個(gè)TB左右。進(jìn)入scripts這個(gè)文件夾里面,運(yùn)行命令download_all_data.sh <下載目錄>,然后程序會(huì)自動(dòng)進(jìn)行下載。(運(yùn)行前請確保電腦可以正常上網(wǎng),下載會(huì)用到兩個(gè)工具aria2和rsync),這個(gè)過程大概會(huì)下載438GB的文件,得等待很長時(shí)間,如果斷網(wǎng)的話,你還得把其它的都刪掉,重新下載。我是用分程序單獨(dú)/并行下載的。

下載完成后,需要解壓,不同后綴的壓縮文件解壓命令不一樣,可以自行去百度一下Linux下各種壓縮文件的解壓縮命令,解壓后關(guān)注每個(gè)文件夾文件大小和文件名是否與上面這張圖中列出來的一致。另外,注意!bfd文件夾和small_bfd這兩個(gè)文件夾是互斥的,大文件夾里面只留一個(gè),bfd是完整的數(shù)據(jù)庫而small_bfd是簡化的數(shù)據(jù)庫,如果你的磁盤不夠,你就下后者。271.6 GB的bfd文件你就別下了。

Note: The download directory <DOWNLOAD_DIR> should not be a subdirectory in the AlphaFold repository directory. If it is, the Docker build will be slow as the large databases will be copied during the image creation.//官方網(wǎng)站也建議不要把數(shù)據(jù)庫的這個(gè)文件夾放在alphafold的子目錄,這樣會(huì)造成速度比較慢。

====alphafold運(yùn)行和測試======

可以直接運(yùn)行run_alphafold.py,直接去預(yù)測,參數(shù)說明如下:

也可以封裝成為shell腳本,例如用下面的run_alphafold.sh:

https://github.com/kalininalab/alphafold_non_docker

# Example run (Uses the GPU with index id 0as default)

./run_alphafold.sh -d ./alphafold_data/ -o ./dummy_test/ -f ./example/query.fasta -t 2021-11-01

?

# OR for CPU only run

./run_alphafold.sh -d ./alphafold_data/ -o ./dummy_test/ -f ./example/query.fasta -t 2021-11-01?-g False

不過真是慢,這么短一個(gè)蛋白都跑了好幾個(gè)小時(shí)。

在運(yùn)行代碼后在outputs里包含多個(gè)文件,現(xiàn)在后綴名為pdb的文件在PyMOL工具中打開,可以看到如下:

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容