生物信息中的FPKM counts TPM是什么意思 名词解释
FPKM 是 “Fragments Per Kilobase of transcript per Million mapped reads” 的缩写,一句话翻译:
把原始读段数(counts)先按基因长度、再按测序深度做两次“归一化”,使得
不同基因、不同样本之间可以横向比较表达量高低。
为什么要归一化?
- 长基因更容易被测到,counts 天然偏高;
- 测序深度高的样本 counts 整体偏大;
- 直接比 counts 会得出“长基因、深测序 = 高表达”的假结论。
FPKM 通过两步校正消除这两类偏差:
- Per Kilobase
把 counts 除以基因长度(kb),抵消“长基因优势”。 - Per Million
把结果再除以“百万比对读段数”,抵消“测序深度差异”。
公式(直观版)
FPKM = counts ÷ (基因长度 kb) ÷ (总比对 reads / 1 000 000)
与 TPM 的区别(面试常问)
- FPKM 先“长度”后“百万”
- TPM 先“百万”后“长度”
→ TPM 保证每个样本内部表达量总和相同,跨样本比较更直观;
FPKM 仍受样本间总 reads 差异影响,但历史沿用多(Cufflinks 时代)。
回到你的代码
dat_fpkm <- dat_fpkm[rownames(dat_counts),]
这一步就是把 归一化后的表达矩阵(FPKM)与 过滤完的 counts 矩阵 按基因行名对齐,保证后续差异分析、富集、可视化都用同一批基因。