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,已经生成了数百万个对齐。 linux 系统下的安装与使用 开发团队提供了一个在本地安装 miniconda、创建 conda 虚拟环境、安装所有 python 依赖项并下载有用资源的脚本,包括两组模型参数。 运行以下命令: scripts/install_third_party_dependencies.sh 使用如下命令激活环境: source scripts/activate_conda_env.sh 停用命令: source scripts/deactivate_conda_env.sh 在激活环境下,编译 openfold 的 cuda 内核 python3 setup.py install 在 / usr/bin 路径下安装 hh-suite: # scripts/install_hh_suite.sh 使用如下命令可以下载用于训练 openfold 和 alphafold 的数据库: bash scripts/download_data.sh data/ 如果要使用一组 deepmind 的预训练参数对一个或多个序列进行推理,可以运行如下代码: python3 run_pretrained_openfold.py fasta_dir data/pdb_mmcif/mmcif_files/ --uniref90_database_path data/uniref90/uniref90.fasta --mgnify_database_path data/mgnify/mgy_clusters_2018_12.fa --pdb70_database_path data/pdb70/pdb70 --uniclust30_database_path data/uniclust30/uniclust30_2018_08/uniclust30_2018_08 --output_dir ./ --bfd_database_path data/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt --model_device cuda:0 --jackhmmer_binary_path lib/conda/envs/openfold_venv/bin/jackhmmer --hhblits_binary_path lib/conda/envs/openfold_venv/bin/hhblits --hhsearch_binary_path lib/conda/envs/openfold_venv/bin/hhsearch --kalign_binary_path lib/conda/envs/openfold_venv/bin/kalign --config_preset model_1_ptm --openfold_checkpoint_path openfold/resources/openfold_params/finetuning_2_ptm.pt 更多细节请参见 github:https://github.com/aqlaboratory/openfold
案例分享第九期:氮化铝陶瓷切割实例
我的个神!小米笔记本Air三月销售22万台
传言苹果MacBook Air本应配备AMD处理器
手机APP定位的基本原理分析
电路的识别和电路的连接方法
Linux系统下的安装与使用
PCB焊盘设计标准是什么
分组交换技术在计算机网络技术中的作用及特点是什么?
业界首款符合PCI标准并具NFC功能的销售终端参考设计
以匠心塑产品|FORESEE&Lexar齐亮相第九届深圳国际嵌入式系统展
什么是预警机有什么作用
HookAds恶意广告利用Windows漏洞下载恶意软件负载
蓄电池测试仪简介
震惊!FPGA运算单元可支持高算力浮点
基于ARM9的ARM926EJ-S核实现AVS视频编解码的设计
高速串行总线的信号完整性验证的基本方法解析
TCL么么哒3N拍照怎么样
人工智能人才固然贵但人工智能发展不容耽误
Fiat 500e和大众的E-up的快充速度
ADI推出最新快速原型制作套件AD-FMCDAQ2-EBZ