gene的各种ID转换终结者

经常会有人问这样的问题I have list of 10,000 Entrez IDs and i want to convert the multiple Entrez IDs into the respective gene names. Could someone suggest me the way to do this?等等类似的基因转换,能做的基因转换的方法非常多,以前不懂编程的时候,都是用各种网站,而最常用的就是ensembl的biomart了,它支持的ID非常多,高达几百种,好多ID我到现在都不知道是什么意思。

现在学会编程了,我比较喜欢的是R的一些包,是bioconductor系列,一般来说,其中有biomart,org.Hs.eg.db,annotate,等等。关于biomart我就不再讲了,我前面的博客至少有七八篇都提到了它。本次我们讲讲简单的, 我就以把gene entrez ID转换为gene symbol 为例子把。

当然,首先要安装这些包,并且加载。

if("org.Hs.eg.db" %in% rownames(installed.packages()) == FALSE) {source("http://bioconductor.org/biocLite.R");biocLite("org.Hs.eg.db")}
suppressMessages(library(org.Hs.eg.db))  我比较喜欢这样加载包

library(annotate) #一般都是这样加载包

如果是用org.Hs.eg.db包,首先你只需要读取你的待转换ID文件,构造成一个向量,tmp,然后只需要symbols <- org.Hs.egSYMBOL[as.character(tmp)]就可以得到结果了,返回的symbols是一个对象,需要用toTable这个函数变成数据框。但是这样转换容易出一些问题,比如如果你的输入数据tmp,里面含有一些无法转换的gene entrez ID,就会报错。

而且它支持的ID转换很有限,具体看看它的说明书即可:https://www.bioconductor.org/packages/release/data/annotation/manuals/org.Hs.eg.db/man/org.Hs.eg.db.pdf

org.Hs.eg.db
org.Hs.eg_dbconn
org.Hs.egACCNUM
org.Hs.egALIAS2EG
org.Hs.egCHR
org.Hs.egCHRLENGTHS
org.Hs.egCHRLOC
org.Hs.egENSEMBL
org.Hs.egENSEMBLPROT
org.Hs.egENSEMBLTRANS
org.Hs.egENZYME
org.Hs.egGENENAME
org.Hs.egGO
org.Hs.egMAP
org.Hs.egMAPCOUNTS
org.Hs.egOMIM
org.Hs.egORGANISM
org.Hs.egPATH
org.Hs.egPMID
org.Hs.egREFSEQ
org.Hs.egSYMBOL
org.Hs.egUCSCKG
org.Hs.egUNIGENE
org.Hs.egUNIPROT

如果是用annotate包,首先你还是需要读取你的待转换ID文件,构造成一个向量,tmp,然后用getSYMBOL(as.character(tmp), data='org.Hs.eg')这样直接就返回的还是以向量,只是在原来向量的基础上面加上了names属性。说明书:http://www.bioconductor.org/packages/3.3/bioc/manuals/annotate/man/annotate.pdf

然后你可以把转换好的向量写出去,如下:

1 A1BG
2 A2M
3 A2MP1
9 NAT1
10 NAT2
12 SERPINA3
13 AADAC
14 AAMP
15 AANAT
16 AARS

PS:如果是芯片数据,需要把探针的ID转换成gene,那么一般还需要加载特定芯片的数据包才行:

platformDB <- paste(eset.mas5@annotation, ".db", sep="") #这里需要确定你用的是什么芯片
cat("the annotation is ",platformDB,"\n")
if(platformDB %in% rownames(installed.packages()) == FALSE) {source("http://bioconductor.org/biocLite.R");tmp=try(biocLite(platformDB))}
library(platformDB, character.only=TRUE)
probeset <- featureNames(eset.mas5)
rowMeans <- rowMeans(exprSet)

library(annotate) # lookUp函数是属于annotate这个包的
EGID <- as.numeric(lookUp(probeset, platformDB, "ENTREZID"))

(0)

相关推荐

  • 一个包的升级居然造成bioconductor如此大的破坏

    以前从来不报错的 org.Hs.eg.db 类似的bioconductor包,这两天居然各个交流群都有人在问它!如下所示的报错: Error: package or namespace load fa ...

  • 你只想做ID转换却不知道为什么要转换

    最近咱们<生信技能树>的VIP答疑群,有这样的提问:   我觉得很有代表性,很多人仅仅是学了个皮毛,知道是需要进行ID转换,也能够运行代码.但是却搞不懂,不理解自己为什么进行ID转换,以及 ...

  • 生信编程8.ID转换

    有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物.最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的. ...

  • Gene ID 转换工具

    写在前面 我们在研究基因的时候,尤其是在研究高通量数据分析,经常会碰到我们研究的这个数据的基因ID不是我们通常意义上的基因名.拿TCGA的数据举例,TCGA RNA-seq的数据比对的基因是ID是En ...

  • 基因ID转换工具比较

    写在前面 昨天我们介绍了三个ID转换的工具: DAVID.g:Convert 以及 biomart,但是这个工具内置的数据怎么样并不清楚,所以今天就来评价一下这几个工具吧. 数据准备 由于我们使用最多 ...

  • 酷我音乐网ID转换MP3网址(歌词)

    <KUWO音乐网ID转换MP3网址(歌词)>能将酷我音乐网的音乐ID转换为可供外链的MP3网址,如该歌曲配有动态歌词,就会转换为LRC歌词.如果转换成功立即播放.显示同步歌词,并可复制转换 ...

  • ID转换大全

    实际上掌握了编程的思维,任何一门语言都可以做id转换! 对于初学者来说,这个是非常实用的一个,很多人当初就是因为要做这个转换,才慢慢走入了编程的道路. 使用大部分软件的时候,第一步就是文件数据准备,基 ...

  • ID转换靠的是深厚的背景知识加上一点代码技巧

    有学员提问: 请教老师,在分析一个芯片数据时候,遇到这个GPL16686平台,直接看平台信息里面的表格如图,找不到基因名,所以不知道该怎么办,ID转换就卡死了,后续的差异分析,火山图,热图等等都无从下 ...

  • GPL17586、GPL19251和GPL16686平台芯片ID转换

    芯片分析中经常会遇到Affymetrix Human Transcriptome Array 2.0芯片,由于目前还没有现成的R包可以用,因此分析方法也不统一.见生信技能树Jimmy老师HTA2.0芯 ...

  • 你的ID转换错啦

    最近学员群又有人问到了 Agilent-012391 Whole Human Genome Oligo Microarray G4112A 这样的芯片数据,我让学生打包数据成为rdata发给我,我检查 ...