AlphaMissense
该软件包提供了AlphaMissense模型的实现。这个实现是与AlphaMissense 2023出版物一起提供的参考,并且不会在未来积极维护。
我们分叉了AlphaFold仓库,并对其进行了修改以实现AlphaMissense。
我们提供的内容:
- AlphaMissense模型和训练损失的详细实现(modules_missense.py)
- 用于推理的输入特征创建的数据管道(pipeline_missense.py)。数据管道需要访问遗传数据库进行多序列比对,并且如果使用空间裁剪,则需要访问存储在Google Cloud Storage中的AlphaFold数据库中的蛋白质结构。请参见遗传数据库部分和AFDB自述文件了解如何访问这些数据集。
- 所有可能的人类氨基酸替换和错义变异的预计算预测(托管在此处)。
我们没有提供:
- 训练好的AlphaMissense模型权重。
访问AlphaMissense预测:
人类主要转录本和等位基因的预测可在此处获得。 您可以将这些文件与Ensembl VEP工具和AlphaMissense插件一起使用。
安装
- 安装所有依赖项:
sudo apt install python3.11-venv aria2 hmmer
- 克隆这个仓库并进入它。
git clone https://github.com/deepmind/alphamissense.git
cd ./alphamissense
- 设置Python虚拟环境并安装Python依赖项:
python3 -m venv ./venv
venv/bin/pip install -r requirements.txt
venv/bin/pip install -e .
- 测试安装
venv/bin/python test/test_installation.py
用法
由于我们没有发布训练好的模型权重,因此该代码不是用于进行新的预测,而是作为实现参考。我们正在发布数据管道、模型和损失函数代码。
数据管道需要一个FASTA文件(即protein_sequence_file
),其中应包含所有目标序列,以及下一节中概述的遗传序列数据库。
from alphamissense.data import pipeline_missense
protein_sequence_file = ...
pipeline = pipeline_missense.DataPipeline(
jackhmmer_binary_path=..., # Typically '/usr/bin/jackhmmer'.
protein_sequence_file=protein_sequence_file,
uniref90_database_path=DATABASES_DIR + '/uniref90/uniref90.fasta',
mgnify_database_path=DATABASES_DIR + '/mgnify/mgy_clusters_2022_05.fa',
small_bfd_database_path=DATABASES_DIR + '/small_bfd/bfd-first_non_consensus_sequences.fasta',
)
sample = pipeline.process(
protein_id=..., # Sequence identifier in the FASTA file.
reference_aa=..., # Single capital letter, e.g. 'A'.
alternate_aa=...,
position=..., # Integer, note that the position is 1-based!
msa_output_dir=msa_output_dir,
)
该模型作为JAX模块实现,可以像以下方式实例化:
from alphamissense.model import config
from alphamissense.model import modules_missense
def _forward_fn(batch):
model = modules_missense.AlphaMissense(config.model_config().model)
return model(batch, is_training=False, return_representations=False)
random_seed = 0
prng = jax.random.PRNGKey(random_seed)
params = hk.transform(_forward_fn).init(prng, sample)
apply = jax.jit(hk.transform(_forward_fn).apply)
output = apply(params, prng, sample)
例如,在这一点上,变异的分数将存储在output['logit_diff']['variant_pathogenicity']
中。
遗传数据库
AlphaMissense使用了多个遗传(序列)数据库进行多序列比对:
我们参考AlphaFold仓库获取如何下载这些数据库的说明。
引用这项工作
任何在使用此源代码过程中披露发现的出版物都应引用:
@article {AlphaMissense2023,
author = {Jun Cheng, Guido Novati, Joshua Pan, Clare Bycroft, Akvilė Žemgulytė, Taylor Applebaum, Alexander Pritzel, Lai Hong Wong, Michal Zielinski, Tobias Sargeant, Rosalia G. Schneider, Andrew W. Senior, John Jumper, Demis Hassabis, Pushmeet Kohli, Žiga Avsec},
journal = {Science},
title = {Accurate proteome-wide missense variant effect prediction with AlphaMissense},
year = {2023},
doi = {10.1126/science.adg7492},
URL = {https://www.science.org/doi/10.1126/science.adg7492},
}
致谢
AlphaMissense与以下独立库和软件包进行了通信和/或引用:
- Abseil
- Biopython
- HMMER Suite
- Haiku
- Immutabledict
- JAX
- Matplotlib
- NumPy
- Pandas
- SciPy
- Tree
- Zstandard 我们感谢所有贡献者和维护者!
许可和免责声明
这不是一个官方支持的谷歌产品。
AlphaMissense数据库包含具有不同置信度水平的预测,应谨慎使用。提供的信息不是专业医疗建议、诊断或治疗的替代品,也不构成医疗或其他专业建议。AlphaMisense尚未经过验证,也未获得任何临床使用的批准。
2023 年 DeepMind Technologies Limited版权所有。
AlphaMissense代码许可证
根据Apache许可证2.0版(以下简称"许可证")进行许可;除非遵守许可证,否则不得使用该文件。您可以在https://www.apache.org/licenses/LICENSE-2.0上获得许可证副本。
除非适用法律要求或书面同意,否则根据许可证分发的软件将按"原样"分发,不附带任何明示或暗示的保证或条件。参见许可证以了解特定语言的管理权限和限制。
AlphaMissense预测许可证
AlphaMissense预测根据知识共享署名4.0 国际许可(CC BY 4.0)(下称"CC许可证")获得许可。您可以在https://creativecommons.org/licenses/by/4.0/legalcode上获得CC许可证副本。
第三方软件
在致谢部分提及的第三方软件、库或代码的使用可能受到单独条款和条件或许可条款的约束。您使用第三方软件、库或代码受任何此类条款的约束,并且在使用之前应该检查您是否可以遵守任何适用的限制或条款和条件。