• AlphaFold2无痛安装教程(超级详细)


    介绍

    AlphaFlod2作为最近在生物领域非常的火的AI,给生物医药领域带来了划时代的影响,许多研究者都开始尝试使用AlphaFold2介入各自的工作。

    但是由于AlphaFold2涉及到了很多模块和细节,在我安装过很多次之后(踩过很多坑之后),希望通过这篇文章让大家能够无痛的安装和使用AlphaFold2。

    环境

    Linux(Ubuntu)
    cmake=3.23
    python=3.9/3.10
    

    安装

    CMAKE安装

    CMAKE下载地址
    CMAKE的安装包有Source Distribution 和 Binary Distribution两个版本,前者需要用户自己编译安装,后者是已经编译好的可执行程序

    # 查看Linux系统位数
    getconf LONG_BIT
    
    # 编译安装
    # 根据系统位数下载源码
    tar -xvf cmake-version.tar
    cd cmake-version
    ./bootstrap 
    make
    make install
    
    # 测试安装是否成功
    cmake -h
    
    

    hmmer安装

    # 通过软件仓库安装
    sudo apt install hmmer                     # Linux (Ubuntu, Debian...)
    sudo dnf install hmmer                     # Linux (Fedora)
    sudo conda install -c biocore hmmer        # Anaconda
    
    # 编译安装(未测试)
    wget http://eddylab.org/software/hmmer/hmmer.tar.gz
    tar zxf hmmer.tar.gz
    cd hmmer-3.3.2
    ./configure --prefix=/usr/bin/ # 可自定义安装路径,如果未安装到系统目录下,则需要在安装完成之后,把安装目录加入PATH环境变量中
    make
    make check                 # optional: run automated tests
    make install               # optional: install HMMER programs, man pages
    (cd easel; make install)   # optional: install Easel tools
    
    # 测试安装是否成功
    jackhmmer -h
    

    HHsuite安装

    # 编译安装
    git clone https://github.com/soedinglab/hh-suite.git
    mkdir -p hh-suite/build && cd hh-suite/build
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
    make -j 4 && make install
    
    # 测试安装是否成功
    hhblits -h
    

    注意:请通过编译的方式安装hhsuite否则在使用该模块时可能会出现奇怪的问题

    Kalign安装

    Kalign安装包下载

    tar -zxvf kalign-.tar.gz
    cd kalign-
    mkdir build 
    cd build
    cmake .. 
    make 
    make test 
    make install
    

    OpenMM安装

    # 编译安装
    ## 需提前安装 swig, doxygen
    sudo apt install swig
    sudo apt install doxygen
    ## 安装openmm
    git clone https://github.com/openmm/openmm.git
    cd ./openmm
    mkdir build && cd build
    cmake ..
    make && sudo make install
    sudo pip install numpy cython
    sudo make PythonInstall
    
    # 使用conda安装(未测试)
    conda install -c conda-forge openmm
    # 如果使用conda的版本大于4.8.4,则conda可以根据你的cuda编译一个适合你cuda版本的OpenMM,且支持特定的cuda版本
    conda install -c conda-forge openmm cudatoolkit=10.0
    
    # 验证OpenMM是否安装成功
    python -m openmm.testInstallation
    

    PDBfixer安装

    pip install git+http://github.com/openmm/pdbfixer.git
    

    Python依赖包安装

    # 手动安装
    pip install --user absl-py
    pip install --user biopython
    pip install --user git+https://github.com/deepmind/dm-haiku
    pip install --user dm-tree
    pip install --user immutabledict
    pip install --user jax
    pip install --user "jax[cuda11_cudnn82]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
    pip install --user ml_collections
    pip install --user numpy
    pip install --user pandas
    pip install --user matplotlib
    pip install --user sonnet
    pip install --user scipy
    pip install --user tensorflow
    pip install --user tqdm
    
    # 通过Alphafold提供的requirements文件安装
    pip install --user -r requirements.txt
    

    AlphaFold

    # 克隆AlphaFold库
    git clone https://github.com/deepmind/alphafold
    cd alphafold
    
    # stereo_chemical_props.txt下载
    wget -P alphafold/alphafold/common/ https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt
    
    # 数据库安装
    ## 下载全部数据库
    ./scripts/download_all_data.sh 
    
    ## 如果你的硬盘空间不足,也可以尝试只下载reduced database
    ./scripts/download_all_data.sh  reduced_dbs
    
    # 创建结果存储目录
    mkdir ./output
    
    # 使用reduced DB运行AlphaFold Demo
    python ./run_alphafold.py \
      --fasta_paths=test_sequence.fasta \
      --max_template_date=2020-05-14 \
      --model_preset=monomer \
      --db_preset=reduced_dbs \
      --data_dir=$DOWNLOAD_DIR \     
      --output_dir=./output
    
    # 使用full DB运行AlphaFold 
    python ./run_alphafold.py \
      --fasta_paths=test_sequence.fasta \
      --output_dir=./output \
      --data_dir=$DOWNLOAD_DIR
      --uniref90_database_path=$DOWNLOAD_DIR/uniref90/uniref90.fasta \
      --mgnify_database_path=$DOWNLOAD_DIR/mgnify/mgy_clusters.fa \
      --template_mmcif_dir=$DOWNLOAD_DIR/pdb_mmcif/mmcif_files/ \
      --max_template_date=2020-05-14 \
      --obsolete_pdbs_path=$DOWNLOAD_DIR/pdb_mmcif/obsolete.dat \
      # 如果GPU显存不是很大不建议开启relax,会超显存
      --run_relax=false \
      --use_gpu_relax=false \
      --db_preset==full_dbs \
      --bfd_database_path=$DOWNLOAD_DIR/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
      --uniclust30_database_path=$DOWNLOAD_DIR/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \
      --model_preset=monomer \
      --pdb70_database_path=$DOWNLOAD_DIR/pdb70/pdb70
    
    # $DOWNLOAD_DIR=数据库安装路径, 可以是任意位置
    # 请注意:每个版本的Alphafold的参数有可能不一样(因为Alphafold一直在保持更新),请根据run_alphafold.py中的参数说明和Alphafold的github文档进行各自调整!!!
    

    报错处理

    1. cuda_error_out_of_memory
      如果GPU的型号在比较老,显存小于6G,使用最新版本的jax可能会出现out of memory错误,只需要回退jax和jaxlib的版本到0.3.15即可
    pip install --user jax==0.3.15 jaxlib==0.3.15+cuda11.cudnn82 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
    
    1. No module named 'simtk.openmm.app.internal'
      请看另一篇博客有具体的解决方案:解决方法

    2. GnuTLS recv error (-110): The TLS connection was non-properly terminated

      • 查看是否开启代理,取消所有代理
      • Github服务器的问题,只需要不断尝试即可

    一键安装

    目前正在开发程序希望能够帮助大家一键实现Alphafold安装,可以关注AlphafoldInstallation库。如果这个库对你有帮助,希望大家可以给个star,谢谢!

    后续

    • 后续有空也会出有关AlphaFold2的论文精读
    • 如有错误请留言或私信指出,如遇到问题也可以评论留言或者私信看到会及时回复
  • 相关阅读:
    vue3 使用 mitt 插件实现非父子组件传值
    9月7日,每日信息差
    RK3568驱动指南|第七期-设备树-第56章 设备树基本语法
    关于vector的迭代器失效
    常见语言的hashmap实现方法
    Python基础教程:列表推导式详解
    JuiceFS 在多云存储架构中的应用 | 深势科技分享
    华为防火墙双机热备拓扑
    基于改进遗传算法把最优功率损耗降至最低(Matlab代码实现)
    flink技术总结待续
  • 原文地址:https://www.cnblogs.com/lovefisho/p/17282067.html