ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Geo数据库基因注释全流程拆解:从批量下载ID到物种映射的避坑指南

Geo数据库基因注释全流程拆解:从批量下载ID到物种映射的避坑指南

做生信分析,卡壳最久的往往不是模型,而是那个看起来人畜无害的原始数据文件。

GEO里下来的表达矩阵,那些长得像乱码的Probe ID根本没法直接跑后续差异分析。

这篇文章把从GEO拿数据到把ID变成人类可读基因名的路,给你走一遍。

很多新手第一步就错了,直接把Excel里的ID拿去NCBI搜。

结果就是搜出几百个无关基因,甚至是一片空白,心态瞬间崩了。

核心问题在于,你手里拿的“钥匙”和数据库里的“锁”不匹配,芯片不同,ID编码规则就不同。

想搞清楚这批数据,第一步得看GEO记录页面上的平台(Platform)部分。

如果标题写着GSE开头,再看Sample类型,是RNA-seq还是Affymetrix微阵列。

这俩的处理逻辑完全不同,搞混了后面全是白费功夫,别急着跑代码,先搞清楚数据源。

假设你拿到的是最常见的Affymetrix芯片数据,比如HG-U133_Plus_2。

这种芯片的Probe ID通常是“1557357_at”这种格式,纯数字加后缀,毫无生物意义。

这时候你需要对应的Annotation软件包,R语言里Bioconductor的annoiat包是标配。

注意是annoiat,不是annota,拼写错了代码会报错,新手常在这里卡半天。

安装完软件包,用getAnnotation函数提取ID映射表。

这时候你可能会发现,一个Probe对应两个Gene Symbol,或者对应Entrez ID列表里有逗号分隔的多个ID。

这时候需要做决策,通常取Entrez ID作为中间桥梁,因为它在全基因组层面更稳定,跨物种通用性也比Symbol强。

如果做RNA-seq测序数据,情况稍微乐观点,因为ID往往就是Gene Name或者Ensembl ID。

但GEO里有些早期数据,ID列头可能标的是“gene”,实际内容是Ensembl的ENST...编号。

这时候要用biomaart包去映射成Homo sapiens的Symbol或Entrez ID。

生物信息学里,工具链永远比单一脚本更有价值,掌握biomaart能解决80%的ID映射问题。

这里有个坑,必须单独拎出来说,那就是版本问题。

NCBI的Gene ID数据库每年都在更新,2018年的Entrez ID可能在今年已经变成了别名。

如果你拿旧的映射表去对应新的注释,会出现大量NA或者错误的基因名。

建议每次分析前,都用最新的RefSeq版本重新跑一遍ID转换,别偷懒复用去年的脚本。

还有一点容易被忽略,就是Species的一致性。

很多数据集混入了细胞系、肿瘤组织、甚至异种移植的数据,ID可能指向不同物种的同名基因。

必须在GEO页面的“Sample Characteristics”里反复确认Species是不是你要的研究物种。

如果拿大鼠的数据ID去对小鼠的基因注释,结果出来看着挺美,发文章时被审稿人一问,直接露馅。

对于批量下载的数据,建议写一个循环脚本,逐条GSE记录进行检查。

不要人工一个个复制粘贴ID,手误概率太高,而且效率极低。

把清洗好的表达矩阵和ID映射表分开保存,保留中间的中间文件,方便日后回溯。

最终交付物应该是一个干净的TSV文件,第一列是Gene Symbol或Entrez ID,后续列才是表达量。

如果你做的是非人源模式生物,比如小鼠、斑马鱼,映射难度会增加,需要依赖Species Specific的包。

这时候不要硬套人类的注释规则,去NCBI的Gene数据库查该物种的官方注释页面。

最后总结一下,Geo数据库基因注释不是简单的翻译,而是一个数据治理的过程。

从识别平台类型,到选择正确的Annotation包,再到处理ID歧义和版本迭代,每一步都有坑。

做好这三步,你的差异分析结果才能站得住脚,别在起跑线上就摔了跟头。

返回列表