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

UFold

用于 RNA 二级结构预测的预训练模型,采用类图像序列表示和 U-Net。

免责声明

这是 Laiyi Fu、Yingxin Cao 等人的论文《UFold: fast and accurate RNA secondary structure prediction with deep learning》的非官方实现。

UFold 的官方代码库位于uci-cbcl/UFold。

[!TIP] MultiMolecule 实现是原始 U-Net 架构和特征构建的直接 PyTorch 移植版本。

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

模型详情

UFold 从单个 RNA 序列预测 RNA 碱基对接触图。它将序列表示为一个 17 通道的图像:16 个通道是单热核苷酸指示器的外积,1 个通道是手工设计的标准/摆动配对分数。U-Net 预测对称的接触分数矩阵,并且可以启用原始的约束后处理程序以强制执行碱基配对约束。

模型规格

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

浮点运算数和乘加运算数是使用 multimolecule.utils 针对一个 600 核苷酸序列计算得出的。

链接

  • 代码:multimolecule.ufold
  • 权重:multimolecule/ufold
  • 论文:UFold: fast and accurate RNA secondary structure prediction with deep learning
  • 开发团队:Laiyi Fu、Yingxin Cao、Jie Wu、Qinke Peng、Qing Nie、Xiaohui Xie
  • 原始代码库:uci-cbcl/UFold

使用方法

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

pip install multimolecule

RNA 二级结构分析流程

import multimolecule
from transformers import pipeline

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

PyTorch 推理

from multimolecule import RnaTokenizer, UfoldModel

tokenizer = RnaTokenizer.from_pretrained("multimolecule/ufold")
model = UfoldModel.from_pretrained("multimolecule/ufold")

sequence = "GGGCUAUUAGCUCAGUUGGUUAGAGCGCACCCCUGAUAAGGGUGAGGUCGCUGAUUCGAAUUCAGCAUAGCUCA"
inputs = tokenizer(sequence, return_tensors="pt")
output = model(**inputs)

contact_map = output.contact_map

要运行原始的约束后处理循环:

output = model(**inputs, use_postprocessing=True)
contact_map = output.postprocessed_contact_map

训练详情

UFold 的训练目标是基于带注释的接触图和碱基配对规则预测 RNA 二级结构。

训练数据

  • RNAStrAlign:包含来自 8 个 RNA 家族的 30,451 个独特 RNA;论文中提到,经过冗余过滤后,采用随机划分方式得到 24,895 个训练 RNA 和 2,854 个测试 RNA。
  • bpRNA-1m:包含来自 2,588 个家族的 102,318 个 RNA;在将数据划分为 TR0 和 TS0 之前,使用 CD-HIT 去除冗余序列。
  • 增强数据:通过对 bpRNA-new 序列进行随机突变和结构预测,生成合成训练样本。
  • PDB 训练数据:来自 bpRNA 和 PDB 的高分辨率 RNA 结构用于微调/评估实验;测试集 TS1、TS2 和 TS3 经过 80% 序列一致性过滤。
  • 评估数据:ArchiveII、TS0、bpRNA-new 和 PDB 测试数据用于基准评估。

训练流程

  • 输入表示:按照 MultiMolecule 分词器顺序排列的 16 个外积通道,外加一个手工设计的配对分数通道。
  • 目标函数:基于碱基对接触图的加权二元交叉熵。
  • 优化器:Adam。
  • 训练轮次:100。
  • 批次大小:1。
  • 正类权重:300。
  • 后处理:结合标准/摆动配对规则的约束优化、稀疏性收缩以及 0.5 的阈值处理。

引用

@article{fu2022ufold,
  author = {Fu, Laiyi and Cao, Yingxin and Wu, Jie and Peng, Qinke and Nie, Qing and Xie, Xiaohui},
  title = {UFold: fast and accurate RNA secondary structure prediction with deep learning},
  journal = {Nucleic Acids Research},
  volume = {50},
  number = {3},
  pages = {e14},
  year = {2022},
  doi = {10.1093/nar/gkab1074}
}

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

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

许可证

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

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

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