ParallelFold的安装及使用

写在前面

ParallelFold 为交大钟博子韬 (GitHub) 开发的适用于大规模计算的集群版,支持 CPU 计算与 GPU 计算分离。

ParallelFold 将原本全部运行于 GPU 的计算,分成 CPU 和 GPU 两阶段进行。对于成百上千个蛋白的大规模结构预测,先至 cpu 或 small 等 CPU 节点上批量完成前面的 MSA 多序列比对,再将各蛋白计算出来的 feature.pkl 文件,交由 GPU 节点计算。这样既能节省 GPU 资源,又能加快运算速度。

ParallelFold GitHub:GitHub - Zuricho/ParallelFold: Modified version of Alphafold to divide CPU part (MSA and template searching) and GPU part. This can accelerate Alphafold when predicting multiple structures

原理部分我主要看的他们写的这篇文章:里面关于Alphafold的介绍以及怎么优化的,哪里优化的介绍的很详细,能学到很多。AlphaFold Deployment and Optimization on HPC Platform (sjtu.edu.cn)

安装使用部分参考Zuricho/ParallelFold: Modified version of Alphafold to divide CPU part (MSA and template searching) and GPU part. This can accelerate Alphafold when predicting multiple structures (github.com)

这是我一边尝试一边记录的,也有不懂的地方,也有不必要的地方。如果大家也是第一次用Parallelfold,想做个参考的话,建议全篇看完再尝试。

下面开整:

1、Parallelfold环境配置及报错及使用

我是在Alphafold2的conda环境下直接上传了ParallelFold-main文件(从github上下载下来的,我用wget下不了)在Parallelfold文件夹里(提前创建好的)。有些软件的版本与它的教程版本不太一样,我先试试。不行了再重头弄吧。

想要别人写的代码脚本适配自己的任务,肯定是要适当修改一下的(例如数据库路径等,反正就是尝试跑一下,哪里出错改哪里)。

先来个尝试,看看哪里需要修改:

./run_alphafold.sh -d /pub/data/用户名/dataset -o output -p monomer_ptm -i input/mono_set1/GA98.fasta -t 2021-01-01 -m model_1 -f

报错

1.1 ModuleNotFoundError: No module named 'openmm'

提示Parallelfold1/alphafold/relax/cleanup.py和Parallelfold/alphafold/relax/amber_minimize.py这两个文件有ModuleNotFoundError: No module named 'openmm'错误。这个应该是我最开始运行Alphafold的时候改过,当时就是哪里报错改哪里,也没记录,现在又要再重新改一下了。

改正:把上述两个文件的对应位置的代码依次改成图里的就行了

1.2 ValueError: Could not find HHBlits database /pub/data/用户名/dataset/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt

这是因为我没有下载大的BFD数据库。改正:在上述代码中加个 -c reduced_dbs 参数就行了。

1.3 ValueError: Could not find Jackhmmer database /pub/data/用户名/dataset/mgnify/mgy_clusters_2018_12.fa

 文件名错误了,我下载的数据库是新的,不是2018的。改正:找到run_alphafold.sh文件,修改成mgy_clusters_2022_05.fa即可。

到此为止已经在运行了,暂时没有出现报错了。在output文件夹中输出了GA98的MSA和features.pkl文件。

接着运行以下代码进行结构预测。GPU 部分能够自动识别是否已经生成 feature.pkl 文件。若文件已存在,则直接开始神经网络模型预测和优化计算;若未识别到文件,则按原 AlphaFold 流程运行。

./run_alphafold.sh -d /pub/data/用户名/dataset -c reduced_dbs -o output -p monomer_ptm -i input/mono_set1/GA98.fasta -t 2021-01-01 -m model_1,model_2,model_3,model_4,model_5

1.4 ValueError: Minimization failed after 100 attempts

猜测在github上看到openmm=7.7就可以了。为了不改变Alphafold2的conda环境(openmm=7.5),我再重新建一个Parallelfold的环境。就按照github里面的要求进行安装。

特别说明:这是我全文写完再来补充的。不用新建conda环境,如果之前安装过Alphafold,直接在那个环境下就可以了,一样可以运行。

安装完成后还是出现Amber relax的报错。尝试了几次无果后,我在github上询问了开发者,他回复我说openmm版本中存在这个问题,可以跳过amber relax,他正在努力改变环境来解决这个问题。我加了 -G 参数(Disable GPU relax),就没有报错了,并且输出了relax_model。不知道是怎么回事。是因为服务器CPU的,禁用GPU就行了?

2、ParallelFold预测复合物

这只是最简单的尝试,再试一下跑一下multimer复合物模型,GA98.fasta里面放了2条序列。代码如下:-m 参数后面的模型名称要正确,具体查看下图:

./run_alphafold.sh -d /pub/data/用户名/dataset -o output1 -c reduced_dbs -p multimer -i input/mono_set1/GA98.fasta -t 2021-01-01 -m model_1_multimer_v3 -f

再运行下面代码进行结构预测:

./run_alphafold.sh -d /pub/data/用户名/dataset -o output3 -c reduced_dbs -p multimer -i input/GA98.fasta -t 2021-01-01 -m model_1_multimer_v3 -G

最后输出结果文件包含如下图:

上述两部分加起来运行时常为2个小时(因为全是在CPU上运行,MSA和pkl文件生成需要1小时,结构预测需要1小时)。

下一篇写一下在github上的另一篇对Alphafold的拆分(先进行MSA,后进行结构预测),对比一下这两个哪个更快,以及批量预测。

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值