AlphaFold2 是 2021 年 AI for Science 領域最耀眼的一顆星。現在,有人在 PyTorch 中復現了它,并已在 GitHub 上開源。這一復現在性能上媲美原版 AlphaFold2,且在算力、存儲方面的要求對于大眾來說更加友好。
剛剛,哥倫比亞大學系統生物學助理教授 Mohammed AlQuraishi 在推特上宣布,他們從頭訓練了一個名為 OpenFold 的模型,該模型是 AlphaFold2 的可訓練 PyTorch 復現版本。Mohammed AlQuraishi 還表示,這是第一個大眾可用的 AlphaFold2 復現。
AlphaFold2 可以周期性地以原子精度預測蛋白質結構,在技術上利用多序列對齊和深度學習算法設計,并結合關于蛋白質結構的物理和生物學知識提升了預測效果。它實現了 2/3 蛋白質結構預測的卓越成績并在去年登上了《自然》雜志。更令人驚喜的是,DeepMind 團隊不僅開源了模型,還將 AlphaFold2 預測數據做成了免費開放的數據集。 然而,開源并不意味著能用、好用。其實,AlphaFold2 軟件系統的部署難度極大,并且對硬件的要求高、數據集下載周期長、占用空間大,每一條都讓普通開發者望而卻步。因此,開源社區一直在努力實現 AlphaFold2 的可用版本。 這次哥倫比亞大學 Mohammed AlQuraishi 教授等人實現的 OpenFold 總訓練時間大約為 100000 A100 小時,但在大約 3000 小時內就達到了 90% 的準確率。
OpenFold 與原版 AlphaFold2 的準確率相當,甚至略勝一籌,可能因為 OpenFold 的訓練集更大一點:
OpenFold 的主要優勢是推理速度顯著提升,對于較短的蛋白質序列,OpenFold 的推理速度可以達到 AlphaFold2 的兩倍。另外,由于使用自定義的 CUDA 內核,OpenFold 使用更少的內存就能推理更長的蛋白質序列。 OpenFold 介紹 OpenFold 幾乎再現了原始開源推理代碼 (v2.0.1) 的所有功能,除了已趨于被淘汰的「模型集成」功能,該功能在 DeepMind 自己的消融測試中就表現不佳。 無論是否有 DeepSpeed,OpenFold 都能以全精度或 bfloat16 進行訓練。為了實現 AlphaFold2 的原始性能,該團隊從頭開始訓練 OpenFold,現已公開發布了模型權重和訓練數據。其中,訓練數據包含大約 400000 份 MSA 和 PDB70 模板文件。OpenFold 還支持使用 AlphaFold 的官方參數進行蛋白質推理。 與其他實現相比,OpenFold 具有以下優點:
- 短序列推理:加快了在 GPU 上推理少于 1500 個氨基酸殘基的鏈的速度;
- 長序列推理:通過該研究實現的低記憶注意力(low-memory attention)對極長鏈進行推理,OpenFold 可以在單個 A100 上預測 超過 4000 個殘基的序列結構,借助 CPU offload 甚至可以預測更長的序列;
- 內存高效在訓練和推理期間,在 FastFold 內核基礎上修改的自定義 CUDA 注意力內核,使用的 GPU 內存分別比等效的 FastFold 和現有的 PyTorch 實現少 4 倍和 5 倍;
- 高效對齊腳本:該團隊使用原始 AlphaFold HHblits/JackHMMER pipeline 或帶有 MMseqs2 的 ColabFold,已經生成了數百萬個對齊。
scripts/install_third_party_dependencies.sh
使用如下命令激活環境:
sourcescripts/activate_conda_env.sh
停用命令:
sourcescripts/deactivate_conda_env.sh
在激活環境下,編譯 OpenFold 的 CUDA 內核
python3setup.pyinstall
在 / usr/bin 路徑下安裝 HH-suite:
#scripts/install_hh_suite.sh
使用如下命令可以下載用于訓練 OpenFold 和 AlphaFold 的數據庫:
bashscripts/download_data.shdata/
如果要使用一組 DeepMind 的預訓練參數對一個或多個序列進行推理,可以運行如下代碼:
python3run_pretrained_openfold.py
fasta_dir
data/pdb_mmcif/mmcif_files/
--uniref90_database_pathdata/uniref90/uniref90.fasta
--mgnify_database_pathdata/mgnify/mgy_clusters_2018_12.fa
--pdb70_database_pathdata/pdb70/pdb70
--uniclust30_database_pathdata/uniclust30/uniclust30_2018_08/uniclust30_2018_08
--output_dir./
--bfd_database_pathdata/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt
--model_device"cuda:0"
--jackhmmer_binary_pathlib/conda/envs/openfold_venv/bin/jackhmmer
--hhblits_binary_pathlib/conda/envs/openfold_venv/bin/hhblits
--hhsearch_binary_pathlib/conda/envs/openfold_venv/bin/hhsearch
--kalign_binary_pathlib/conda/envs/openfold_venv/bin/kalign
--config_preset"model_1_ptm"
--openfold_checkpoint_pathopenfold/resources/openfold_params/finetuning_2_ptm.pt
更多細節請參見 GitHub:https://github.com/aqlaboratory/openfold
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
算法
+關注
關注
23文章
4619瀏覽量
93041 -
開源
+關注
關注
3文章
3368瀏覽量
42567 -
深度學習
+關注
關注
73文章
5507瀏覽量
121266
原文標題:首個大眾可用PyTorch版AlphaFold2復現,哥大開源OpenFold,star量破千
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
求教:樹莓派和arduino的通信
想讓樹莓派做arduino的上位機。 用的是樹莓派2B 和arduino UNO。第一步:在樹莓派linux系統下安裝arduino ide(失敗了)在樹莓派
發表于 09-23 10:01
【NanoPi M2試用體驗】NanoPi M2 debian簡單認識和疑問
聯網就成了一項極難的任務,即使現在,我依然沒有一個合理的解決方案。當然這也是我發表這篇帖子的初衷,學習之樂趣和水平的提高亦在交流(有點兒裝啊)。 目前我能想到的方法為,在Linux系統下安裝
發表于 05-03 22:22
【從0教學嵌入式Linux】第十七集
開發板的IP地址為:192.168.1.1013.開發板ping一下PC的Linux系統,確保網絡暢通4.在PC端的Linux系統
發表于 06-02 17:20
【從0教學嵌入式Linux】第三十二集
第32課:QT應用程序開發 (一)Linux系統下安裝QT Creator集成開發環境1、打開Software Center2、搜索QT Creator(二)應用開發1、
發表于 06-27 10:42
Linux系統下安裝ISO文件
路徑名) /mnt/cd1
3、此時,在/mnt/cd1目錄下,就有相應的安裝文件了,接下來安裝就可以了。
注:以上操作在su root 后進行,需要root權限。
發表于 07-04 08:21
最新版CCS7.3.0_官方軟件下載
CCSv6[6.2] 開始 Linux 版本只提供64位版本,只能在64位 Linux 系統下安裝及運行。 從 CCSv7 開始不支持 W
發表于 04-19 17:02
?0次下載
安裝Linux系統對硬件有什么要求
很多初學者在安裝 Linux 系統時,都對自己的電腦配置存在質疑,擔心其是否能夠滿足安裝 Linux 的要求。本節就從 CPU、內存、硬盤、
發表于 07-15 16:12
?2109次閱讀
在Linux下如何安裝和卸載rpm工具
在Windows系統下安裝軟件很簡單,只要雙擊后綴為.exe的文件,然后根據提示連續單擊“下一步”按鈕即可。然而在Linux系統
評論