第2讲:数据预处理与质控
从FASTQ到表达矩阵
本讲概述
学习目标: - 理解FASTQ格式和质量分数 - 掌握FastQC质控报告解读 - 理解比对原理和常用工具 - 掌握标准化方法的选择
重点难点: - 🔑 重点:质控指标解读、标准化原理 - ⚠️ 难点:TPM vs FPKM vs Size Factors 的区别与选择
1. FASTQ文件格式
1.1 格式结构
每个序列由4行组成:
@SEQ_ID ← 序列标识(以@开头)
GATCGGAAGAGCACACGTCTGAACTCCAGTCA ← 碱基序列
+ ← 分隔行
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ← 质量分数(ASCII编码)
1.2 Phred质量分数
Q = -10 × log10(P) (P为错误概率)
| Q值 | 准确率 | 评价 |
|---|---|---|
| 30 | 99.9% | 优秀 |
| 20 | 99% | 可接受 |
| <20 | <99% | 差 |
要求:Q30 > 85%
2. 数据质控(FastQC)
2.1 关键模块
| 模块 | 说明 |
|---|---|
| Per base sequence quality | 每个碱基位置的质量分布 |
| Per sequence GC content | GC含量分布 |
| Sequence Duplication Levels | 重复序列水平 |
| Adapter Content | 接头含量 |
2.2 质控标准
| 指标 | 合格 | 不合格处理 |
|---|---|---|
| Q30 | > 85% | 检查测序质量 |
| GC含量 | 正态分布 | 检查污染 |
| 重复率 | < 50% | 检查PCR过度扩增 |
| 接头含量 | < 5% | 使用Trimmomatic去除 |
2.3 数据清洗(Trimmomatic)
trimmomatic PE \
input_R1.fastq.gz input_R2.fastq.gz \
output_R1_paired.fq.gz output_R1_unpaired.fq.gz \
output_R2_paired.fq.gz output_R2_unpaired.fq.gz \
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 \
LEADING:3 TRAILING:3 \
SLIDINGWINDOW:4:15 \
MINLEN:363. Reads比对
3.1 比对挑战
RNA-seq reads跨越外显子-内含子边界:
基因组: exon1 ---intron--- exon2
↓ ↓
Read: ├────ATCGATCG───────┤ ← 剪接reads
↑ splice junction
3.2 剪接感知比对工具
| 工具 | 特点 | 适用 |
|---|---|---|
| STAR | 速度快,内存需求高 | 大规模分析 |
| HISAT2 | 速度快,内存需求低 | 常规分析 |
3.3 STAR比对关键参数
STAR --genomeDir genome_index \
--readFilesIn read1.fq.gz read2.fq.gz \
--outFilterMultimapNmax 20 \ # 最大比对位点数
--outSAMtype BAM SortedByCoordinate3.4 比对质控指标
| 指标 | 可接受 | 良好 | 优秀 |
|---|---|---|---|
| 唯一比对率 | >70% | >85% | >90% |
| rRNA比例 | <10% | <5% | <2% |
4. 基因表达定量
4.1 定量原理
比对reads: ===
=============
========
↓
计数: gene_A = 3 reads
4.2 featureCounts
featureCounts -a annotation.gtf \
-o counts.txt \
-T 8 \
-p \ # 双端模式
-t exon -g gene_id \ # 按exon计数,gene_id汇总
sample1.bam sample2.bam5. 标准化方法 🔑⚠️
5.1 为什么需要标准化?
| 样本 | 总reads | 基因A counts |
|---|---|---|
| A | 10M | 100 |
| B | 20M | 200 |
问题:B的counts高是因为测序深度更深,非真实表达差异
5.2 标准化方法对比
| 方法 | 公式特点 | 适用场景 |
|---|---|---|
| CPM/RPM | reads/总reads×10⁶ | 简单可视化 |
| TPM | 长度校正,和为10⁶ | 样本内基因比较 |
| FPKM/RPKM | 长度+深度校正 | 基因间比较(不推荐) |
| Size Factor | 中位数比值法 | 差异分析(DESeq2) |
| TMM | 修剪均值M值 | 差异分析(edgeR) |
5.3 TPM计算原理
Step 1: RPK = counts / (gene_length / 1000)
Step 2: scaling_factor = sum(RPK) / 10⁶
Step 3: TPM = RPK / scaling_factor
重要方法选择指南
| 目的 | 方法 |
|---|---|
| 差异分析 | 原始counts + DESeq2/edgeR内置标准化 |
| 样本内基因比较 | TPM |
| 可视化 | log2-transformed CPM |
5.4 DESeq2 Size Factor
中位数比值法:
size factor_j = median_i (counts_ij / geometric_mean_i)
假设:大多数基因在不同样本间表达稳定
| 样本 | 总reads | Size Factor | 说明 |
|---|---|---|---|
| A | 10M | 1.0 | 基准 |
| B | 20M | 2.0 | 深度2倍,counts除以2 |
6. 完整流程总结
原始数据 (FASTQ)
↓
FastQC质控
↓
Trimmomatic清洗
↓
STAR比对 (BAM)
↓
featureCounts定量
↓
表达矩阵 (counts)
↓
标准化 (CPM/TPM/Size Factor)
↓
差异分析 (DESeq2)
7. 质控检查清单
| 阶段 | 检查项 | 标准 |
|---|---|---|
| 原始数据 | Q30 | > 85% |
| 原始数据 | 接头污染 | < 5% |
| 比对 | 唯一比对率 | > 70% |
| 比对 | rRNA比例 | < 10% |
| 定量 | 基因检出数 | > 10,000 |
思考题
- 为什么RNA-seq比对需要剪接感知工具?
- TPM和FPKM的主要区别是什么?
- 唯一比对率低可能是什么原因?
- 如何判断是否存在adapter污染?
参考文献
- Dobin A, et al. STAR: ultrafast universal RNA-seq aligner. Bioinformatics. 2013
- Liao Y, et al. featureCounts: an efficient general purpose program for assigning sequence reads to genomic features. Bioinformatics. 2014