初尝OpenFold3
写在前面的
始于AF3,超越AF3,这是OpenFold3的理念。对于刚问世不久的OpenFold3仅仅包含基础功能(如蛋白质结构预测、配体蛋白互作等预测)而言,它目前或许在准确性上暂时无法超越Alphafold3,但是基于它的开发者联盟倡导的全球用户共同开发的理念,我相信在未来无论是在功能多样性还是在预测准确性上OpenFold3都能成为Alphafold3的理想替代。需要强调的是,OpenFold3联盟宣布其模型完全开源,允许学术和商业使用。相比于Alphafold3仅仅允许获得批准的用户进行学术用途以外,其余限制依然很大。话不多说,今天的推送主要介绍如何简单使用OpenFold3
OpenFold3软件安装部署
从OpenFold3开发者联盟的发布测试结果看,部署OpenFold3需要至少满足CUDA 12.1及以上版本、显存至少为32GB的GPU的系统。开发者团队建议使用mamba安装OpenFold3。安装OpenFold3建议创建虚拟环境。
基本安装
conda create -p ~/software/miniconda3/envs/openfold python=3.10conda activate ~/software/miniconda3/envs/openfoldpip install openfold3conda install kalign2 -c biocondagit clone https://github.com/aqlaboratory/openfold-3setup_openfold
注意在setup_openfold时,软件会下载模型权重参数,此时软件会询问你是否下载到默认路径,我选择的否,我自己为OpenFold3的模型权重提供新路径储存。整个setup_openfold过程大概分为4部分:
- 1.创建 OPENFOLD_CACHE 环境 (可自定义,默认值:~/.openfold3)
- 2.设置 OpenFold3 模型参数目录 (可自定义:~/.openfold3)
- 3.将路径写入 OPENFOLD_CACHE/ckpt_path
- 4.如果参数文件尚不存在,则下载模型参数
- 5.运行推理整合测试,无需MSA比对(在 A100 上约5分钟),这一步不执行也不会影响软件安装。注意:如果要运行整合测试,必须安装 pytest。
额外可选
因为模型参数大概有2.3Gb,如果个人网络不好的情况下,可以从OpenFold3的源代码脚本从开发者传输至亚马逊的AWS RODA 存储桶下载已训练的模型参数。链接在github下载好的OpenFold3路径下的download_openfold_params.sh中。默认情况下,这些权重将下载到 ~/.openfold3/目录。同样可以通过提供自定义下载目录来指定下载路径,如下所示:
bash ~/software/openfold-3/scripts/download_openfold_params.sh --download_dir=<target-dir>
简单使用OpenFold3
按照上述方式配置好软件后,可以尝试使用软件自带的蛋白质数据预测结构。开发者团队给出的结构预测数据案例是一个泛素相关蛋白序列,该序列以JSON格式文件储存。如果想了解如何构建JSON格式的文件可以阅读我之前的Alphafold3教程来理解怎样构建自定义的蛋白序列输入数据。深入浅出理解为什么Alphafold3的输入数据为JSON格式文件不过与Alphafold3相比,该软件的运行命令更简洁。
输入蛋白序列的JSON格式
数据可参考路径examples/example_inference_inputs/query_ubiquitin.json
{"queries": {"ubiquitin": {"chains": [{"molecule_type": "protein","chain_ids": ["A"],"sequence": "MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG"}]}}}
预测结构命令
经过测试下面的命令在A100显卡上可在30秒左右完成。
run_openfold predict --query_json=~/software/openfold-3/examples/example_inference_inputs/query_ubiquitin.json
结果解读
完成预测后,任务运行路径下会出现一个名为ubiquitin的文件夹,文件夹内部结构如下,其中软件会以默认的随机数种子生成5个可能的结构。最好的结构可以通过评估pLDDT(局部置信度)、PAE(相对位置置信度)和ipTM/PTM(整体置信度)等多个指标选择最好的模型。通过导入文件夹内最好模型的.cif文件即可查看预测的结构
├── compiled_cache.db├── experiment_config.json├── inference_query_set.json├── model_config.json├── summary.txt└── ubiquitin└── seed_42├── timing.json├── ubiquitin_seed_42_sample_1_confidences_aggregated.json├── ubiquitin_seed_42_sample_1_confidences.json├── ubiquitin_seed_42_sample_1_model.cif├── ubiquitin_seed_42_sample_2_confidences_aggregated.json├── ubiquitin_seed_42_sample_2_confidences.json├── ubiquitin_seed_42_sample_2_model.cif├── ubiquitin_seed_42_sample_3_confidences_aggregated.json├── ubiquitin_seed_42_sample_3_confidences.json├── ubiquitin_seed_42_sample_3_model.cif├── ubiquitin_seed_42_sample_4_confidences_aggregated.json├── ubiquitin_seed_42_sample_4_confidences.json├── ubiquitin_seed_42_sample_4_model.cif├── ubiquitin_seed_42_sample_5_confidences_aggregated.json├── ubiquitin_seed_42_sample_5_confidences.json└── ubiquitin_seed_42_sample_5_model.cif
需要注意的是如果你的显卡没有足够内存,OpenFold3也支持在本地调用他们的ColabFold Server的API以完成分析。因为OF3还在继续更新,等有空闲时间后,我将研究一下如何使用OpenFold3预测蛋白与配体、蛋白与各类生物分子的相互作用。
软件使用建议
基于目前OpenFold3还处于预览版,可能会在半年后该软件才有成熟的版本供大家使用,目前我个人建议如果追求准确性选择Alphafold3,如果追求速度选择SimpleFold,如果不在意速度,无法使用Alphafold3,选择OpenFold3。
番外:基于Docker的安装
如果用户想通过Docker安装OpenFold3,开发者团队已将镜像打包至HuggingFace链接如下:
https://huggingface.co/OpenFold/OpenFold3/tree/main/docker_image
完成解压缩后可以得到14GB的文件,可以使用md5码检验文件完整性
md5sum -c openfold3_image.tar.bz2.md5openfold3_image.tar.bz2: OK#解压镜像:docker load --input openfold3_image.tar.bz2#构建OpenFold3 Docker镜像docker build -f Dockerfile -t openfold-docker .

