RNA-seq:从转录组到数字信号

记得我刚入行那年,我们的转录组研究主要依赖基因芯片。每个探针信号只能告诉我“这个基因有没有表达”,而且背景噪音高得让人头疼。后来RNA-seq出现了,这玩意儿把转录组研究彻底翻了个底朝天。

核心思路:RNA-seq的关键在于数字化。把RNA分子打碎成短片段,然后高通量测序,最后数一数每个基因上有多少匹配的片段。说白了,就是把模拟信号变成了数字信号。

为什么是RNA-seq?

在讲具体流程前,我建议你先理解一个根本问题:为什么RNA-seq能取代芯片?

你看看芯片的局限性:

  • 依赖已知序列——你只能检测芯片上已有的探针
  • 动态范围窄——高表达和低表达基因很难同时看准
  • 背景噪音高——杂交信号不够干净

RNA-seq一次性解决了这些问题。它能捕获已知和未知的转录本,动态范围能达到六个数量级以上,背景噪音也小得多。我在项目中遇到过好几次这样的情况:用芯片怎么做都找不到差异的基因,一上RNA-seq就现了原形。

RNA-seq的核心步骤

从拿到样本到最终的特征矩阵,中间会经过一系列步骤。我习惯把整个流程分为三个大阶段:

  1. 湿实验阶段:RNA提取、文库构建、上机测序
  2. 数据预处理阶段:质控、剪切、比对/定量
  3. 下游分析阶段:差异表达、功能注释、可视化

下面这张图可以帮你建立整体印象:

RNA-seq 全流程框架图 湿实验阶段 数据预处理阶段 下游分析阶段 样本 & RNA提取 文库构建 上机测序 原始数据质控 剪切与过滤 比对 / 伪比对 基因/转录本定量 差异表达分析 功能富集分析 可视化与报告 最终产出: 基因-样本特征矩阵

应用场景

RNA-seq的应用范围比我刚入行时想象的宽得多。这里我列出几个常见方向:

应用方向 核心问题 典型工具
差异表达分析 不同条件下哪些基因表达量有变化 DESeq2, edgeR, limma
可变剪接分析 同一个基因产生哪些不同的转录本 rMATS, SUPPA2, MISO
新转录本发现 参考基因组中未注释的转录区域 Cufflinks, StringTie, FLAIR
非编码RNA分析 lincRNA、circRNA等功能研究 Salmon, STAR, CIRCexplorer
单细胞RNA-seq 细胞异质性、稀有细胞类型鉴定 Seurat, Scanpy, cellranger
时间序列分析 动态表达模式、发育轨迹 Monocle, Slingshot, TSCAN
个人经验:我建议你从差异表达分析入手学RNA-seq。这条路最成熟,社区资源也多。等掌握了标准流程,再去看可变剪接或新转录本这些更复杂的问题。我当初就是这么做过来的。

常见应用场景速查

我们团队经常接到求助,问“我这个研究适不适合做RNA-seq”。下面这张表能帮你快速判断:

研究目标 推荐技术 备选方案
全转录本定量 bulk RNA-seq 基因芯片(不推荐)
单细胞分辨率的表达谱 scRNA-seq 单细胞qPCR(通量太低)
已知基因定量 bulk RNA-seq / NanoString qRT-PCR(基因数太少)
新转录本或融合基因发现 Paired-end RNA-seq 长读长测序(成本高)
非编码RNA谱 small RNA-seq / total RNA-seq 专用芯片(覆盖不全)

其实选择哪个技术路线,关键看你的生物学问题和预算。RNA-seq不是万能的,但它的灵活性确实让人爱不释手。

一点小提醒

警惕批次效应:我在多个项目上吃过这个亏。如果你需要比较多组样本,尽量在同一次实验中完成建库和测序,或者至少用同一批次的试剂。跨批次的比较会让你在后续分析中多花好几倍的力气去校正。
编程基础:做好RNA-seq分析,你至少需要熟悉Linux命令行、R或Python的基础操作。别一上来就折腾全流程,先学会跑一个简单的差异分析脚本,再慢慢扩展到其他环节。

这一章只是开个头。接下来的内容我会从原始数据开始,一步步带你走到特征矩阵。嗯,准备好了吗?