AlphaFold2代码阅读(九)
2021SC@SDUSC
写下前⾯:之前是在Google Colab中运⾏的简化版本的代码,今天看⼀下AlphaFold2源码中写的运⾏程序
⼀、运⾏ AlphaFold
运⾏ AlphaFold 的最简单⽅法是使⽤提供的 Docker 脚本。这是在 Google Cloud 上使⽤nvidia-gpu-cloud-image 具有 12 个 vCPU、85 GB 内存、100 GB 启动磁盘、额外 3 TB 磁盘上的数据库和 A100 GPU 的机器进⾏测试的。
南非前总统去世1.克隆这个存储库并cd放⼊其中
git clone /deepmind/alphafold.git
2.构建 Docker 镜像:
docker build -f docker/Dockerfile -t alphafold .
改错
3.安装run_docker.py依赖项
pip3 install -r
4.运⾏run_docker.py指向包含希望预测结构的蛋⽩质序列的 FASTA ⽂件。如果要预测已存在于 PDB 中的蛋⽩质的结构,并且希望避免将其⽤作模板,则max_template_date必须将其设置为该结构的发布⽇期之前。还必须提供包含下载的数据库的⽬录的路径。例如,对于T1050 CASP14 ⽬标:
python3 docker/run_docker.py \
--fasta_paths=T1050.fasta \
--max_template_date=2020-05-14 \
--data_dir=$DOWNLOAD_DIRwsk
默认情况下,Alphafold 将尝试使⽤所有可见的 GPU 设备。要使⽤⼦集,请使⽤–gpu_devices标志指定以逗号分隔的 GPU UUID 或索引列表 。有关 更多详细信息,参阅 GPU 枚举。
5.可以通过添加–model_pret=标志来控制要运⾏的 AlphaFold 模型 。提供以下型号:
单体:这是在 CASP14 中使⽤的原始模型,没有集成。
Monomer_casp14:这是在 CASP14 中使⽤的原始模型 num_enmble=8,与我们的 CASP14 配置相匹配。这主要是为了可重复性,因为对于有限的精度增益(CASP14 域上的平均 GDT 增益为 +0.1),计算成本要⾼ 8 倍。
Monomer_ptm:这是使⽤ pTM 头微调的原始 CASP14 模型,提供成对置信度度量。它的准确度略低于普通单体模型。
multimer:这是AlphaFold-Multimer模型。要使⽤此模型,请提供多序列 FASTA ⽂件。此外,UniProt 数据库应该已经下载。6.可以通过添加–db_pret=reduced_dbs或–db_pret=full_dbs到运⾏命令来控制 MSA 速度/质量权衡 。我们提供以下预设:
Reduced_dbs:此预设针对速度和较低的硬件要求进⾏了优化。它与 BFD 数据库的简化版本⼀起运⾏。它需要 8 个 CPU 内核(vCPU)、8 GB RAM 和 600 GB 磁盘空间。
g nsorfull_dbs:这与CASP14使⽤的所有遗传数据库⼀起运⾏。
使⽤monomer模型预设和 reduced_dbs数据预设运⾏上⾯的命令将如下所⽰:
--max_template_date=2020-05-14 \
--model_pret=monomer \
--db_pret=reduced_dbs \
--data_dir= $DOWNLOAD_DIR
⼆、运⾏ AlphaFold-Multimer
所有步骤与运⾏单体系统时相同,但必须
提供具有多个序列的输⼊ fasta,
设置–model_pret=multimer,耐用
可选择–is_prokaryote_list使⽤布尔值设置标志,以确定给定 fasta ⽂件中的所有输⼊序列是否为原核⽣物。如果情况并⾮如此或来源未知,请fal为该 fasta设置为。
折叠multimer.fasta原核蛋⽩质复合物的⽰例:
python3 docker/run_docker.py \
--fasta_paths=multimer.fasta \
--is_prokaryote_list=true \
--max_template_date=2020-05-14 \
--model_pret=multimer \
--data_dir= $DOWNLOAD_DIR
三、例⼦
学习兴趣
以下是如何在不同场景中使⽤ AlphaFold 的⽰例。
1.折叠单体
假设有⼀个具有序列 的单体。输⼊ fasta 应该是:
>quence_name
<SEQUENCE>
然后运⾏以下命令:
python3 docker/run_docker.py \
--fasta_paths=monomer.fasta \
--max_template_date=2021-11-01 \
--model_pret=monomer \
--data_dir= $DOWNLOAD_DIR
2.折叠 homomer
假设有⼀个来⾃原核⽣物的同源异构体,它有 3 个相同序列的拷贝 。输⼊ fasta 应该是:
>quence_1
<SEQUENCE>
>quence_2gear motor
<SEQUENCE>
>quence_3
<SEQUENCE>
然后运⾏以下命令:
--is_prokaryote_list=true \
--max_template_date=2021-11-01 \
--model_pret=multimer \
--data_dir= $DOWNLOAD_DIR
3.折叠异聚体
假设有⼀个未知来源的异聚体 A2B3,即具有 的 2 个副本 和 3 个副本。输⼊ fasta 应该是:
>quence_1
<SEQUENCE A>
>quence_2
<SEQUENCE A>
>quence_3
<SEQUENCE B>
上海迪斯尼英语
>quence_4
<SEQUENCE B>
>quence_5
<SEQUENCE B>
然后运⾏以下命令:
变形金刚3歌曲
python3 docker/run_docker.py \
--fasta_paths=heteromer.fasta \
-
-is_prokaryote_list=fal \
--max_template_date=2021-11-01 \
--model_pret=multimer \
--data_dir= $DOWNLOAD_DIR
4.⼀个接⼀个地折叠多个单体
假设有两个单体,monomer1.fasta和monomer2.fasta。
我们可以使⽤以下命令按顺序折叠两者:
python3 docker/run_docker.py \
--fasta_paths=monomer1.fasta,monomer2.fasta \
--max_template_date=2021-11-01 \
--model_pret=monomer \
-
-data_dir= $DOWNLOAD_DIR
5.⼀个接⼀个地折叠多个多聚体
假设有两个多聚体,multimer1.fasta和multimer2.fasta。两者都来⾃原核⽣物。
可以使⽤以下命令按顺序折叠两者:
python3 docker/run_docker.py \
--fasta_paths=multimer1.fasta,multimer2.fasta \
--is_prokaryote_list=true,true \
--max_template_date=2021-11-01 \
--model_pret=multimer \
--data_dir= $DOWNLOAD_DIR
5.AlphaFold 输出
输出将保存在通过–output_dir标志提供的⽬录的⼦⽬录 中run_docker.py(默认为/tmp/alphafold/)。输出包括计算的 MSA、⾮松弛结构、松弛结构、排序结构、原始模型输出、预测元数据和部分时间。该–output_dir⽬录将具有以下结构:
<target_name>/
features.pkl
ranked_{0,1,2,3,4}.pdb
ranking_debug.json
relaxed_model_{1,2,3,4,5}.pdb
result_model_{1,2,3,4,5}.pkl
timings.json
unrelaxed_model_{1,2,3,4,5}.pdb
msas/
bfd_uniclust_hits.a3m
mgnify_hits.sto
hugo
uniref90_hits.sto
每个输出⽂件的内容如下:
features.pkl–pickle包含模型⽤于⽣成结构的输⼊特征 NumPy 数组的⽂件。
unrelaxed_model_*.pdb – 包含预测结构的 PDB 格式⽂本⽂件,与模型输出的完全相同。
relaxed_model_*.pdb – 包含预测结构的 PDB 格式⽂本⽂件,在对未松弛结构预测执⾏ Amber 松弛程序后(有关详细信息,请参见 Jumper 等⼈ 2021,增刊⽅法 1.8.6)。
ranked_*.pdb– 根据模型置信度重新排序后,包含松弛预测结构的 PDB 格式⽂本⽂件。此处ranked_0.pdb应包含置信度最⾼ranked_4.pdb的预测和置信度最低的预测。为了对模型置信度进⾏排名,我们使⽤预测的 LDDT (pLDDT) 分数(有关详细信息,请参见 Jumper 等⼈ 2021,增刊⽅法 1.9.6)。
ranking_debug.json – 包含⽤于执⾏模型排名的 pLDDT 值的 JSON 格式⽂本⽂件,以及映射回原始模型名称。
timings.json – ⼀个 JSON 格式的⽂本⽂件,其中包含运⾏ AlphaFold 管道的每个部分所花费的时间。
msas/ - 包含描述⽤于构建输⼊ MSA 的各种遗传⼯具命中的⽂件的⽬录。
result_model_*.pkl–pickle包含模型直接⽣成的各种 NumPy 数组的嵌套字典的⽂件。除了结构模块的输出外,还包括辅助输出pLDDT 置信度量存储在输出 PDB ⽂件的 B-factor 字段中