这两天后台好多童鞋在问同一个问题,说是手里的实验结果跟人家发的文章对不上,怀疑自己跑数据的脚本写错了。其实真不是脚本的问题,主要是你压根没搞清楚你手里拿的是啥玩意儿,就把数据往里填。很多刚入门搞转录组分析的朋友,看到文献里满天飞的基因表达量,心里就虚,总觉得少了一环似的。今天咱就抛开那些高大上的算法,用大白话把geo表达值tcga表达值这两件事儿捋清楚,保证你看完能少掉好几根头发。
首先得明确一个事儿,GEO和TCGA虽然是两个不同的数据库,但很多时候咱们拿来干的事差不多:都是看基因在不同状态下表达高还是低。不过,这俩数据的“脾气”差远了。GEO里的数据,你可以把它想象成各地派出所抓到的案底,来源五花八门。有的是医院标本,有的是细胞系,还有的是小鼠模型。做GEO数据分析和处理的时候,最头疼的不是算法,而是批次效应。你想想,A实验室用的高通量平台是Illumina,B实验室可能用的是Affymetrix,C实验室甚至还在用老掉牙的芯片。这数据放一起,就像把普通话、粤语和四川话混在一起开会,不经过严格标准化处理,那噪音简直能把你耳朵震聋。我见过一个做胃癌分析的学生,没做归一化直接看热图,结果发现健康对照组的基因表达量全 clustered 在一起,细一看,全是同一批试剂做出来的数据,这就叫“技术噪音”大于“生物学差异”。
而TCGA呢,它更像是国家卫健委搞的一次大规模流行病学调查。虽然它也是个公共数据库,但它的样本采集标准相对统一,全是肿瘤患者配对的癌旁组织,临床信息也全乎。不过,TCGA的数据也不完美,它有一个巨大的坑:临床随访信息虽然有,但很多时候你拿到的表达矩阵是已经经过严格质控后的产物,有些极端样本被剔除了。这就导致如果你在TCGA里找那种极端恶性的亚型,可能会觉得数据太平稳,不够“刺激”。
咱们举个例子。有个做肺癌的研究者,想找个标志物。他先搜了GEO,找到几十个小样本的研究,发现某个基因在高危组里表达很高。他挺高兴,转头去TCGA里验证。结果呢?在TCGA的大样本里,那个基因根本不显著!为啥?因为GEO里那几十个人的样本量太小,而且可能混进了不少早期或者晚期混杂的病例,统计学效力不足,也就是俗称的“假阳性”。而在TCGA这种几千人级别的大数据里,噪声被稀释了,真实信号反而不明显。这就是典型的小样本偏倚。
还有个更逗的案例。一位博士师兄想复现一篇Nature子刊的文章,他下了GEO里提供的基础矩阵数据,发现跟文章里的P值差了好几个数量级。折腾了一周,才发现人家文章用的是Raw Data重新做的预处理,把他下错的那个预处理过的count表给用了。这事儿告诉我们,别偷懒,原始数据才是亲生的,加工过的数据那是别人家的孩子,虽然亲,但你不了解他妈(处理流程)脾气,容易出问题。
所以说,别总盯着那个P值看小于0.05就high上天。在做geo表达值tcga表达值相关分析时,一定要结合临床信息。比如TCGA里,你可以用OS(总生存期)和DFS(无病生存期)来做KM生存曲线,这是GEO里很多小样本研究缺少的利器。但是,GEO的优势在于你可以找到特定病理类型的数据,比如某些罕见亚型,TCGA里可能样本量不够。这时候,你就得去GEO里淘金,虽然累点,但能找到TCGA里没有的线索。
咱们做生物信息分析的,心里得有数。数据不是冷冰冰的数字,背后是人,是组织,是临床决策。别把数据当祖宗供着,要学会驾驭它。如果你现在还搞不清怎么去除批次效应,或者不知道怎么整合两个数据库的数据,别硬撑。去补补统计学基础,或者找个靠谱的人问问,别在那儿瞎猜。
最后给个实在建议:如果你手头数据量小,别急着发文章,先拿TCGA这种大队列验证一下趋势。如果趋势对了,再深挖GEO里的小样本看机制。别本末倒置,先把骨架立住了,再填肉。遇到搞不定的,比如R语言报错报得怀疑人生,或者结果解释不通,别自己钻牛角尖,及时寻求专业协助。毕竟,头发只有一头,别为几行代码不值得。如果有拿不准的数据分析思路,或者卡在哪一步了,随时来聊,咱一起盘盘。