介绍

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/bin ..
make -j 4 && make install # 测试安装是否成功
hhblits -h

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

Kalign安装

Kalign安装包下载

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

OpenMM安装

# 编译安装
git clone https://github.com/openmm/openmm.git
mkdir build && cd build
ccmake ../openmm
make && sudo make install
pip install --user numpy cython
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

# 克隆AlphaFold库
git clone https://github.com/deepmind/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 <DOWNLOAD_DIR> ## 如果你的硬盘空间不足,也可以尝试只下载reduced database
./scripts/download_all_data.sh <DOWNLOAD_DIR> 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=数据库安装路径, 可以是任意位置

报错处理

  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服务器的问题,只需要不断尝试即可

后续

  • 后续有空也会出有关AlphaFold2的论文精读
  • 如有错误请留言或私信指出,如遇到问题也可以评论留言或者私信看到会及时回复

AlphaFold2无痛安装教程(超级详细)的更多相关文章

  1. CentOS 6.4 服务器版安装教程(超级详细图解)

    附:CentOS 6.4下载地址 32位:http://mirror.centos.org/centos/6.4/isos/i386/CentOS-6.4-i386-bin-DVD1to2.torre ...

  2. CentOS 服务器版安装教程(超级详细图解)

    使用安装说明:http://www.jb51.net/os/85895.html

  3. CentOS 6.4安装(超级详细图解教程)

    链接地址:http://www.osyunwei.com/archives/5855.html CentOS 6.4安装(超级详细图解教程) 附:CentOS 6.4下载地址 32位:http://m ...

  4. VMware Workstation 14 Pro安装教程(详细)

    VMware Workstation 14 Pro安装教程(详细) 话不多说,直接上图,需要的拿走. 下载地址:https://download3.vmware.com/software/wkst/f ...

  5. Windows 7安装教程(详细图解)

    早前向大家介绍了Windows XP的安装教程,今天思齐再来介绍一下Windows 7的安装教程,Windows 7在安装上相对以前的Windows操作系统都要简单一些,这一点对于尤其是非专业用户来说 ...

  6. MySQL 5.7 解压版 安装教程(图文详细)[Windows]

    最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...

  7. windows环境下elasticsearch安装教程(超详细)

    一.安装jdk ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持.所以要先安装JAVA环境. 由于ElasticSearch 5.x 往后依赖于JDK 1.8的 ...

  8. MySQL 5.0安装教程图解详细教程

    步骤4.在"Developer Components(开发者部分)"上左键单击,选择"This feature, and all subfeatures, will be ...

  9. 在vmware虚拟机下的Window2003服务器下安装IIS服务详细教程——超级详细(解决关于:800a0bb9的解决办法)

    总的来说,就是9步: 1.控制面板添加或者删除程序2.删除想要删的3.打开IIS配置4.开始共享5.导入源码6.配置权限7.网站属性.文档.应用程序配置8.web服务扩展9.访问网站 在安装好虚拟机的 ...

  10. XShell免费版的安装配置教程以及使用教程(超级详细)

    ​一. XShell的作用 XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的.它支持 RLOGIN.SFTP.SERIAL.TELNET.SSH2 ...

随机推荐

  1. scala流程控制

    1.分支控制if-else 分支控制有三种:单分支.双分支.多分支: 1.1 单分支 (1).语法入下: if(条件表达式){ 执行代码块       //当条件表达式为true时,才会执行代码块内容 ...

  2. CSS 常用样式-字体属性

    字体类样式我们已经学习过字号font-size.字体font-family两个属性,接下来还有几个常用的字体属性. 粗细 font-weight: 作用:设置文字是否加粗显示. 属性名:font-we ...

  3. 区分 PaaS、IaaS 、SaaS

  4. 钉钉扫码登录第三方,appSecret签名算法(附包名)

    包名 import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import javax.crypto.Mac; ...

  5. Ansys经验之:杨氏模量的本质概念理解——仿真在线工作记录

    Ansys经验之:什么是杨氏模量? 这是我见到的很多来培训的结构力学仿真人员的困惑,始终不能只管理解,但又是一个入门的重要概念. 本质:杨氏模量=应力/应变,即单位应变的应力.那什么叫单位应变呢,也很 ...

  6. 2020.4.28关于pta的总结

    0.前言 这次作业针对的是oo程序设计第二单元(5-8周)的作业,在整体当中属于第4到第6次作业. 此三次作业的知识要点为:继承类,多态性,字符串,结构类,接口类. 此三次作业的时间为20.4.12- ...

  7. 通过网页或者移动设备链接跳转qq(tim)添加好友(群)

    首先需要去qq群官方,然后点记加群组件,然后选择群,复制对应的代码即可 登录到QQ群官网 点击加群组件 选择群,选择网页还是移动设备 复制代码 示例: <html> <head> ...

  8. centos 通过yum安装docker-ce报错

    通过yum安装docker-ce报错,是因为本机安装过多次造成的,如下所示,需要解决掉冲突依赖,从新安装 1 从 https://mirrors.aliyun.com/docker-ce/linux/ ...

  9. 2021.06.21 onmouseover和onmouseleave事件对比

    在重新巩固js基础的过程中,分别使用onmouseover和onmouseleave事件却导致了不同的效果,但是在之前的记忆中,这两者确实是一样的哈,因此探究一下产生不同效果的原因. 在使用onmou ...

  10. 引用本地的layUI

    <script src="/public/vendor/layui-v2.5.6/layui.all.js"></script>