做生信这行七年了,头发掉了一把,坑也踩了一堆。今天不整那些虚头巴脑的理论,就聊聊怎么把GEO数据和TCGA数据联合起来用。这俩数据源,一个是公共数据库里的老古董,一个是癌症基因组的大宝库。很多新手上来就想着直接合并,结果跑出来的图丑得没法看,P值还显著不了。
我有个学员,去年找我哭诉,说按照教程把GEO和TCGA拼在一起,结果差异基因寥寥无几。我一看他的代码,好家伙,连批次效应都没处理。这就好比把北京的气候数据和广州的气候数据直接平均,得出的结论肯定是“全年恒温”,但这显然不符合现实。
第一步,得搞清楚你手里GEO数据的本质。GEO里的数据,很多是早期的微阵列芯片数据,或者是不同测序平台出来的RNA-seq。而TCGA,清一色是高通量测序。这两者的技术平台都不一样,直接合并就是自找麻烦。你得先确认GEO里的样本量够不够大,如果只有几个样本,那还不如单用TCGA。
第二步,数据清洗。这一步最枯燥,但也最关键。GEO的数据经常缺失值满满,有的基因在部分样本里测不出来。这时候别急着删,得看缺失比例。如果某个基因在超过30%的样本里缺失,那就果断扔掉。TCGA的数据相对干净,但也要做标准化。这里有个细节,很多人忽略了GEO数据里的批次效应。比如GSE12345这个数据集,里面包含了三个不同实验室的数据,如果不做ComBat校正,那批次效应会掩盖掉真实的生物学差异。
第三步,匹配基因名。这是最容易出错的地方。GEO里可能用的是旧版的基因符号,而TCGA用的是最新的。你得去NCBI或者Ensembl查一下映射关系。我见过有人直接把Symbol对上,结果发现好几个不同的基因都映射到了同一个Symbol上,这时候取平均值还是取最大值?这是个技术活,通常建议取表达量最高的那个,或者根据功能注释筛选。
第四步,联合分析。这时候你可以尝试把GEO作为训练集,TCGA作为验证集。或者反过来。比如你想找一个预后标志物,先在GEO里筛选出一堆候选基因,然后在TCGA的大样本里验证这些基因是否真的与生存期相关。这种交叉验证的方法,比单用任何一个数据集都靠谱得多。
记得有一次,我帮一个博士修改论文。他做胶质瘤,GEO里找了20个样本,TCGA里有500多个。他直接在GEO里跑差异分析,挑出10个基因,然后在TCGA里看这10个基因的表达。结果发现,其中8个在TCGA里根本没什么变化。后来我们调整了策略,先用TCGA做全基因组筛选,再回到GEO里看这些基因在不同亚型中的表达模式。这样出来的结论,审稿人才买账。
这里还要提醒一点,GEO数据的质量参差不齐。有些上传的数据,样本信息都不完整。比如不知道样本是肿瘤还是正常组织,或者不知道分期。这种数据,最好别用。如果非要用,就得去GEO官网仔细翻Metadata,有时候还得发邮件问作者。
最后,可视化也很重要。不要只放热图,太俗了。可以尝试画联合森林图,或者用生存曲线对比不同数据集的结果。如果两个数据集的趋势一致,那你的结论就站得住脚了。
总之,GEO数据和TCGA数据联合分析,不是简单的1+1。它需要你懂生物学背景,懂统计方法,还得有耐心去处理那些细碎的脏数据。别怕麻烦,每一步都走扎实了,最后出来的结果才不会被打脸。
本文关键词:GEO数据和TCGA数据联合