HuggingFace镜像/framepool
模型介绍
文件和版本
分析

Framepool

基于框感知池化卷积网络,从可变长度5'UTR序列预测平均核糖体负载。

免责声明

本项目是Alexander Karollus等人所著《Predicting mean ribosome load for 5'UTR of any length using deep learning》(https://doi.org/10.1371/journal.pcbi.1008982)的非官方实现。

Framepool的官方代码库位于Karollus/5UTR,已发布的Kipoi封装器位于kipoi/models。

[!TIP] MultiMolecule团队已确认,所提供的模型和检查点能够生成与原始实现相同的中间表示。

Framepool的发布团队未为此模型编写此模型卡片,本模型卡片由MultiMolecule团队编写。

模型详情

Framepool是一个小型一维卷积网络,仅通过序列即可预测人类5'非翻译区的平均核糖体负载(MRL)。它扩展了Sample等人,2019的定长网络,增加了一个框感知池化层。该层通过反转序列以将阅读框锚定在起始密码子处,将卷积特征图分割为三个阅读框,并对每个框应用全局最大池化和掩码全局平均池化。池化后的表示与长度无关,由一个小型密集头处理,随后进行每个子库的缩放回归,以在两个训练库(egfp_unmod_1和random)之间重新校准预测。有关训练过程的更多信息,请参阅训练详情部分。

上游作者推荐发布的combined_residual模型用于变异效应评分。

模型规格

层数隐藏层大小参数数量(百万)浮点运算次数(十亿)乘加运算次数(十亿)最大标记数
47680.280.050.02unlimited

链接

  • 代码:multimolecule.framepool
  • 数据:来自Sample等人,2019的eGFP多核糖体谱大规模平行报告基因分析(MPRA),HEK293T细胞,固定长度(50 nt)和可变长度(25-100 nt)5'UTR文库
  • 论文:Predicting mean ribosome load for 5'UTR of any length using deep learning
  • 开发者:Alexander Karollus、Žiga Avsec、Julien Gagneur
  • 模型类型:具有框架感知池化的一维残差CNN,用于从5'UTR序列预测平均核糖体负载
  • 原始仓库:Karollus/5UTR

使用方法

模型文件依赖于multimolecule库。您可以使用pip安装它:

pip install multimolecule

直接使用

平均核糖体负载预测

您可以直接使用该模型来预测5'UTR序列的平均核糖体负载:

>>> from multimolecule import RnaTokenizer, FramepoolForSequencePrediction

>>> tokenizer = RnaTokenizer.from_pretrained("multimolecule/framepool")
>>> model = FramepoolForSequencePrediction.from_pretrained("multimolecule/framepool")
>>> output = model(**tokenizer("ACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUAC", return_tensors="pt"))

>>> output.keys()
odict_keys(['logits'])

接口

  • 输入长度:可变;上游 MPRA 训练数据为 25-100 nt 的 5'UTR,但由于采用了帧感知池化,模型可接受任意长度的序列
  • 字母表:RNA(A、C、G、U);[RnaTokenizer][multimolecule.RnaTokenizer] 会将 T 转换为 U;N 及其他非标准标记会被编码为全零列,并在掩码池化过程中被忽略
  • 填充:通过 attention_mask 支持零填充,填充部分不参与池化
  • 输出:每个序列对应一个标量——预测的平均核糖体负载(logits,形状为 (batch_size, 1))
  • 辅助输入:可选的 library_indicator(形状为 (batch_size, library_size)),用于为缩放回归选择两个训练子库之一。默认为 random 库,与上游 Kipoi 变异效应接口匹配

变异效应

Framepool 通过可选的 alternative_input_ids 参数支持参考序列/替代序列的配对评分:

  • 单序列(仅参考序列):logits 为预测的平均核糖体负载(每个序列对应一个标量)
  • 参考序列 + 替代序列:logits 为平均核糖体负载的 log2 倍变化 log2(MRL_alt / MRL_ref),与 Kipoi UTRVariantEffectModel.predict_on_batch 的 mrl_fold_change 输出匹配
  • 参考序列和替代序列独立评分;两者必须使用相同的 library_indicator,以确保缩放回归在倍变化计算中相互抵消
  • 对于上游的“移码”变异效应输出(shift_1、shift_2),在评分前需在参考序列和替代序列的输入前均添加一列或两列零(或 N 标记),与 Kipoi 循环一致

训练详情

Framepool 基于多聚核糖体谱 MPRA 数据进行训练,该数据用于测量随机 5'UTR 序列的平均核糖体负载。模型采用帧感知池化,因此单个网络即可对任意长度的序列进行评分。

训练数据

Framepool 的训练数据来自 Sample 等人,2019 在 HEK293T 细胞中进行的 eGFP 多聚核糖体谱 MPRA 库:固定长度库(egfp_unmod_1,50 nt)和可变长度库(random,25-100 nt)。约 260,000 条序列用于训练,20,000 条留作测试;此外还在内源数据上进行了额外验证。

训练流程

预训练

  • 损失函数:预测的平均核糖体负载与实测平均核糖体负载之间的均方误差
  • 优化器:Adam,参数设置为 lr = 1e-3,beta_1 = 0.9,beta_2 = 0.999,epsilon = 1e-8
  • 训练轮次:6
  • 小批量采样:两个训练库在每个批次内混合;将独热编码的库指示器输入到缩放回归层,以便网络能够吸收库特异性偏移

引用

@article{karollus2021predicting,
  author    = {Karollus, Alexander and Avsec, {\v Z}iga and Gagneur, Julien},
  title     = {Predicting mean ribosome load for 5{\textquoteright}UTR of any length using deep learning},
  journal   = {PLOS Computational Biology},
  volume    = {17},
  number    = {5},
  pages     = {e1008982},
  year      = {2021},
  publisher = {Public Library of Science},
  doi       = {10.1371/journal.pcbi.1008982}
}

[!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。

有关论文/模型的问题或意见,请联系 Framepool paper 的作者。

许可证

本模型实现采用 GNU Affero General Public License 许可证。

如需其他条款和说明,请参阅我们的 License FAQ。

SPDX-License-Identifier: AGPL-3.0-or-later