做生信分析,最让人头秃的不是跑代码,而是看结果。
你辛辛苦苦跑完差异分析,导出一堆数字,心里正美呢。
结果一看,这单位是啥?FPKM?TPM?还是Raw Counts?
脑子瞬间一片空白。
以前我也这样,觉得差不多就行,反正都是表达量高低。
直到上次帮朋友看数据,他拿着FPKM去算倍数变化,我差点没忍住骂人。
因为FPKM有个致命缺陷,它不能直接用来做样本间的比较。
你想想,如果一个样本里某个高表达基因特别高,把总读数撑大了,其他基因的FPKM就会被迫变小。
这就像全班平均分,你班有个天才考了100分,其他人分数再高,平均分也被拉高了,但这不代表其他人变笨了。
所以,搞清楚geo 基因表达的单位,真的是救命的事。
今天我就把这几年踩过的坑,揉碎了讲给你听。
不整那些虚头巴脑的定义,直接说人话。
第一步,先搞清楚你的数据源头。
大多数时候,我们拿到的原始数据是FastQ文件。
经过比对、定量之后,你会得到Raw Counts。
这是最原始的数字,代表每个基因被测序片段覆盖了多少次。
这个数据是整数,而且带有离散分布的特性。
如果你要做差异表达分析,比如用DESeq2或者edgeR,必须用这个。
千万别用FPKM或者TPM喂给这些软件,不然结果全是错的。
第二步,理解为什么要有FPKM和TPM。
因为不同样本的测序深度不一样。
有的样本测了1000万条,有的测了5000万条。
直接比Raw Counts没意义,就像拿小碗和大碗比米饭多少,不公平。
FPKM就是Fraction Per Kilobase Million。
它考虑了基因长度和测序深度。
简单说,就是每千碱基长度,每百万条读数里有多少。
但前面说了,它有个问题,就是总和不是固定的。
这就导致样本间比较有偏差。
于是TPM出来了。
TPM是Transcripts Per Million。
它先把基因长度归一化,再算比例,最后总和固定为一百万。
这样样本间的总和一致了,比较起来更靠谱。
所以,如果你只是想看某个基因在单个样本里表达高不高,或者画热图,用TPM更好。
第三步,别迷信“标准答案”。
很多人问,到底哪个单位最好?
没有最好,只有最合适。
做差异分析,用Raw Counts。
做样本间表达水平比较,用TPM。
做聚类分析,TPM通常比FPKM更稳定。
记住,FPKM已经有点过时了,除非你是在看十年前的老文献,否则尽量别用。
我有个学生,之前用FPKM做PCA分析,结果样本分组完全乱了。
后来换成TPM,聚类清晰多了。
这就是细节决定成败。
第四步,检查你的工具输出。
现在的软件,比如Salmon、Kallisto,默认输出的就是TPM或者Estimated Counts。
如果是StringTie,默认可能是FPKM。
一定要看清楚!
别默认接受,要去查文档。
这一步能省掉你一半的报错时间。
最后,我想说,生信分析不是黑盒。
你不能只当个调包侠。
你得知道每个数字背后的含义。
否则,你就是在用错误的尺子量布,量出来的结果,只能拿去垫桌脚。
如果你还在纠结手里的数据该用哪个单位,或者不知道自己的分析流程有没有问题。
别自己瞎琢磨了。
你可以去咨询专业的生信顾问。
哪怕只是花十分钟问问,也能帮你避开大坑。
毕竟,数据错了,后面所有的努力都白费。
真不如早点问清楚,省下的时间喝杯咖啡不香吗?
希望这篇能帮你理清思路。
毕竟,搞懂geo 基因表达的单位,才是入门的第一步。
别等到发文章被审稿人怼了,才后悔没早点搞明白。
加油吧,打工人。