遗传变异对剪接影响的模块化建模
本项目是 Jun Cheng 等人发表的论文 MMSplice: modular modeling improves the predictions of genetic variant effects on splicing 的非官方实现。
MMSplice 的官方代码库位于 gagneurlab/MMSplice_MTSplice。
[!TIP] MultiMolecule 团队已确认,所提供的模型和检查点能够生成与原始实现相同的中间表示。
MMSplice 的发布团队未为本模型撰写此模型卡片,本模型卡片由 MultiMolecule 团队编写。
MMSplice 是一个用于预测遗传变异对前体 mRNA 剪接影响的模块化神经网络。它将外显子及其侧翼内含子分解为五个区域,并通过独立的小型卷积子网络对每个区域进行评分。为了估计变异效应,模型会同时在参考序列和替代序列上运行,每个模块的得分差异通过固定的线性模型组合成 delta-logit-PSI 剪接效应评分。有关训练过程的更多信息,请参阅 训练详情 部分。
| 模块数量 | 参数数量(百万) | 浮点运算次数(百万) | 乘加运算次数(百万) |
|---|---|---|---|
| 5 | 0.057 | 5.71 | 2.79 |
(浮点运算次数和乘加运算次数基于 220 bp 的外显子及侧翼序列输入进行测量。)
模型文件依赖于 multimolecule 库。您可以使用 pip 安装它:
pip install multimolecule>>> import torch
>>> from multimolecule import RnaTokenizer, MmSpliceForSequencePrediction
>>> tokenizer = RnaTokenizer.from_pretrained("multimolecule/mmsplice")
>>> model = MmSpliceForSequencePrediction.from_pretrained("multimolecule/mmsplice")
>>> _ = model.eval()
>>> left_intron = "A" * 100
>>> exon = "C" * 20
>>> right_intron = "G" * 100
>>> reference = tokenizer(left_intron + exon + right_intron, add_special_tokens=False, return_tensors="pt")
>>> output = model.model(**reference)
>>> output["logits"].shape
torch.Size([1, 5])>>> import torch
>>> from multimolecule import RnaTokenizer, MmSpliceForSequencePrediction
>>> tokenizer = RnaTokenizer.from_pretrained("multimolecule/mmsplice")
>>> model = MmSpliceForSequencePrediction.from_pretrained("multimolecule/mmsplice")
>>> _ = model.eval()
>>> left_intron = "A" * 100
>>> exon = "C" * 20
>>> right_intron = "G" * 100
>>> reference = tokenizer(left_intron + exon + right_intron, add_special_tokens=False, return_tensors="pt")
>>> alternative_exon = exon[:10] + "U" + exon[11:]
>>> alternative = tokenizer(left_intron + alternative_exon + right_intron, add_special_tokens=False, return_tensors="pt")
>>> output = model(
... reference["input_ids"],
... alternative_input_ids=alternative["input_ids"],
... )
>>> output["logits"].shape
torch.Size([1, 1])A/C/G/U 标识符映射到四个上游通道,并将 N、填充、特殊和未知标记映射到全零列input_ids / inputs_embeds):每个模块的得分向量 logits,形状为 (batch_size, 5)alternative_input_ids / alternative_inputs_embeds):额外返回 alternative_logits 和每个模块的 delta_logits = alternative_logits - logitsMmSpliceForSequencePrediction:需要同时提供参考和替代序列;返回组合的标量 delta-logit-PSI 得分,形状为 (batch_size, 1)MMSplice 被训练为五个独立的模块,用于处理剪接数据,这些模块通过线性模型组合,以预测变异对剪接包含百分比(PSI)的影响。
受体、供体、外显子和内含子模块的训练数据来源于人类参考转录本的剪接位点和外显子数据。组合线性模型是根据外显子跳跃变异的大规模平行报告基因测定(MPRA)进行拟合的。
每个模块都以序列到标量的目标进行训练,对其所在区域进行评分。然后,模块得分(及其参考/替代的差异)通过一个固定的线性模型组合,形成 delta-logit-PSI 剪接效应得分。
@article{cheng2019mmsplice,
title = {MMSplice: modular modeling improves the predictions of genetic variant effects on splicing},
author = {Cheng, Jun and Nguyen, Thi Yen Duong and Cygan, Kamil J and {\c{C}}elik, Muhammed Hasan and Fairbrother, William G and Avsec, {\v{Z}}iga and Gagneur, Julien},
journal = {Genome Biology},
volume = 20,
number = 1,
pages = {48},
year = 2019,
publisher = {Springer},
doi = {10.1186/s13059-019-1653-z}
}[!NOTE] 本仓库中分发的制品是 MultiMolecule 项目的一部分。 如果 MultiMolecule 对您的研究有帮助,请按以下方式引用 MultiMolecule 项目:
@software{chen_2024_12638419,
author = {Chen, Zhiyuan and Zhu, Sophia Y.},
title = {MultiMolecule},
doi = {10.5281/zenodo.12638419},
publisher = {Zenodo},
url = {https://doi.org/10.5281/zenodo.12638419},
year = 2024,
month = may,
day = 4
}有关模型卡片的任何问题或意见,请使用 MultiMolecule 的 GitHub issues。
有关论文/模型的问题或意见,请联系 MMSplice 论文 的作者。
本模型实现采用 GNU Affero General Public License 许可证。
如需其他条款和说明,请参考我们的 许可证常见问题。
SPDX-License-Identifier: AGPL-3.0-or-later