AlphaPulldown 完全保持与 1.x 版本的输入文件和脚本的向后兼容性。
AlphaPulldown:版本 2.0.0(测试版)
目录
关于 AlphaPulldown
概述
Alphafold 数据库
Snakemake AlphaPulldown
1. 安装
2. 配置
3、执行
运行 AlphaPulldown Python 命令行界面
创建 Jupyter 笔记本
创建结果表
下一步
下一步
2.1.基本运行
2.2.使用 SLURM 运行示例(EMBL 集群)
2.3.下拉模式
2.4.全部对全部模式
2.5.使用自定义模板运行 (TrueMultimer)
2.6。使用交联数据运行 (AlphaLink2)
输入
脚本执行:结构预测
输出
下一步
输入
脚本执行
输出和下一步
多输入“下拉”模式
输出和下一步
输入
TrueMultimer 结构预测的脚本执行
输出和下一步
输入
通过 AlphaPulldown 运行 AlphaLink2 预测
输出和下一步
1.1.基本运行
1.2. SLURM(EMBL 集群)的示例 bash 脚本
1.3.使用 MMseqs2 和 ColabFold 数据库运行(更快)
1.4.使用自定义模板运行 (TrueMultimer)
输入
脚本执行
输出
下一步
输入
脚本执行
下一步
远程运行 MMseqs2
输出
本地运行 MMseqs2
下一步
输入
脚本执行
输出
下一步
0.1。创建Anaconda环境
0.2。使用 pip 安装
0.3。安装下游分析工具
0.4。通过 AlphaLink2 安装交叉链接输入数据(可选!)
0.5。开发者安装
0. 安装
1. 计算多序列比对(MSA)和模板特征(CPU阶段)
2. 预测结构(GPU阶段)
3. 分析与可视化
下游分析
减小 AlphaPulldown 输出的大小
将模型从 PDB 格式转换为 ModelCIF 格式
1.将所有模型转换为单独的ModelCIF文件
2. 只为每个复合体转换特定的单个模型
3. 拥有代表性模型并保留关联模型
相关邮编档案
杂项选项
Jupyter笔记本
结果表
结果管理脚本
特征数据库
列出可用的生物体:
下载特定蛋白质特征:
下载有机体的所有特征:
步骤:
验证安装:
安装
配置
下载功能
AlphaPulldown 是 AlphaFold-Multimer 的定制实现,专为蛋白质-蛋白质相互作用的可定制高通量筛选而设计。它通过合并其他运行选项来扩展 AlphaFold 的功能,例如可定制的多聚体结构模板 (TrueMultimer)、通过 ColabFold 数据库的 MMseqs2 多序列比对 (MSA)、蛋白质片段预测以及使用 AlphaLink2 将质谱数据合并为输入的能力。
AlphaPulldown 可以通过两种方式使用:通过由python 脚本组成的两步管道,或者通过整个Snakemake 管道。有关使用 Snakemake 管道的详细信息,请参阅单独的 GitHub存储库。
图1 AlphaPulldown工作流程概述
AlphaPulldown 工作流程涉及以下 3 个步骤:
创建和存储 MSA 和模板功能:
在此步骤中,AlphaFold 使用 HMMER 搜索预装数据库中的每个查询的蛋白质序列,并计算所有找到的同源物的多重序列比对 (MSA)。它还搜索同源结构以用作特征生成的模板。这一步只需要CPU。
可定制的选项包括:
为了加快搜索过程,可以使用 MMSeq2 代替默认的 HHMER。
使用自定义 MSA。
使用自定义结构模板,包括多聚体模板(TrueMultimer 模式)。
结构预测:
在此步骤中,AlphaFold 神经网络运行并生成最终的蛋白质结构,需要 GPU。 AlphaPulldown 的一个关键优势是它能够灵活定义蛋白质如何组合以预测蛋白质复合物的结构。以下是您可以使用的三种主要方法:
图2 AlphaPulldown覆盖的三种典型场景
此外,AlphaPulldown 还允许:
仅选择您想要预测的蛋白质区域,而不是全长序列。
调整 MSA 深度以控制初始 MSA 对最终模型的影响。
通过 AlphaLink2 将高通量交联数据与 AlphaFold 建模集成。
单个文件(自定义模式或同源寡聚体模式):创建一个文件,其中每行列出您想要一起预测的蛋白质序列,或者每行告诉程序使用您指定的拷贝数对同源寡聚体进行建模。
多个文件(下拉模式):提供多个文件,每个文件包含蛋白质序列。 AlphaPulldown 将通过配对每个文件中的蛋白质名称行来自动生成所有可能的组合。
全部与全部:AlphaPulldown 将生成列表中所有可能的非冗余蛋白质组合。
下游结果分析:
可以使用以下选项之一对所有预测模型的结果进行系统化:
包含蛋白质复合物相互作用的各种分数和物理参数的表格。
带有交互式 3D 蛋白质模型和 PAE 图的 Jupyter 笔记本。
对于标准 MSA 和特征计算,AlphaPulldown 需要遗传数据库。检查您是否已按照 AlphaFold 文档中的说明下载了必要的参数和数据库(例如 BFD、MGnify 等)。您应该有一个结构如下的目录:
alphafold_database/ # Total: ~ 2.2 TB (download: 438 GB)
bfd/ # ~ 1.7 TB (download: 271.6 GB)
# 6 files.
mgnify/ # ~ 64 GB (download: 32.9 GB)
mgy_clusters_2018_12.fa
params/ # ~ 3.5 GB (download: 3.5 GB)
# 5 CASP14 models,
# 5 pTM models,
# 5 AlphaFold-Multimer models,
# LICENSE,
# = 16 files.
pdb70/ # ~ 56 GB (download: 19.5 GB)
# 9 files.
pdb_mmcif/ # ~ 206 GB (download: 46 GB)
mmcif_files/
# About 227,000 .cif files.
obsolete.dat
pdb_seqres/ # ~ 0.2 GB (download: 0.2 GB)
pdb_seqres.txt
small_bfd/ # ~ 17 GB (download: 9.6 GB)
bfd-first_non_consensus_sequences.fasta
uniref30/ # ~ 86 GB (download: 24.9 GB)
# 14 files.
uniprot/ # ~ 98.3 GB (download: 49 GB)
uniprot.fasta
uniref90/ # ~ 58 GB (download: 29.7 GB)
uniref90.fasta
笔记
Uniclust30是2019年之前生成的数据库版本,UniRef30是2019年之后生成的数据库版本。请注意,AlphaPulldown默认使用UniRef30_2023_02。这个版本可以通过这个脚本下载。或者,请使用 create_individual_features.py 的 --uniref30_database_path 标志覆盖 uniref30 数据库的默认路径。
笔记
由于所有遗传数据库的本地安装都非常消耗空间,因此您也可以使用远程运行的 MMseqs2 和 ColabFold 数据库。请按照相应的说明进行操作。但是,为了让 AlphaPulldown 发挥作用,您必须下载存储在 AlphaFold 数据库的params/
目录中的参数。
AlphaPulldown 可用作 Snakemake 管道,允许您顺序执行(1) MSA 和模板特征的生成, (2)结构预测,以及(3)结果分析,而无需在步骤之间进行手动干预。有关更多详细信息,请参阅AlphaPulldownSnakemake存储库。
警告
Snakemake 版本的 AlphaPulldown 在输入文件规范方面与传统的基于脚本的 AlphaPulldown 略有不同。
安装之前,请确保您的 python 版本至少为 3.10。
python3——版本
安装依赖项
pip安装snakemake==7.32.4snakedeploy==0.10.0pulp==2.7click==8.1cookiecutter==2.6
Snakemake 集群设置
为了允许 Snakemake 与计算集群交互,我们将使用 SLURM 的 Snakemake-Profile。如果您不使用 SLURM 集群,您可以在此处找到不同架构的配置文件。下面将创建一个可与 Snakemake 一起使用的配置文件,并提示您提供一些附加信息。
git 克隆 https://github.com/Snakemake-Profiles/slurm.git profile_dir =“$ {HOME}/.config/snakemake”mkdir -p“$ profile_dir”template =“gh:Snakemake-Profiles / slurm”cookiecutter --output-dir“$ profile_dir”“$ template”
在设置过程中,系统将提示您回答几个配置问题。以下是问题和建议的回答:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (False)
Select use_conda:
1 (False)
jobs [500]:
按 Enter 接受默认值)
restart_times [0]:
按 Enter 接受默认值)
max_status_checks_per_second [10]:
按 Enter 接受默认值)
max_jobs_per_second [10]:
按 Enter 接受默认值)
latency_wait [5]:
30
Select print_shell_commands:
1 (False)
sbatch_defaults []:
qos=低节点=1
Select cluster_sidecar:
2 (否)
cluster_name []:
按 Enter 键留空)
cluster_jobname [%r_%w]:
按 Enter 接受默认值)
cluster_logpath [logs/slurm/%r/%j]:
按 Enter 接受默认值)
cluster_config []:
按 Enter 键留空)
响应这些提示后,您的 Snakemake 名为slurm_noSidecar的 Slurm 配置文件将按照指定进行配置。
奇点(可能已安装) :该管道使用容器来实现可重复性。如果您正在处理的 EMBL 集群奇点已经安装,则可以跳过此步骤。否则,请使用官方 Singularity 指南安装 Singularity。
下载管道:这将下载snakemake管道的“--tag”指定的版本,并创建存储库AlphaPulldownSnakemake或您选择的任何其他名称。
Snakedeploy 部署工作流程 https://github.com/KosinskiLab/AlphaPulldownSnakemake AlphaPulldownSnakemake --tag 1.4.0cd AlphaPulldownSnakemake
笔记
如果你想使用 GitHub 上的最新版本,请将--tag XXX
替换为--branch main
安装 CCP4 软件包:要安装分析步骤所需的软件,请按照以下说明操作:
使用我们的分析软件包下载所谓的奇点图像
奇点拉 docker://kosinskilab/fold_analysis:latest 奇点构建 --sandboxFold_analysis_latest.sif
从 https://www.ccp4.ac.uk/download/#os=linux 下载 CCP4 并复制到您的服务器
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc <可写映像目录>/软件/ cp /lib/* <可写映像目录>/software/lib64/
创建包含 CCP4 的新奇点
cd <要保存本地软件的目录>singularity build Fold_analysis_latest_withCCP4.sif
它应该创建fold_analysis_latest_withCCP4.sif
文件。
您现在可以删除
根据您的特定用例调整config/config.yaml
。
如果要使用CCP4进行分析,请在文本编辑器中打开config/config.yaml
并将分析容器的路径更改为:
Analysis_container:“/path/to/fold_analysis_latest_withCCP4.sif”
input_files此变量保存样本表的路径,其中每一行对应一个折叠作业。对于此管道,我们使用以下格式规范:
protein:N:start-stop[_protein:N:start-stop]*
其中 Protein 是带有“.fasta”扩展名或 uniprot ID 的文件的路径,N 是该特定蛋白质的单体数量,start 和 stop 是应该预测的残基。然而,只需要蛋白质,N、start和stop可以省略。因此,包含残基 1-50 的蛋白质示例的以下折叠作业是等效的:
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
这种格式类似地扩展了异聚体的折叠:
example1_example2
假设您有两个示例表 config/sample_sheet1.csv 和 config/sample_sheet2.csv。以下相当于计算sample_sheet1.csv 中的全部与全部:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
而下面的代码片段相当于计算sample_sheet1.csv和sample_sheet2.csv之间的下拉
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
此格式可以扩展到任意数量的文件,但请记住折叠数量将急剧增加。
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory这是 alphafold 数据库的路径。
output_directory Snakemake 会将管道输出写入此目录。如果不存在,则会创建它。
save_msa、use_precompulated_msa、predictions_per_model、number_of_recycles、report_cutoff之前传递给 AlphaPulldown 的 run_multimer_jobs.py 和 create_notebook.py (report_cutoff) 的命令行参数。
alphafold_inference_threads, alphafold_inference Slurm 特定参数,非专家用户不需要修改。
only_generate_features如果设置为 True,则在生成特征后停止,并且不执行结构预测和报告。
执行安装和配置步骤后,您现在可以运行 Snakemake 管道了。为此,请导航到克隆的管道目录并运行:
蛇形 --使用奇点 --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --工作岗位 200 --重启次数5 --配置文件 slurm_noSidecar --重新运行-不完整 --重新运行-触发时间 --延迟等待 30 -n
以下是每个参数的作用的细分:
--use-singularity
:启用奇点容器的使用。这允许管道环境的再现性和隔离性。
--singularity-args
:指定直接传递给 Singularity 的参数。在提供的示例中:
-B /scratch:/scratch
和-B /g/kosinski:/g/kosinski
:这些是绑定安装点。它们使您的主机系统中的目录可以在 Singularity 容器中进行访问。 --nv
确保容器可以使用主机 GPU。
--profile name_of_your_profile
:指定要使用的 Snakemake 配置文件(例如,您为集群执行设置的 SLURM 配置文件)。
--rerun-triggers mtime
:如果特定文件(触发器)的修改时间晚于作业输出,则重新运行作业。在这里, mtime
检查文件修改时间。
--jobs 500
:允许最多 500 个作业同时提交到集群。
--restart-times 10
:指定作业失败时可以自动重新启动最多 10 次。
--rerun-incomplete
:强制重新运行之前 Snakemake 运行中未完成的任何作业。
--latency-wait 30
:步骤完成后等待 30 秒,以检查是否存在预期的输出文件。这在具有高延迟的文件系统中非常有用。
-n
:试运行标志。这使得 Snakemake 显示它将运行的命令而不实际执行它们。这对于测试很有用。要真正运行管道,只需删除此标志即可。
执行上面的命令将会向集群提交以下作业:
AlphaPulldown 可以用作每个特定步骤的一组脚本。
create_individual_features.py
:生成多重序列比对 (MSA),识别结构模板,并将结果存储在单体特征.pkl
文件中。
run_multimer_jobs.py
:执行结构预测。
create_notebook.py
和alpha-analysis.sif
:分别准备交互式 Jupyter Notebook 和结果表。
首先,安装 Anaconda 并创建 AlphaPulldown 环境,收集必要的依赖项。我们推荐使用 mamba 来加速解决依赖关系:
conda create -n AlphaPulldown -comnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
源激活 AlphaPulldown
这通常有效,但在某些计算系统上,用户可能更喜欢使用已安装的 HMMER 和 HH-suite 的其他版本或优化版本。
激活AlphaPulldown环境并安装AlphaPulldown:
源激活 AlphaPulldown python3 -m pip install alphapulldown
pip install -U“jax[cuda12]”
笔记
对于旧版本的 AlphaFold :如果您尚未根据 AlphaFold 2.3.0 的要求更新数据库,您仍然可以将 AlphaPulldown 与旧版本的 AlphaFold 数据库一起使用。请遵循专用分支上的安装说明。
安装 CCP4 软件包:要安装分析步骤所需的软件,请按照以下说明操作:
奇点拉 docker://kosinskilab/fold_analysis:latest singleity build --sandboxFold_analysis_latest.sif# 从 https://www.ccp4.ac.uk/download/#os=linuxtar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 下载最上面的一个 cp bin/pisa bin/sc <可写映像目录>/软件/ cp /lib/* <可写映像目录>/software/lib64/ 奇点构建
确保您已安装与您拥有的 CUDA 版本相对应的 PyTorch。这里以 CUDA 11.7 和 PyTorch 1.13.0 为例:
pip install torch==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
编译 UniCore.
源激活 AlphaPulldown git克隆 https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core python setup.py install --disable-cuda-ext # 测试unicore是否安装成功python -c "import unicore"
您可能会看到以下警告,但没关系:
fused_multi_tensor is not installed corrected
fused_rounding is not installed corrected
fused_layer_norm is not installed corrected
fused_softmax is not installed corrected
从 Zenodo 下载 PyTorch 检查点,解压缩,然后您应该获得一个名为: AlphaLink-Multimer_SDA_v3.pt
的文件
仅适用于想要修改AlphaPulldown代码并测试其修改的开发人员。请将您的 SSH 密钥添加到您的 GitHub 帐户
克隆 GitHub 存储库
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown git 子模块初始化 git 子模块更新
按照创建 Anaconda 环境中所述创建 Conda 环境
安装AlphaPulldown包并将其子模块添加到Conda环境中(如果要更新依赖项则不起作用)
源激活 AlphaPulldowncd AlphaPulldown pip install .pip install -e 。 --无依赖 pip install -e ColabFold --no-deps pip install -e alphafold --no-deps
您只需要做一次。
当你想要开发时,激活环境,修改文件,更改应该会被自动识别。
在开发过程中使用test/
中的测试来测试您的包,例如:
pip安装pytest pytest -s 测试/ pytest -s 测试/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_ Generation
在推送到远程或提交拉取请求之前:
pip install .pytest -s 测试/
安装包并测试。仅当 SLURM 可用时,Pytest 预测才有效。检查当前目录中创建的日志文件。
笔记
如果您使用来自模式生物的蛋白质,您可以直接从 AlphaPulldown 特征数据库下载特征文件并跳过此步骤。
这是create_individual_features.py
用法的一般示例。有关在集群上运行特定任务或并行执行的信息,请参阅本章的相应部分。
在此步骤中,您需要提供一个蛋白质 FASTA 格式文件,其中包含将用于复杂预测的所有蛋白质序列。
FASTA 文件 ( sequences.fasta
) 示例:
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
激活AlphaPulldown环境并运行脚本create_individual_features.py
如下所示:
源激活 AlphaPulldown create_individual_features.py --fasta_paths=<序列.fasta> --data_dir=--output_dir=<保存输出对象的目录> --max_template_date=<您想要的任何日期,格式如下:2050-01-01>
提供输入 FASTA 文件的路径,而不是
。您还可以提供多个以逗号分隔的文件。
提供遗传数据库的路径,而不是
(请参阅安装部分的 0. Alphafold 数据库)。
提供输出目录的路径,而不是
,您的功能文件将保存在其中。
需要标志--max_template_date
中的日期来限制对指定日期之前沉积的蛋白质结构的搜索。除非日期晚于本地基因组数据库的上次更新日期,否则脚本将在所有可用结构中搜索模板。
特征计算脚本create_individual_features.py
有几个可选的FLAGS:
--[no]save_msa_files
:默认为False以保存存储阶段,但可以更改为True 。如果设置为True
,程序将为每个蛋白质创建一个单独的文件夹。输出目录将如下所示:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
如果save_msa_files=False
那么output_dir
将如下所示:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
:默认值为False
。但是,如果您已经拥有蛋白质的 MSA 文件,请将参数设置为 True 并按如下格式排列您的 MSA 文件:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
然后,在命令行中设置output_dir=/path/to/example_directory
。
--[no]skip_existing
:默认值为False
,但如果您已经对某些蛋白质运行了第一步,现在将新蛋白质添加到列表中,您可以在命令行中将skip_existing
更改为True
,以避免对之前的过程重新运行相同的过程计算出的蛋白质。
--seq_index
:默认值为None
,程序将在给定文件中一一运行预测。但是,如果您希望并行运行一组作业,则可以将seq_index
设置为不同的数字,那么程序将仅运行seq_index
指定的相应作业。例如,如果seq_index
设置为 1,则程序仅计算 FASTA 文件中第一个蛋白质的特征。另请参阅上面的 Slurm sbatch 脚本,了解如何使用它进行并行执行的示例。 ❗ seq_index
从 1 开始。
--[no]use_mmseqs2
:是否远程使用 mmseqs2。默认值为 False。
与 TrueMultimer 模式相关的标志:
--path_to_mmt
:包含多聚模板 mmCIF 文件的目录路径。
--description_file
:包含用于生成特征的描述的文本文件的路径。请注意,第一列必须是 FASTA 文件中蛋白质描述的精确副本。为了方便起见,请考虑使用您最喜欢的文本编辑器在 FASTA 文件中缩短它们。这些名称将用于生成具有单体特征的pickle文件! NS1-P85B 复合体的description.csv 应如下所示:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
在此示例中,我们在多聚体模板 3L4Q.cif 中将 NS1 蛋白称为 A 链,将 P85B 蛋白称为 C 链。
请注意,您的模板将被重命名为取自_entry_id的 PDB 代码。如果您使用 *.pdb 文件而不是 *.cif,AlphaPulldown 将首先尝试从文件中解析 PDB 代码。然后它会检查文件名是否为 4 个字母长。如果不是,它将生成一个随机的 4 个字母代码并将其用作 PDB 代码。
--threshold_clashes
:VDW 重叠的阈值以识别冲突。两个原子之间的 VDW 重叠定义为它们的 VDW 半径之和减去它们中心之间的距离。如果重叠超过此阈值,则两个原子被认为发生碰撞。正阈值是在考虑原子发生碰撞之前允许 VDW 表面相互渗透的距离。 (默认值:1000,即无阈值,对于阈值处理,使用0.6-0.9)。
--hb_allowance
:氢键的额外余量(默认值:0.4),用于识别要从多聚体模板中删除的冲突残基。容差 > 0 反映了共享氢键的原子彼此之间的距离可能比根据其 VDW 半径预期的距离更近。仅对于由供体(或供体携带的氢)和受体组成的对减去该津贴。这相当于使用较小的半径来表征氢键相互作用。
--plddt_threshold
:从多聚模板中删除 pLDDT 分数的阈值(默认值:0)(所有 pLDDT>plddt_threshold 的残基都被删除并从头开始建模)。仅当多聚体模板是由 AlphaFold 生成的模型时才能使用。
--new_uniclust_dir
:如果您想覆盖 uniclust 数据库的默认路径,请使用此选项。
--[no]use_hhsearch
: 查找结构模板时使用 hhsearch 而不是 hmmsearch。默认值为 False。
--[no]multiple_mmts
:每个链使用多个多聚体模板。默认值为 False。
create_individual_features.py
运行的结果是存储在output_dir
中的输入FASTA 文件(例如sequence_name_A.pkl
和sequence_name_B.pkl
)中每个蛋白质的pickle 格式特征。
笔记
泡菜的名称将与 FASTA 文件中序列的描述相同(例如 FASTA 文件中的>protein_A
将产生proteinA.pkl
)。请注意特殊符号,例如| : ; #
, >
之后将替换为_
。
继续下一步2.1 基本运行。
如果您在计算机集群上运行 AlphaPulldown,您可能希望并行执行特征创建。在这里,我们提供了一个适用于使用 SLURM 工作负载管理器的集群的代码示例。
对于以下示例,我们将使用example_2_sequences.fasta
作为输入。
创建create_individual_features_SLURM.sh
脚本并使用 vi、nano 或任何其他文本编辑器将以下代码放入其中。将输入参数替换为create_individual_features.py
脚本的适当参数,如基本运行或您打算执行的任何其他类型的运行中所述:
#!/bin/bash#典型的运行需要几个小时,但可能会更长#SBATCH --job-name=array#SBATCH --time=10:00:00#log files:#SBATCH -e logs/ create_individual_features_%A_%a_err.txt#SBATCH -o logs/create_individual_features_%A_%a_out.txt#qos 设置优先级#SBATCH --qos=low#限制运行到单个节点#SBATCH -N 1#根据节点#SBATCH --ntasks=8#SBATCH --mem=64000模块加载 HMMER/3.4-gompi-2023a 模块加载 HH-suite/3.3.0-gompi-2023aeval "$(conda shell.bash hook)"模块加载 CUDA/11.8.0 模块加载cuDNN/8.7.0.84-CUDA-11.8.0 conda activate AlphaPulldown# 为您的特定任务自定义以下脚本参数:####create_individual_features.py --fasta_paths=example_1_sequences.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/mydir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existing=真 --seq_index=$SLURM_ARRAY_TASK_ID#####
通过运行以下命令使脚本可执行:
chmod +x create_individual_features_SLURM.sh
接下来,执行以下命令,将
替换为输入 FASTA 文件的路径:
mkdir logs#统计序列数对应的作业数量:count=`grep ">"| wc -l`#运行作业数组,一次100个作业:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
两个文件的示例(对于更多文件,创建count3
、 count4
等变量并将它们添加到计数总和中):
mkdir logs#统计序列数对应的作业数量:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) #运行作业数组,一次100个作业:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
继续下一步 2.2 使用 SLURM(EMBL 集群)运行示例。
MMseqs2 是另一种同源搜索和 MSA 生成方法。它提供了 AlphaFold 使用的默认 HMMER 和 HHblits 的替代方案。由于 MSA 中捕获的进化信息存在差异,这些不同方法的结果可能会导致蛋白质结构预测略有不同。 AlphaPulldown支持ColabFold进行的MMseqs2搜索的实现,ColabFold还提供了用于MSA生成的Web服务器,因此不需要在本地安装数据库。
引用:如果您使用 MMseqs2,请记住引用:Mirdita M、Schütze K、Moriwaki Y、Heo L、Ovchinnikov S、Steinegger M。 ColabFold:让所有人都能进行蛋白质折叠。自然方法 (2022) doi: 10.1038/s41592-022-01488-1
注意:为避免远程服务器过载,请勿同时提交大量作业。如果您想计算多个序列的 MSA,请在本地使用 MMseqs2。
要使用 MMseqs2 远程运行create_individual_features.py
,请添加--use_mmseqs2=True
标志:
源激活 AlphaPulldown create_individual_features.py --fasta_paths=<序列.fasta> --data_dir=--output_dir=<保存输出对象的目录> --use_mmseqs2=真 --max_template_date=<您想要的任何日期,格式如下:2050-01-01>
脚本运行完成后,您的output_dir
将如下所示:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
继续下一步2.1 基本运行。
AlphaPulldown不提供在本地运行 MMseqs2 的接口或代码,也不会安装 MMseqs2 或任何其他所需的程序。用户必须安装 MMseqs2、ColabFold 数据库、ColabFold 搜索和其他所需的依赖项,并首先运行 MSA 比对。可以在 ColabFold GitHub 上找到示例指南。
假设您已使用colab_search
程序在本地成功运行 MMseqs2;它将为您感兴趣的每种蛋白质生成一个 A3M 文件。因此,您的output_dir
应如下所示:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
这些来自colabfold_search
的 a3m 文件命名不方便。因此,我们提供了rename_colab_search_a3m.py
脚本来帮助您重命名所有这些文件。从 https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py 下载脚本并运行:
cd 输出目录 python rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
那么你的output_dir
将变成:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
这里, proteinA
、 proteinB
等对应于输入 FASTA 文件中的名称(例如, >proteinA
将为您提供proteinA.a3m
, >proteinB
将为您提供proteinB.a3m
等)。
注意:您还可以提供自己的
.a3m
格式的自定义 MSA 文件,而不是使用 MMSeq2 或标准 HHMER 创建的文件。将适当命名的文件放入输出目录中并使用如下代码。
之后,返回到包含原始 FASTA 文件的项目目录,并在命令中指向该目录:
源激活 AlphaPulldown create_individual_features.py --fasta_paths=<序列.fasta> --data_dir=--output_dir=<输出目录> --skip_existing=False --use_mmseqs2=真 --seq_index=<您想要的任何数字或跳过该标志以逐个运行所有>
AlphaPulldown会自动搜索每个蛋白质对应的a3m文件。最后,你的output_dir
将如下所示:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<