第1章 RNA‑seq 基础:你手里的数据到底从哪来的

我刚入行那会,老板扔给我一个 FASTQ 文件,说「做个差异表达」。我盯着那堆字母和符号,完全不知道这玩意儿是怎么产生的。后来自己亲手跑了一遍建库、上机、下机,才算搞清楚——RNA‑seq 说白了就是把细胞里所有的 RNA 分子,打断、反转录、测序,然后数一数每个基因上有多少条 read。下面我从技术原理、应用场景、数据类型和常见平台四个角度,把这块基石帮你夯实。

1.1 技术原理:从 RNA 到数字信号

RNA‑seq 的核心思路很直接:

  1. 提取总 RNA,去掉 rRNA(或者不去,看实验设计);
  2. 用 oligo‑dT 磁珠富集 mRNA(如果想看 poly‑A 转录本)或者用随机引物;
  3. 反转录成 cDNA,然后打断(或者先打断再反转录);
  4. 加上接头、扩增,形成文库;
  5. 上机测序,得到 millions 条短读序(reads)。

这些 reads 比对到参考基因组或转录组,count 落到每个基因上的 reads 数量,就是表达量的原始数字。嗯,这里要注意:同一个基因的 counts 不能直接跨样本比较,因为测序深度、基因长度、文库组成都不一样。所以后续才需要标准化和差异检验。

▶ 一个经验:我早期做过一批样本,测序深度差异很大,直接拿 raw counts 跑差异分析,结果整出十几个假阳性。后来老老实实先做 TMM 标准化,才把问题压下去。

1.2 应用场景:你能用 RNA‑seq 做什么?

说白了,RNA‑seq 就是用来回答「基因在什么条件下表达量变了」这个问题的。但我看到过不少新人以为 RNA‑seq 只能做差异表达,其实它的应用远不止于此:

应用方向典型问题分析关键点
差异表达分析处理组 vs 对照组哪些基因上调/下调多重假设检验校正 (BH)
可变剪接分析同一个基因在不同条件下外显子使用是否改变rMATS、MAJIQ 等工具
融合基因检测肿瘤中是否存在基因融合事件STAR‑Fusion、Arriba
新转录本发现某物种参考注释不全,组装新的转录本StringTie、Cufflinks
RNA editing碱基编辑事件在转录组中的分布REDItools、GATK Variant Calling

我自己还遇到过有人用 RNA‑seq 做微生物组物种鉴定(meta‑transcriptomics),不过那是另一个话题了。

1.3 数据类型:你得认识这几种文件

干这行,每天打交道的就是下面几种文件。我刚开始分不清 SAM 和 BAM,被 debug 折磨了一整天。你想想看,它们其实是层层递进的关系:

  • FASTQ:测序机出来的原始数据,包含 read 序列和质量值。每 4 行为一条 read。
  • FASTA:参考基因组/转录组序列,只有序列没有质量。
  • SAM/BAM:比对结果。SAM 是文本,BAM 是二进制压缩版。我习惯用 samtools 处理它们。
  • GTF/GFF:基因注释文件,标注了每个基因、转录本、外显子的位置和属性。
  • Count matrix:我们最终需要的表格——行是基因,列是样本,格子是 counts。
▼ 一个常见坑
拿到别人的 GTF 文件,先检查一下版本。我吃过亏:用 Ensembl v75 注释去比对 hg38 基因组,结果很多基因没匹配上,白白浪费半天。

1.4 常见测序平台:你选哪个?

目前主流的 RNA‑seq 平台就两大阵营。我个人的选择思路是:问清楚实验预算和需要的 read 长度。

平台机型读长通量适用场景
IlluminaNovaSeq 6000, NextSeq 2000PE150 / PE100高标准差异表达、可变剪接
MGIDNBSEQ‑T7PE100 / PE150极高大规模队列研究
PacBio / ONTSequel IIe, PromethION1‑50 kb低全长转录本 / 异构体鉴定

我曾经在一个项目中,甲方指定要 PacBio 测全长,结果 downsampling 之后,差异表达的灵敏度反而不如 Illumina 的模拟数据。为什么?因为长读长错误率高,低表达基因的 counts 不稳定。所以你要根据核心问题选平台,不是越新越好。

⚠️ 注意
不要混淆「测序深度」和「read 长度」。差异表达分析主要关心深度的均一性,而剪接分析更依赖读长能否跨越外显子边界。做实验设计时,这两者要一起考虑。

1.5 知识框架图

下面这张图把 RNA‑seq 从实验到分析的核心流程串起来了。你可以把它当作整本笔记的 roadmap。

RNA‑seq 差异表达分析流程框架 实验设计与建库 测序 (Illumina/MGI等) FASTQ 原始数据 QC (FastQC/Trimmomatic) 比对 (STAR / HISAT2) 表达定量 (featureCounts) 标准化 (TMM / RPKM) 差异分析 (DESeq2 / edgeR) 结果解读 (火山图 / GSEA) 💡 说明 实际项目中,你可能跳过某些步骤(如 raw counts 直接输入 DESeq2,它会内部做标准化)。 但理解每个步骤的意义,才能在出问题时快速定位。—— 来自我踩过的坑

1.6 准备好了吗?

这一章我们把 RNA‑seq 的来龙去脉大致捋了一遍。从技术原理到平台选择,再到数据文件类型,你心里应该有个谱了。接下来就要动手处理真实的 FASTQ 数据了。记得先装好 conda 环境和必要的工具——这个准备工作我吃过亏,装包装到崩溃。

▶ 我的常用装机命令(放这备忘)
conda create -n rnaseq python=3.9
conda activate rnaseq
conda install -c bioconda fastqc trimmomatic star samtools subread

嗯,STAR 比对需要很大的内存(我一般给 32GB),你用服务器的时候先检查一下资源。

记住:RNA‑seq 分析不是一锤子买卖,每个环节都会反哺前面的实验设计。你多跑几个项目,就会发现那些常量(比如比对率低于 70%、重复样本间相关性低于 0.9)才是你最重要 QC 指标。