上个月Alphafold官方更新了OpenMM库版本,因此非Docker方式安装环境较之前教程有些不同,故在此记录一下。
-
创建一个新的conda环境指定python版本,这里使用官方推荐的3.8
conda create --name alphafold python==3.8
-
激活环境
conda activate alphafold
-
安装依赖
cudnn和cudatoolkit需根据自己电脑配置
通过nvidia-smi
或者dpkg -l | grep cudnn
查询cuda和cudnn版本,我这里显示cuda11.7为driver API,cuda11.3为runtimeAPI,cudnn版本为8.2.1.32依次执行如下指令,等待安装完成(这里我将cudatoolkit版本号设置为与11.3.0,即与runtimeCUDA版本相同)
conda install -y -c conda-forge openmm=7.7.0 cudatoolkit==11.3.0 pdbfixer
conda install -y -c bioconda hmmer==3.3.2 hhsuite==3.3.0 kalign2==2.04
-
克隆alphafold仓库并进入(这里我用了镜像)
git clone https://hub.fgit.ml/deepmind/alphafold.git
cd alphafold
-
下载化学性质到common文件夹
wget -q -P alphafold/alphafold/common/ https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt
-
继续配置相关依赖
在项目根目录下创建requirements.txt文件,并添加如下内容并保存。absl-py==1.0.0 biopython==1.79 chex==0.0.7 dm-haiku==0.0.9 dm-tree==0.1.6 docker==5.0.0 immutabledict==2.0.0 ml-collections==0.1.0 pillow numpy==1.21.6 pandas==1.3.4 scipy==1.7.3 tensorflow
安装requirements.txt中的依赖
pip install -r requirements.txt
安装jaxlib
pip install --upgrade jax==0.3.25 jaxlib==0.3.25+cuda11.cudnn82 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
注:这里jaxlib版本要下载正确,与cuda的版本一致,我的cuda版本为11.3,cudnn版本为8.2.1.32,选择 jaxlib==0.3.25+cuda11.cudnn82 也能正常使用。大家可以去jax_cuda_releases,查看自己系统对应的jaxlib版本并修改上面的命令
-
验证环境是否安装成功
python run_alphafold_test.py
出现以下内容,就说明安装好了。
-
数据集下载
官方下载教程:https://github.com/deepmind/alphafold#genetic-databases默认推荐下载所有数据集解压后大概2.6T
这里我选择下载到alphafold项目目录下的dataset文件夹中bash scripts/download_all_data.sh /export/home/lzd/CADD/alphafold/dataset
同时官方提供了简化数据集的下载方式解压后大概0.8T
bash scripts/download_all_data.sh /export/home/lzd/CADD/alphafold/dataset reduced_dbs
注:使用
reduced_dbs
参数后将下载small_bfd数据集而不下载bfd数据集,后面运行AlphaFold时, AlphaFold参数--db_preset
需修改为--db_preset=reduced_dbs
以上命令需搭配
aria2c
使用,也可使用其他下载器下载至指定文件夹中进行解压。下面以使用IDM下载alphafold_params为例。
- 打开
download_alphafold_params.sh
文件查看资源下载路径和保存路径,如图所示。
- 复制资源下载路径到IDM完成
alphafold_params_2022-12-06.tar
下载。 - 在alphafold项目根目录下新建dataset文件夹用来保存所有数据集,然后在dataset文件夹下新建params文件夹与上图中资源保存路径一致。
- 这里我将
alphafold_params_2022-12-06.tar
下载到了本地,然后使用winSCP上传至服务器中,保存在刚才新建的params文件夹下。 - 因为我们已经下载好了所需资源文件,所以将
download_alphafold_params.sh
中的下载命令注释掉# aria2c "${SOURCE_URL}" --dir="${ROOT_DIR}"
- 运行
download_alphafold_params.sh
进行解压
其他数据集也可按照类似方式进行下载。bash scripts/download_alphafold_params.sh /export/home/lzd/CADD/alphafold/dataset
- 打开