Alphafold2本地部署常见的有两种方式:一、构建Docker镜像;二、Conda部署。 尝试了一下第一种方法碰到了无法运行(不报错,但不执行计算)的问题,加上对Docker不熟悉,所以放弃,转而选择第二种。
安装硬件设备:
CPU: 64核
磁盘: 4T
系统: Ubuntu18.04
RAM: 64G
显卡:NVIDIA GV102
CUDA版本: 11.7
显卡驱动版本:515.43.04
1、安装conda
2、配置运行环境
安装依赖
conda create --name af2 python==3.8
conda activate af2
conda install -y -c conda-forge cudatoolkit-dev #此步缺失则会导致无法调用gpu
conda install -y -c conda-forge openmm==7.5.1 cudnn==8.2.1.32 cudatoolkit==11.0.3 pdbfixer==1.7
conda install -y -c bioconda hmmer==3.3.2 hhsuite==3.3.0 kalign2==2.04
pip install absl-py==0.13.0 biopython==1.79 chex==0.0.7 dm-haiku==0.0.4 dm-tree==0.1.6 immutabledict==2.0.0 jax==0.2.14 ml-collections==0.1.0 numpy==1.19.5 scipy==1.7.0 tensorflow==2.5.0 pandas==1.3.4 tensorflow-cpu==2.5.0
pip install --upgrade jax==0.2.14 jaxlib==0.1.69+cuda111 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
下载alphafold v2.1.2
我所参考的文档推荐使用v2.2(https://github.com/kalininalab/alphafold_non_docker),但尝试过发现下面一部添加openmm patch出错,但更换为2.1.2则无此报错。
wget https://github.com/deepmind/alphafold/archive/refs/tags/v2.1.2.tar.gz && tar -xzf v2.1.2.tar.gz && export alphafold_path="$(pwd)/alphafold-2.1.2"
wget -q -P $alphafold_path/alphafold/common/ https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt
添加openmm patch
cd your_path/anaconda3/envs/alphafold/lib/python3.8/site-packages/ && patch -p0 < $alphafold_path/docker/openmm.patch
下载数据集
mkdir afdb
bash $alphafold_path/scripts/download_all_data.sh ./afdb #祝你的下载过程顺利
3.运行
这里有个在线的运行脚本(拷贝到本地):
https://github.com/kalininalab/alphafold_non_docker/blob/main/run_alphafold.sh
#移动脚本到alphafold根目录下
mv ./run_alphafold.sh $alphafold_path/run_alphafold.sh
cd $alphafold_path
预测单体蛋白
mkdir test/
bash run_alphafold.sh -d ../afdb -o ./test -f ./test/query.fasta -t 2022-01-01
预测复合物
bash run_alphafold.sh -d ../afdb -o ./test -f ./test/query.fasta -t 2022-01-01 -m multimer
以下是预测复合物结构fasta文件准备格式:
>sequence_1
<SEQUENCE>
>sequence_2
<SEQUENCE>
…
报错及解决方式
最后谈一谈安装和使用过程遇到的报错和解决措施:
#报错1:
stderr:
parse failed (sequence file ../afdb/pdb_seqres/pdb_seqres.txt):
Line 1362470: illegal character 0
#解决措施:
用文本编辑器打开pdb_seqres.txt,找到报错所在的那一行,删除之,如果后续还有类似的报错,同样应对之。
#报错2:
RuntimeError: INTERNAL: Could not find the corresponding function
#解决措施:
①脚本运行时选择参数"-g false",只在cpu上运行,但这样速度非常慢。
②确保上述命令“conda install -y -c conda-forge cudatoolkit-dev”执行无误。如果安装失败或存在包冲突,建议删掉这个虚拟环境再重新创一个,重创的环境第一个就安装cudatoolkit-dev。其余步骤不变。
建议预测序列不要过长,否则容易死机。最近尝试的1269+477的复合物结构预测,结果跑出一个结果后就卡死在那里了。
参考文章:https://github.com/kalininalab/alphafold_non_docker