ARTICLE DETAIL

资讯详情

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

geo的rna编号怎么变成基因编号

geo的rna编号怎么变成基因编号

昨天搞那个癌症的数据,真是搞到头秃。手里一堆Geo的芯片数据,全是那一长串Probes ID,什么1557291_a_at,看着就眼晕。老板非要见基因名,说只有基因名才能跟通路对接。我就在那死磕,怎么把这些冷冰冰的编号变成人类能读懂的Gene Symbol。这里就把我踩过的坑和最后成事的办法,老老实实写下来,给后来人避避雷。真的,别去死记硬背命令,脑子会炸。

第一,你得搞清楚你手里的Probe ID是哪里的。这点太重要了。我以前就吃过亏,拿着Affymetrix的探针去问Illumina的平台,结果当然是报错,或者全为空。看平台代码,如果是GPL系列的,去NCBI或者EBI搜一下。比如搜索GPL570,那就是人类的Affymetrix U133 Plus 2.0。搞清楚这个,后面的路就顺了。要是搞错了平台,后面哪怕用对工具,那也是白搭。这就像去国外买东西,得知道人家收银台认啥货币。

第二步,最简单的路子是用Biomart。很多新人喜欢去那些花里胡哨的网站,什么DaVinci,其实都不如官方来的稳。直接去Ensembl的BioMart。打开浏览器,心里默念三次:要准,要快,要稳。进去后第一步选Dataset,别乱选,选Homo sapiens genes,除非你在做老鼠,那记得换Mouse。

接着是Filters,这里有个坑。在Left Output里找Gene external ID,把HGNC Symbol选上。然后在Filters里,你要找的是Affymetrix...这一堆。如果你用的是其他平台,就得找对应的Affymetrix或者Illumina的ID。这里要仔细,千万别选错了,选成UniGene了那就完蛋。把你们那一长串ID,复制,粘贴进去。注意!有些平台ID太多了,浏览器可能会卡死。别慌,分批次,每次别超过几千个,稳得住。

第三步,如果Biomart搞不定,或者你想更本地化操作,就用R语言。这个稍微有点门槛,但一劳永逸。安装那个名为annots的包,或者直接用oldds那个。代码我记不太清全貌了,大概是这样:library(annots),然后做个映射表。把Probe ID当索引,Gene Symbol当值。这里有个细节,一个探针可能对应多个基因,这时候怎么处理?取最大表达量的,或者随便取一个?我一般取第一个,或者手动合并。这个取决于你的下游分析。如果下游是GO富集,重复基因得去重。这一步很多人忽略,导致后面结果一堆冗余。

再说说那个容易卡壳的地方。有时候ID转换后,会有大量的NAs。就是空值。别急,别觉得自己错了。先检查你的ID是不是写错了。多一个空格,少一个大写,全都对不上。我用Python写的清洗脚本,strip一下空格,统一转大写。然后再转。这步很繁琐,但必须做。我有一次找了半天,发现是一个探针ID里混了个标点符号,真是服了。

还有一种情况,就是老旧的平台。有些Gene Symbol改名了。以前叫A,现在叫B了。如果你直接转,可能会转到旧名字,但新数据库里已经不认了。这时候需要用最新的映射表。Ensembl的更新很勤,半年一版。你用的要是两年的数据,可能会漏掉最新命名的基因。这个坑,我自己踩过,查了三天文献才发现是注释版本问题。哎,那时候真想拍桌子。

最后,转换完别直接拿去画图。你得手动抽查几个。随便挑十个基因,去NCBI搜一下,看看它对应的Probe ID是不是你手里的那几个。如果都对得上,那就放心了。这种小检查,能省大麻烦。别偷懒,生物信息学就是个细心活。

总结下来,geo的rna编号怎么变成基因编号,其实就两招。要么用在线的BioMart,简单粗暴,适合小白。要么用R或者Python脚本,灵活可控,适合批量处理。不管选哪个,核心就是平台要匹配,格式要清洗。别怕麻烦,数据干净了,后面的分析才能跑通。这行就是这么现实,垃圾进,垃圾出。你指望一键搞定奇迹,那是不可能的。多试几次,总会找到适合你那个数据的方法。哪怕今天没搞定,明天继续,总会有豁然开朗的时候。加油吧,同行。

返回列表