刚毕业那会儿,我做第一次转录组分析,整个人都要崩溃了。那时候啥也不懂,觉得只要拿到GEO数据,跑个DESeq2或者edgeR就完事。结果导师让我看下表达量分布,我当时就用FPKM值直接画热图,还沾沾自喜觉得颜色挺鲜艳。直到有个师兄瞥了一眼,脸色都不好了,说我这是在用错误的尺度做差异分析,简直是在拿垃圾数据糊弄自己。那一刻我才明白,原来所谓的“GEO数据FPKM”处理,里面有这么多道道。
说实话,我现在对FPKM这玩意儿是又爱又恨。爱是因为它直观啊,方便我们肉眼观察基因表达的高低;恨是因为它就是个坑,专门坑小白。你要知道,FPKM是Fragments Per Kilobase of transcript, per Million mapped reads,这名字看着就长。它虽然消除了基因长度和测序深度的影响,但它有个致命弱点,就是没法在样本间直接比较,除非你把样本分得特开,或者你只是做个简单的聚类展示。
我记得有个真实案例,当时为了赶进度,我从GEO里下了一堆数据集,直接用公共注释得到的FPKM值去筛选差异基因。后来复核的时候发现,很多基因的变异系数高得离谱,完全不符合生物学常识。折腾了半个月,最后发现是样本间文库大小差异太大,而FPKM没有像TPM那样做一个严格的归一化调整。那时候真想撕了硬盘。
所以,如果你想玩转GEO数据FPKM,听我一句劝,别光盯着这个指标。咱们得一步步来,把这些坑踩实了。
第一步,先搞清楚数据来源。很多公开数据提供的FPKM是经过某种标准化处理的,但不同的处理者用的参数不一样。有的可能用了TMM校正,有的就是原始的FPKM。你去GEO官网下载的时候,务必去看那个Supplementary文件里的README,看看作者当时怎么算的。如果没写,那你最好自己重算,或者直接用Count值。
第二步,如果你想保留FPKM这种可读性,又想消除批次效应,建议转向TPM。TPM和FPKM的区别就在于归一化的顺序。FPKM是先除以总数再除以基因长度,而TPM是先除以基因长度,最后让所有值加起来等于一百万。这一来一回,TPM在样本间可比性上强得多。你可以尝试把拿到的FPKM转换一下,虽然麻烦点,但为了数据靠谱,值得。
第三步,也是最重要的,做差异分析别直接用FPKM。我知道很多教程里写可以用,但那是有前提条件的。如果你的样本分组明显,且技术重复少,用基于原始Count数据的负二项分布模型(比如DESeq2)才是正解。FPKM属于连续变量,且不符合正态分布,强行放进去跑统计检验,P值根本不准。
我也不是说不让你用FPKM,画图的时候用它挺方便,比如画个箱线图看看整体趋势。但在下定论哪个基因上调下调时,千万别信FPKM算出来的那些P值。
现在回想起来,那时候要是有人能跟我说清楚这些,我也不至于掉那么多头发。生物信息这东西,看似高大上,其实全是细节。特别是面对GEO数据FPKM这种老掉牙但又无处不在的数据,你得有点警惕性。
最后给大伙儿几点实在的建议:别迷信现成的分析流程,多看看原始文档;尽量用原始Count数据重分析;如果必须用FPKM做探索性分析,记得检查样本间的相关性。要是遇到搞不定的细节,比如不知道怎么批量转换FPKM到TPM,或者想确认某个数据集的注释是否准确,那真不如找个靠谱的人问一句,有时候一个关键参数的调整,能省你几周的冤枉路。毕竟,谁的钱都不是大风刮来的,时间更宝贵啊。