当前位置:千优科技>行业资讯>首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

2022-06-24 03:24:24 浏览:604次 来源:互联网 编辑:leo 推荐:人工智能

首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

刚刚,哥伦比亚大学系统生物学助理教授MohammedAlQuraishi在推特上宣布,他们从头训练了一个名为OpenFold的模型,该模型是AlphaFold2的可训练PyTorch复现版本。MohammedAlQuraishi还表示,这是第一个大众可用的AlphaFold2复现。

首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

AlphaFold2可以周期性地以原子精度预测蛋白质结构,在技术上利用多序列对齐和深度学习算法设计,并结合关于蛋白质结构的物理和生物学知识提升了预测效果。它实现了2/3蛋白质结构预测的卓越成绩并在去年登上了《自然》杂志。更令人惊喜的是,DeepMind团队不仅开源了模型,还将AlphaFold2预测数据做成了免费开放的数据集。

然而,开源并不意味着能用、好用。其实,AlphaFold2软件系统的部署难度极大,并且对硬件的要求高、数据集下载周期长、占用空间大,每一条都让普通开发者望而却步。因此,开源社区一直在努力实现AlphaFold2的可用版本。

这次哥伦比亚大学MohammedAlQuraishi教授等人实现的OpenFold总训练时间大约为100000A100小时,但在大约3000小时内就达到了90%的准确率。

首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

OpenFold与原版AlphaFold2的准确率相当,甚至略胜一筹,可能因为OpenFold的训练集更大一点:

首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

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-memoryattention)对极长链进行推理,OpenFold可以在单个A100上预测超过4000个残基的序列结构,借助CPUoffload甚至可以预测更长的序列;
  • 内存高效在训练和推理期间,在FastFold内核基础上修改的自定义CUDA注意力内核,使用的GPU内存分别比等效的FastFold和现有的PyTorch实现少4倍和5倍;
  • 高效对齐脚本:该团队使用原始AlphaFoldHHblits/JackHMMERpipeline或带有MMseqs2的ColabFold,已经生成了数百万个对齐。

    Linux系统下的安装与使用

    开发团队提供了一个在本地安装Miniconda、创建conda虚拟环境、安装所有Python依赖项并下载有用资源的脚本,包括两组模型参数。

    运行以下命令:

    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

    首个大众可用PyTorch版AlphaFold2复现,哥大开源,star量破千

    扩展阅读:

    • 高效预测几乎所有人类蛋白质结构,AlphaFold再登Nature,数据库全部免费开放
    • 生物计算专家超细致解读AlphaFold2论文:模型架构及应用
    • DeepMind开源的AlphaFold怎么用?打开Colab就能在线用

      标签:人工智能新闻

      版权声明:文章由 www.e1000u.com 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.e1000u.com/article/11056.html