跳转至

851. 纳米孔直接RNA测序

一句话概述:ONT直接RNA测序(dRNA-seq) = 不经过反转录,直接读取天然RNA分子——保留所有RNA修饰信息,获得全长转录本和poly(A)尾巴长度。

核心知识点速查表

维度dRNA-seq传统RNA-seq
反转录不需要需要(RT偏差)
PCR扩增不需要需要(扩增偏差)
RNA修饰直接检测(m6A等)丢失
读长全长转录本短片段拼接
Poly(A)长度直接测量无法测量
通量较低
准确率~93-95%>99.9%
起始RNA量需要较多(500ng+)较少即可

一、dRNA-seq分析流程

# ONT直接RNA测序分析全流程

# 1. 碱基识别(Dorado)
dorado basecaller \                    # 碱基识别
    rna004_130bps_sup@v5.1.0 \         # RNA专用模型
    pod5_dir/ \                        # 原始信号文件
    --modified-bases m6A_DRACH \       # 检测m6A修饰
    > dRNA_calls.bam                   # 输出BAM

# 2. 比对到参考基因组/转录组
minimap2 -ax splice \                  # 剪接感知比对模式
    -uf \                              # 正链RNA
    -k14 \                             # 种子长度
    --junc-bed known_junctions.bed \   # 已知剪接位点
    ref_genome.fa \                    # 参考基因组
    dRNA_reads.fastq \                 # dRNA reads
    | samtools sort -o aligned.bam     # 排序

samtools index aligned.bam             # 建立索引

# 3. 转录本定量
# NanoCount —— 长读长转录本定量
NanoCount -i aligned.bam \             # 输入BAM
    -o transcript_counts.tsv           # 输出计数

# 4. 全长转录本识别
# FLAIR —— 全长异构体分析
flair align -g ref.fa \                # 比对
    -r dRNA_reads.fq \                 # reads
    -o flair_aligned

flair correct -g ref.fa \              # 校正剪接位点
    -q flair_aligned.bed \
    -f annotation.gtf

flair collapse -g ref.fa \             # 合并异构体
    -q corrected.bed \
    -r dRNA_reads.fq \
    -f annotation.gtf

二、RNA修饰检测(核心应用)

# m6A修饰检测 —— dRNA-seq最独特的优势

# 方法1:使用modkit(ONT官方工具)
modkit pileup \                        # 修饰汇总
    aligned_with_mods.bam \            # 含修饰信息的BAM
    m6A_results.bed \                  # 输出BED
    --ref ref.fa \                     # 参考基因组
    --mod-thresholds m6A:0.75          # m6A阈值

# 方法2:m6Anet(深度学习方法)
# 从原始信号中预测m6A位点
m6anet dataprep \                      # 数据准备
    --input aligned.bam \
    --output dataprep_output/ \
    --ref ref.fa

m6anet inference \                     # m6A预测
    --input dataprep_output/ \
    --output m6a_results/ \
    --n_processors 16

# 方法3:xPore(差异修饰分析)
# 比较两个条件下的RNA修饰差异
python -m xpore diffmod \              # 差异修饰
    --config config.yml                # 配置文件
# 输出每个位点在两个条件间的修饰水平差异

三、Poly(A)尾巴长度分析

# nanopolish polya —— 测量poly(A)尾巴长度
nanopolish polya \                     # poly(A)分析
    --reads dRNA_reads.fq \            # 原始reads
    --bam aligned.bam \                # 比对BAM
    --genome ref.fa \                  # 参考基因组
    > polya_results.tsv                # 输出结果

# 输出包含每条read的poly(A)尾巴长度估计
# poly(A)长度与mRNA稳定性和翻译效率相关

四、面试高频问题

  1. Q: 为什么要直接测RNA而不是先转成cDNA? A: 反转录会丢失RNA修饰信息(m6A等),引入RT偏差,而且cDNA拼接可能产生嵌合体。直接RNA测序保留所有原始信息。

  2. Q: dRNA-seq能检测哪些RNA修饰? A: m6A(最常见的mRNA修饰)、m5C、pseudouridine等。这些修饰影响RNA稳定性、翻译效率和剪接。

  3. Q: dRNA-seq的局限性? A: 通量较低、准确率不如cDNA模式、需要较多起始RNA(500ng+)、仅能测polyA+RNA。

速查表

# dRNA-seq分析工具链
碱基识别:   Dorado (RNA模型)
比对:       minimap2 -ax splice -uf
转录本:     FLAIR, Bambu, StringTie2
定量:       NanoCount, Bambu
m6A检测:    modkit, m6Anet, xPore
polyA:      nanopolish polya
质控:       NanoPlot, pycoQC

# m6A DRACH基序
D = A/G/U
R = A/G
A = A (m6A修饰位点)
C = C
H = A/C/U
→ DRACH是m6A最常见的序列基序