蛋白质三维结构与 AlphaFold2 之间不得不说的故事-2 使用篇
接着上期的AlphaFold2出现之前,针对蛋白质结构预测领域的一些成就。其实在AlphaFold2出现之前,已经有不少相对成功的算法和应用出现了,但是真正使AlphaFold2一战封神的,还是其对代码的开源,这使得更多的普通用户可以在本地实现蛋白质结构的预测。
因此,本期为大家介绍一下AlphaFold2如何使用。
1. 准备工作
1.1 AlphaFold2 下载
首先通过AlphaFold2的github页面下载其的代码。当然,由于大家都知道的原因,我国绝大多数用户应该是直接下载不到的。大家可以通过本站下载页面,进行下载。
1.2 镜像准备
下载完成后,用户可以选择手动安装,也可以选择采用制作Docker镜像的方式完成。手动安装需要面对很多Python库的依赖关系,因此难度相对较高。用户可以按照其内部说明的,其中有DockerFile,因此可以直接配置完整的镜像资源。
[root@Cc3Apc alphafold-main]# ll
total 70
drwxr-xr-x 6 root root 4096 Aug 4 16:20 alphafold
-rw-r--r-- 1 root root 973 Jul 30 17:47 CONTRIBUTING.md
drwxr-xr-x 2 root root 4096 Aug 26 18:55 docker
drwxr-xr-x 2 root root 4096 Jul 30 17:47 imgs
-rw-r--r-- 1 root root 11358 Jul 30 17:47 LICENSE
drwxr-xr-x 2 root root 4096 Aug 4 16:19 notebooks
-rw-r--r-- 1 root root 20129 Jul 30 17:47 README.md
-rw-r--r-- 1 root root 193 Jul 30 17:47 requirements.txt
-rw-r--r-- 1 root root 12081 Jul 30 17:47 run_alphafold.py
-rw-r--r-- 1 root root 2432 Jul 30 17:47 run_alphafold_test.py
drwxr-xr-x 2 root root 4096 Aug 26 18:56 scripts
-rw-r--r-- 1 root root 1829 Jul 30 17:47 setup.py
[root@Cc3Apc alphafold-main]# cd docker/
[root@Cc3Apc docker]# ll
total 13
-rw-r--r-- 1 root root 3029 Jul 30 17:47 Dockerfile
-rw-r--r-- 1 root root 1859 Jul 30 17:47 openmm.patch
-rw-r--r-- 1 root root 80 Jul 30 17:47 requirements.txt
-rw-r--r-- 1 root root 7236 Jul 30 17:47 run_docker.py
[root@Cc3Apc docker]# docker build ./
...
用户也可以通过极道的DockerHub源进行获取Docker image,如下:
[root@Cc3Apc docker] dokcer pull www.xtaohub.com:8280/mpitools/alphafold:latest
1.3 GPU 配置
AlphaFold2 可以通过GPU进行硬件加速,因此 对 GPU使用CUDA 11.0 库。因此需要在宿主机上存在对应的库.可以参考英伟达官方的安装手册。安装时需要注意相应硬件。
1.4 数据库下载
AlphaFold2 运行时需要下载相关数据库。可以通过AlphaFold2 提供的整体下载方案进行下载。完整版的参考库,大概有2.2T左右(感慨一下:人工智能领域果然是数据[量]领航啊…)。当然发布者也贴心的为翘首企盼、一睹风采的广大用户提供了删节版数据库,如果存储资源有限,请联系极道的销售人员…
其数据库主要包括以下内容:
数据库名称 | 说明 |
---|---|
UniRef90 | uniprot数据库 |
MGnify | 针对微生物、宏基因组的蛋白序列库 |
BFD | 全称为Big Fantastic DataBase 是DeepMind团队自己构建的数据库 |
Uniclust30 | 一个蛋白家族数据库 |
PDB70 | 蛋白结构数据库 |
PDB (structures in the mmCIF format) | 蛋白结构数据库 |
编者按:这部分我觉得是AlphaFold2最有技术含量的部分,比上述数据库涵盖更多序列的数据库也是存在的,但是数据质量一般不高(例如:NCBI)
2. 运行AlphaFold2
2.1 默认运行方式
AlphaFold2可以通过本地运行和基于Docker的调度运行两种方式,
python3 docker/run_docker.py --fasta_paths=T1050.fasta --max_template_date=2020-05-14
2.2 采用 WDL 提交 AlphaFold2
用户可以直接通过WDL 进行任务提交,尤其对于系统中有多个节点配置GPU的用户而言,无需了解底层配置,即可使用GPU 进行AlphaFold2 计算。其WDL脚本如下
task run_alphafold2 {
File fasta
String alphafold2_out
command{
python3 run_alphafold.py --fasta_paths ${fasta} --output_dir ${alphafold2_out}
}
output{
File alphafold2_result = ${alphafold2_out}
}
runtime{
gpu:"2"
gpumem:"1G"
cpu:"2"
memory:"5G"
docker:"alphafold:latest"
}
}
...
任务提交相关内容可以参考Achelous 平台使用指南中的内容。