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

SPOT-RNA

使用二维深度神经网络和迁移学习进行RNA二级结构预测的预训练模型。

免责声明

这是Jaswinder Singh等人发表的论文《RNA secondary structure prediction using an ensemble of two-dimensional deep neural networks and transfer learning》(https://doi.org/10.1038/s41467-019-13395-9)的非官方实现。

SPOT-RNA的官方代码库位于jaswindersingh2/SPOT-RNA。

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

SPOT-RNA的发布团队并未为此模型撰写此模型卡片,本模型卡片由MultiMolecule团队编写。

模型详情

SPOT-RNA是一种二维卷积神经网络,用于从单个RNA序列预测RNA二级结构(碱基对接触图)。它可以预测标准碱基对(Watson-Crick和摆动碱基对)和非标准碱基对,包括假结和其他三级相互作用。

该模型的特点包括:

  • 成对表示:将标准核苷酸特征外连接成一个L x L x 8的特征矩阵。
  • 卷积块:带有LayerNorm、dropout以及与检查点匹配的ReLU/ELU激活函数的二维残差卷积块。
  • 架构路径:在已发布的预测器中使用的、与检查点匹配的2D-BLSTM或扩张卷积路径。
  • 训练策略:从bpRNA迁移学习到高分辨率PDB RNA结构。

MultiMolecule提供的SPOT-RNA为单个检查点,即multimolecule/spotrna。

模型规格

参数数量(百万)浮点运算次数(十亿)乘加运算次数(十亿)
17.468642.104302.16

链接

  • 代码:multimolecule.spotrna
  • 权重:multimolecule/spotrna
  • 数据:multimolecule/bprna-spot
  • 论文:RNA secondary structure prediction using an ensemble of two-dimensional deep neural networks and transfer learning
  • 开发团队:Jaswinder Singh、Jack Hanson、Kuldip Paliwal、Yaoqi Zhou
  • 原始代码库:jaswindersingh2/SPOT-RNA

使用方法

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

pip install multimolecule

直接使用

RNA二级结构分析流程

您可以通过MultiMolecule二级结构分析流程直接使用SPOT-RNA:

import multimolecule  # you must import multimolecule to register models
from transformers import pipeline

predictor = pipeline("rna-secondary-structure", model="multimolecule/spotrna")
output = predictor("GGGCUAUUAGCUCAGUUGGUUAGAGCGCACCCCUGAUAAGGGUGAGGUCGCUGAUUCGAAUUCAGCAUAGCUCA")

PyTorch 推理

以下是如何使用该模型在 PyTorch 中预测 RNA 二级结构的方法:

import torch
from multimolecule import RnaTokenizer, SpotRnaModel

tokenizer = RnaTokenizer.from_pretrained("multimolecule/spotrna")
model = SpotRnaModel.from_pretrained("multimolecule/spotrna")

sequence = "GGGCUAUUAGCUCAGUUGGUUAGAGCGCACCCCUGAUAAGGGUGAGGUCGCUGAUUCGAAUUCAGCAUAGCUCA"
input = tokenizer(sequence, return_tensors="pt")

output = model(**input)
contact_map = output.contact_map  # (1, L, L) base-pair probability matrix

训练详情

SPOT-RNA 采用两阶段迁移学习方法进行训练,用于 RNA 二级结构预测。

训练数据

  • 初始训练来源:bpRNA-1m(版本 1.0),包含 102,348 条带注释的 RNA。
  • 初始训练过滤:使用 CD-HIT-EST 进行序列一致性为 80% 的去冗余,移除具有 PDB 结构的 RNA,以及最大序列长度为 500 个核苷酸。
  • 初始训练语料库:预处理后得到 13,419 条 RNA。
  • 初始训练集划分:TR0 = 10,814,VL0 = 1,300,TS0 = 1,305。
  • 迁移学习来源:2019 年 3 月 2 日下载的高分辨率 PDB RNA。
  • 迁移学习过滤:分辨率优于 3.5 Å,且使用 CD-HIT-EST 进行序列一致性为 80% 的去冗余。
  • 迁移学习语料库:预处理后得到 226 条非冗余 RNA。
  • 同源性过滤前的迁移学习集划分:TR1 = 120,VL1 = 30,TS1 = 76。
  • TS1 额外过滤:使用 CD-HIT-EST 与训练数据进行 80% 一致性比对,然后使用 BLAST-N 与 TR0 和 TR1 进行比对,e-value 截断值为 10。
  • 最终 TS1 基准集:67 条 RNA。
  • 额外评估集:TS2 = 39 条 NMR 解析的 RNA,从 641 个候选 RNA 中筛选得到,筛选过程包括 CD-HIT-EST 80% 一致性过滤以及针对 TR0、TR1 和 TS1 的 BLAST-N 过滤。
  • TS2 的用途:仅用于训练后评估。

训练流程

预处理

  • 输入表示:遵循 MultiMolecule 分词器顺序的 one-hot L x 4 矩阵。
  • 缺失值处理:在 one-hot 转换前,原始 TensorFlow 实现中将无效或缺失残基编码为 -1。
  • 成对特征:从 L x 4 外连接为 L x L x 8。
  • 输入归一化:使用训练集统计数据标准化为零均值和单位方差。
  • 结构标签:使用 DSSR 从 PDB 坐标中提取。
  • 参考 NMR 模型:模型 1。
  • 假结和基序定义:论文中的 bpRNA 定义。
  • 未知 token 处理:在构建成对特征之前,将 N token 从标准四碱基特征中排除。

预训练

论文中提到训练在 Nvidia GTX TITAN X GPU 上运行。

  • 训练集划分:TR0。
  • 验证集划分:VL0。
  • 优化器:Adam。
  • 正则化:卷积层前使用 25% 的 dropout,隐藏全连接层中使用 50% 的 dropout。
  • N_A 超参数搜索:16 到 32 个残差块。
  • D_RES 超参数搜索:32 到 72 个卷积通道。
  • D_BL 超参数搜索:每个方向 128 到 256 个 2D-BLSTM 隐藏单元。
  • N_B 超参数搜索:0 到 4 个全连接块。
  • D_FC 超参数搜索:256 到 512 个全连接隐藏单元。
  • 模型选择:论文中描述的基于验证性能的模型选择。

迁移学习

预训练的 TR0 模型在 TR1 上使用相同的架构和优化设置进行重训练。

  • 初始化:从 TR0 训练的模型开始。
  • 训练集划分:TR1。
  • 验证集划分:VL1。
  • 冻结层:无;所有权重均被更新。
  • 架构和优化设置:与 TS0 训练的模型相同。
  • 模型选择:论文中描述的基于验证性能的模型选择。
  • 决策规则:选择单一概率阈值以优化验证性能。

引用

@article{singh2019rna,
  title     = "{RNA} secondary structure prediction using an ensemble of two-dimensional deep neural networks and transfer learning",
  author    = "Singh, Jaswinder and Hanson, Jack and Paliwal, Kuldip and Zhou, Yaoqi",
  journal   = "Nature Communications",
  doi       = "10.1038/s41467-019-13395-9",
  publisher = "Springer Science and Business Media LLC",
  url       = "https://doi.org/10.1038/s41467-019-13395-9",
  volume    =  10,
  number    =  1,
  pages     = "5407",
  month     =  nov,
  year      =  2019,
  copyright = "https://creativecommons.org/licenses/by/4.0",
  language  = "en"
}

[!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 议题功能。

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

许可证

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

如需其他条款和说明,请参考我们的 许可证常见问题解答。

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