蛋白质序列中单氨基酸变异效应的预测器(https://doi.org/10.1007/s00439-021-02411-y)
项目描述
目录
[[目录]]
VESPA -- Variant Effect Score Prediction without Alignments
VESPA 是一个简单而强大的单氨基酸变异效应(SAV)预测器,基于蛋白质语言模型 ProtT5 的嵌入。
基于单序列的SAV效应预测被设置为多阶段管道,包括(1)生成 ProtT5
嵌入,(2)提取每个残基的保守性预测,(3)(可选)提取每个变异的log-odds比率,以及(4)预测所有可能的氨基酸替换效应。步骤(4)可以通过使用带有(2)和(3)作为输入的 VESPA 或使用计算效率更高的方法 VESPA-light(VESPAl)只作为输入的步骤(2),以略微降低预测性能来完成。
有关 VESPA 和 VESPAl 的详细信息,请参阅我们的论文,蛋白质语言模型的嵌入预测保守性和变异效应(Marquet等,2021)。以下展示了 VESPA 在与SOTA方法比较时的性能。
预计算VESPA和VESPA-light预测
目前,这里已提供了针对39个DMS实验的预计算的VESPA和VESPAl预测结果:(Marquet等,2021)的补充文件3。此外,VESPAl预测结果还适用于人类蛋白质组(下载时间:2022年1月22日)以及果蝇(黑腹果蝇)蛋白质组(下载时间:2022年3月1日)。
使用方法
安装VESPA的首选方法是使用pip
pip install vespa-effect
输入文件
必需:包含所有野生型序列的单一FASTA
文件(注意:此文件可以包含任意数量的序列)。
可选:如果您只对可能突变的子集(特定突变)感兴趣,可以在快速入门中的代码行中添加-m mutations.txt
(注意:默认情况下考虑所有突变)。点击此处
查看mutations.txt
文件格式的说明。
快速入门
为了简化本指南,我们将假设一个包含所有数据的文件夹:例如,FASTA
文件位于data/sequences.fasta
,而(可选的)mutations.txt
位于data/mutations.txt
。
安装存储库后,您可以运行以下操作:
vespa data/sequences.fasta --prott5_weights_cache data/cache
默认情况下,这将为所有可能的突变运行VESPAl。它将在您的当前工作目录中生成一个名为vespa_run_directory的新文件夹。在此文件夹中,您将找到包含输入特征(嵌入,保守性预测)的两个文件以及一个包含所有可能突变每个序列的VESPAl预测.csv文件的输出文件夹。更多详细信息请参见输出。
警告 生成嵌入需要强大的GPU(我们建议至少有12GB的VRAM)。运行VESPA也是如此。有关更多信息,请参阅步骤1:生成嵌入和步骤3:提取掩码边缘概率的对数优势比。
可选:
- 如果您已经提供了预计算的嵌入,可以使用这些嵌入而不是生成新的嵌入,方法是在代码行中添加
--use_existing_embeddings
后跟文件位置。然后运行VESPAl将不需要GPU。 - 如果您有GPU可用,可以通过在上述代码行中添加
--vespa
来生成VESPA预测。运行VESPA后,您将在文件夹vespa_run_directory中找到另一个包含对数优势比的文件,作为额外的输入。 - 使用
--prott5_weights_cache
后跟文件夹路径指定缓存文件夹的位置(或预加载的ProtT5权重)。通过将权重下载到该文件夹,而不是在每次运行VESPA和/或VESPAl时都下载权重,可以下载权重或如果已存在则重新使用。 - 如果您还想输出除默认的预测.csv文件外的单个[.h5文件](#.h5 files),请添加
--h5_output
后跟输出文件位置。如果您只对.h5文件感兴趣,请添加--no_csv
。
以下您可以找到有关如何单独运行VESPA和VESPAl每个步骤的信息。运行vespa脚本将自动为您执行以下子步骤(您选择的可选规格)。如果您对特定中间结果感兴趣,请使用子步骤。
VESPA和VESPAl的子步骤
以下步骤可以单独运行,并且可以针对FASTA
文件中包含的任意数量的序列。
步骤1:提取ProtT5嵌入
要运行VESPA和/或VESPAl以获取SAV预测,您需要序列的ProtT5
嵌入。如果您有GPU,您可以使用包含的嵌入脚本在自己的机器上生成蛋白质嵌入。
vespa_emb data/sequences.fasta -o data/embeddings.h5 --prott5_weights_cache data/cache
如您所见,您需要指定输出文件位置(-o
),以及您输入序列的FASTA
文件位置。
可选:--prott5_weights_cache
指定一个缓存目录以存储ProtT5
权重。如果没有提供,上述行将在每次运行VESPA
和/或VESPAl
时将权重下载到您的当前工作目录。
步骤 2:保守性预测
VESPA
和VESPAl
使用每残基保守性预测作为输入。要生成它们,请在VESPA
文件夹中运行以下命令:
vespa_conspred data/embeddings.h5 -o data/conspred.h5
我们保守性预测器的输入是ProtT5
嵌入。在您的输出文件(-o
)中,您将找到需要的9状态保守性概率(每残基),作为模型的输入。有关保守性预测的更多详细信息,请参阅上述论文。
可选:如果您想生成包含预测的保守性类别的文件而不是分配的类别概率,请在上面添加--output_classes
。
步骤 3:掩码边际概率的对数似然比
此步骤需要GPU!VESPA
和VESPAl
在预测性能上有所不同,同时所需的输入也有所不同。如果您只想运行VESPAl
,可以跳过此步骤。
要生成VESPA
所需的掩码边际概率的对数似然比,请在VESPA
文件夹中运行以下命令:
vespa_logodds data/sequences.fasta -o data/logodds.h5
可选:
- 要运行包括突变文件的日志概率脚本,请在上述代码行中添加
-m data/mutations.txt
。 - 默认情况下,上述命令生成后续步骤所需的
.h5
文件。我们提供两种选项,通过在上述代码行末添加--single_csv data/single_logodds.csv
或--csv_dir data/csv_dir/
来输出对数似然分数的可读版本。第一个选项生成包含所有序列和SAVs的单个csv文件。对于大型集,我们建议使用第二个选项,该选项按给定FASTA
文件的序列ID输出多个csv文件。.csv文件的格式在下面描述。
步骤 4:运行VESPA
和/或VESPAl
现在您已经拥有了运行VESPA
和/或VESPAl
所需的所有数据。默认情况下,vespa
脚本将只预测VESPAl
的SAV效果。要显式启用VESPA
,请添加--vespa
(这将运行两个模型),要禁用VESPAl
,请添加--no-vespal
。要生成预测,请执行以下代码(在VESPA
文件夹中):
-
两者(如果您计算了保守性预测和对数似然)
vespa_run --vespa data/conspred_probs.h5 data/sequences.fasta --T5_input data/logodds.h5 --output predictions/
-
仅VESPA(如果您计算了保守性预测和对数似然)
vespa_run --vespa --no-vespal data/conspred_probs.h5 data/sequences.fasta -T5_input data/logodds.h5 --output predictions/
-
仅VESPAl(如果您只计算了保守性预测)
vespa_run data/conspred_probs.h5 data/sequences.fasta --output predictions/
可选:如果您想输出一个单[.h5文件](#.h5 files)以及默认的.csv预测文件,请添加--h5_output
后跟输出位置。如果您只对.h5文件感兴趣,请添加--no_csv
并删除--output predictions/
。更多详细信息可以在输出下找到。
注意:结果文件的格式在VESPA和VESPAl输出部分下面描述。
其他信息
提取原始重建概率
您可能对从ProtT5
提取每个突变位置的原始重建概率感兴趣。这些原始重建概率用于计算对数似然比,并在相应的出版物中进行了更详细的解释。要这样做,请使用
vespa_logodds -r --reconstruction_output data/reconstruction_probas data/sequences.fasta -o data/logodds.h5
可选:添加突变文件。
生成的数据集在 .h5
文件 中包含概率向量,这些向量决定了所有氨基酸的重构概率,并按照 config.py
中的 MUTATION_ORDER
进行排序。如果某个特定的突变没有被计算(即,该位置不在 mutation.txt
中),它包含 -1。
文件规范
本节描述了 VESPA 和 VESPAl 相关的文件格式。
突变文件
一个简单的文本文件,每行包含一个蛋白质 ID 和一个突变(即,突变由换行符 \n 分隔)。每个突变应通过 <PROTEIN_ID>_<SAV-String>
分隔,其中 <SAV-String>
为默认值。默认的 <SAV-String>
格式如下: <fromAA><0-basedSequencePosition><toAA>
。
序列 ID 需要与序列 FASTA
文件中的 ID 相等。SAV 字符串的格式为: <Original Amino Acid><Position><Replacement Amino Acid>
示例
ENSP00000355206_I0L
ENSP00000355206_I0V
ENSP00000355206_I0L
ENSP00000355206_I0K
ENSP00000355206_I0T
可选:如果您有一个包含 1-based 突变的文件,请添加标志 --one_based_mutations
。
.h5
文件
多个脚本生成 .h5
文件。这些文件遵循 hdf5
-standard,并可以使用库 h5py
在 python 中进行处理。通常,文件被分割成可以由 FASTA
文件中的蛋白质访问号访问的数据集。数据集在相应的 输出部分 中有更详细的解释。
保守性输出
保守性预测将输出一个包含预测的 9-state 保守性概率的 .h5 文件。对于每个 FASTA
文件的 ID,相应的数据集包含一个大小为 9xL 的矩阵,其中 L 是蛋白质序列的长度,9 是预测的保守性类别(索引 0 = 非常可变;索引 8 = 非常保守)。
此外,您可以直接提取每个序列的每残基保守性类别预测文件。
对数似然比输出
默认输出是一个包含每个序列一个 Lx20 矩阵的 .h5 文件。-1 表示未计算相应突变的对数似然比。
当运行 --single_csv data/single_logodds.csv
时,对数似然比输出文件包含所有突变(或突变文件中确定的突变)作为 <PROTEIN_ID>_<SAV-String>
,后面跟着一个 ;
和特定突变的对数似然比,每行一个。
示例
B3VI55_LIPSTSTABLE_A438Q;0.053829677402973175
B3VI55_LIPSTSTABLE_A438N;0.061238136142492294
B3VI55_LIPSTSTABLE_A438Y;0.012603843584656715
B3VI55_LIPSTSTABLE_A438M;0.012212143279612064
B3VI55_LIPSTSTABLE_A438H;0.0241163931787014
B3VI55_LIPSTSTABLE_A438W;0.004520446062088013
如果将预测写入目录,例如通过在 第 3 步 中指定 --csv_dir
,则脚本将为每个序列创建一个文件,文件名为序列 ID(注意:ID 将被标准化,即每个特殊字符将被替换为 _
)。该文件将包含每行的 <Mutation-String>;score
。
名为 B3VI55_LIPSTSTABLE
的示例文件
A438Q;0.053829677402973175
A438N;0.061238136142492294
A438Y;0.012603843584656715
A438M;0.012212143279612064
A438H;0.0241163931787014
A438W;0.004520446062088013
VESPA 和 VESPAl 输出
VESPA 和/或 VESPAl 的默认输出将在 vespa_run_directory
的输出文件夹中生成每个蛋白质一个 .csv(以分号分隔)文件。如果您指定了输出目录 --output
,您将在那里找到 .csv(以分号分隔)文件。为了解决由于长序列 ID 而引起的命名问题,csv 文件将根据 FASTA
文件中的序列出现次数进行编号。将在输出目录中创建一个查找文件 map.json
,其中包含从数字到序列 ID 的映射字典。
示例 map.json
{ "0": "B3VI55_LIPSTSTABLE",
"1": "BF520_ENV",
"2": "BG_STRSQ",
"3": "BG505_ENV",
"4": "HG_FLU",
"5": "MTH3_HAEAESTABILIZED"}
这些单独的文件将包含具有突变(格式: <fromAA><0-basedSequencePosition><toAA>
)的行以及 VESPA 和/或 VESPAl 的相应预测。
示例 0.csv
Mutant;VESPAl;VESPA
M0A;0.4457732174287125;0.3520255108578212
M0L;0.3191178420567241;0.2717188481387661
M0G;0.5355136080284415;0.4110670843315182
M0V;0.3594337197937546;0.2971971641898669
M0S;0.4457732174287125;0.35202555423053
M0R;0.4457732174287125;0.35202621644931126
如果您选择生成 .h5 输出,ID 将是原始的 FASTA
ID。该文件包含每个序列 ID 的一个 20xL 形状的矩阵。L 是相应蛋白质长度的长度,20 是可能的氨基酸变异数(包括自身)。氨基酸的顺序由 predict/config.py
中的 MUTANT_ORDER
确定(ALGVSREDTIPKFQNYMHWC
)。未计算/指定(例如,野生型替换)的空字段包含 -1。
开发路线图
- 编写全面的测试
- 发布 pypi 包
- 从 github 发布版安装
- 贡献指南
从当前 Github 发布版安装
警告:实验性:要从 github 安装当前版本,您可以使用
python -m pip install https://github.com/Rostlab/VESPA/releases/download/v0.9.0-beta/vespa-0.9.0b0.tar.gz
引用
如果您想引用我们,请随意引用
Marquet, C., Heinzinger, M., Olenyi, T. 等。蛋白质语言模型的嵌入可以预测保守性和变异效应。Hum Genet (2021)。https://doi.org/10.1007/s00439-021-02411-y
@article{Marquet2021,
doi = {10.1007/s00439-021-02411-y},
url = {https://doi.org/10.1007/s00439-021-02411-y},
year = {2021},
month = dec,
publisher = {Springer Science and Business Media {LLC}},
author = {C{\'{e}}line Marquet and Michael Heinzinger and Tobias Olenyi and Christian Dallago and Kyra Erckert and Michael Bernhofer and Dmitrii Nechaev and Burkhard Rost},
title = {Embeddings from protein language models predict conservation and variant effects},
journal = {Human Genetics}
}
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
vespa_effect-1.0.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | f451dfe95ced12c0e218967815afdfd384d46b65517f62f4d9d5fb8bdb847098 |
|
MD5 | 10ea3ab059b887a4ffb72782051a91ca |
|
BLAKE2b-256 | 9126fcf9301e3702d82353260c01cf527697cf124caa76b8e059e13a0a7ece13 |
vespa_effect-1.0.2-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c5b43678a120ea3987175427ea8dd8ff407942c8d0d1e2b1bf19f3ed28cc06b6 |
|
MD5 | ad7b9b09e8df8536f41cc8c6288d4207 |
|
BLAKE2b-256 | 631bd6e6d0136b88421aa680a6b408412b872f42f0d25702c2fa677fb6900016 |