SingleMod
SingleMod
SingleMod是一种深度学习模型,专为利用纳米孔直接RNA测序(DRS)数据在单RNA分子中精确检测m6A修饰而设计。该模型通过深度多实例回归框架进行训练,能够充分利用广泛的甲基化率标签。SingleMod是一个通用框架,可轻松适配其他核酸修饰的检测模型训练。
注意: SingleMod支持从RNA002试剂盒或最新RNA004试剂盒生成的直接RNA测序数据中预测m6A修饰。
环境要求
数据准备:
数据 | 说明 |
---|---|
fast5或pod5文件 | 包含原始电流信号 |
reference.fa | 基因组或转录组参考序列,推荐使用基因组参考序列 |
methylation_rate.bed | 甲基化率标签文件,仅训练自定义模型时需要 |
操作系统:
本流程在Linux系统上运行。
需安装Python3.6及以上版本。
软件依赖:
工具 | 用途 | 备注 |
---|---|---|
Guppy | 通过碱基识别从fast5生成fastq | 若fast5已碱基识别,可忽略 |
dorado | 通过碱基识别从pod5生成fastq | 适用于RNA004数据,若pod5已碱基识别,可忽略 |
minimap2 | 将reads比对到参考序列 | |
samtools | BAM文件处理 | |
bedtools | BED文件处理 | |
Picard | 将BAM文件拆分为多个文件 | 支持并行处理,显著节省时间 |
nanopolish | 信号对齐,将电流信号分配到碱基 | 使用版本0.13.2 |
pod5 | 将pod5格式转换为fast5格式 | 适用于RNA004数据 |
f5c | 信号对齐,将电流信号分配到碱基 | 适用于RNA004数据 |
Python模块:
模块 | 用途 | 备注 |
---|---|---|
torch | 开源Python机器学习库 | |
pysam | BAM文件处理 | 用于在IGV中可视化单分子m6A标记 |
adabound | 优化模型参数 | 仅训练自定义模型时需要 |
确保已安装以下基础包:numpy, os, re, random, scipy, datetime, collections, argparse, multiprocessing, array
SingleMod代码(https://github.com/xieyy46/SingleMod-v1/tree/main/SingleMod):
代码 | 用途 | 备注 |
---|---|---|
organize_from_eventalign.py | 从nanopolish eventalign结果中提取并整理原始信号 | |
merge_motif_npy.py | 按不同motif整理原始信号 | |
SingleMod_m6A_prediction.py | 预测单分子中的m6A修饰 | |
bam_mark_m6A.py | 在BAM文件中标记m6A修饰,用于单分子m6A可视化 | |
SingleMod_train.py | 训练自定义模型 | 仅训练自定义模型时需要 |
SingleMod预训练模型:
RNA002(哺乳动物):https://github.com/xieyy46/SingleMod-v1/tr