加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

TranscriptID(ENST/ENSMUST)转换为geneID(ENSG/ENSMUSG)和Genename

(2019-02-23 11:44:25)



----前不久拿到公司给的转录组测序结果,Gene ID是以ENMUST开头,查了一下,ENST为EMBL 核酸数据库中人类的转录本ID,ENMUST为鼠的转录本ID。一般我们知道,同一个基因由于选择性剪接,可以存在多个转录本,所以一个gene ID可能对应几个不同的 Transcript ID。那么公司给的这些Transcript ID是属于那些基因呢?需要我们找到这些Transcript ID对应的gene ID。由于公司给的是EMBL数据库命名方式,所以可以去https://www.ebi.ac.uk/ebisearch/overview.ebi/about网站输入这些Transcript ID找到对应的gene ID。

----但是,如果Transcript ID数量太多,那么这个过程会浪费很多时间,由此出现了各种Biological ID批量转换工具,有在线软件DAVID(https://david.ncifcrf.gov/)下的Gene ID conversion工具,还有R语言的clusterProfiler包和biomaRt包等等。

----对于DAVID,粘贴这些Transcript ID后,在第二步选择ENSEMBL_TRANSCRIPT_ID。点击Submit List后,我的160个Transcript ID返回138个Gene Name,20个Transcript ID属于Unknown,两个Transcript ID对应到了同一个Gene Name。

----clusterProfiler包需要安装注释文件包org.Mm.eg.db(鼠)或者org.Hs.eg.db(人):

source("http://bioconductor.org/biocLite.R")
biocLite('org.Mm.eg.db')
library('clusterProfiler')
library('org.Mm.eg.db')
data<-read.csv("data.csv",header=T,sep=",")#data.csv自定义包含输入ID的数据集
ENTREZID<- bitr(data[,1], fromType = "ENSEMBLTRANS", toType=c("SYMBOL","ENSEMBL","ENTREZID"),OrgDb = org.Mm.eg.db)

----fromType为输入ID的类别,这里选择“ENSEMBLTRANS”,即EMBL数据库转录本命名系统;toType为输出ID的类别,这里选择"SYMBOL"(如Hoxc13),"ENSEMBL"(如ENSMUST00000001700),"ENTREZID"(如15422)。fromType和toType都可以选择其他Type,如 ACCNUM, ALIAS, ENSEMBL, ENSEMBLPROT, ENSEMBLTRANS, ENTREZID, ENZYME, EVIDENCE, EVIDENCEALL, GENENAME, GO, GOALL, IPI, MGI, ONTOLOGY, ONTOLOGYALL, PATH, PFAM, PMID, PROSITE, REFSEQ, SYMBOL, UNIGENE, UNIPROT。其中REFSEQ对应为NCBI的GeneBank数据库转录本(和蛋白?)命名系统,NM_或NP_开头的ID。
----我的160个Transcript ID只有56.88%找到对应的SYMBOL和ENSEMBL。这可能是org.Mm.eg.db这个本地包更新不及时。
对于biomaRt,

source("http://bioconductor.org/biocLite.R")
biocLite('biomaRt')
install.packages('rlang')#按理说biomaRt会把所以的依赖包都装上,但是library的时候,提示我缺这个包
library(biomaRt)
mart <- useMart("ensembl","mmusculus_gene_ensembl")##人类选择hsapiens_gene_ensembl
gene<-read.csv("data.csv",header=T,sep=",")[,1]#自定义包含输入ID的数据集;[,1],由于我的数据集第一列为ID,所以取第一列
gene_name<-getBM(attributes=c("ensembl_transcript_id","external_gene_name","ensembl_gene_id"),filters = "ensembl_transcript_id",values = gene, mart = mart)

----filters指定输入ID的类型,attributes为输出ID的类型,listFilters(mart)#查看可以输入ID的类型,其中也包括NCBI的GeneBank数据库转录本“RefSeq mRNA ID"。
----我的160个Transcript ID找到了全部external_gene_name(等同于clusterProfiler包的SYMBOL)。由于它是在线转换,所以需要联网。
----获得的gene_name数据集和原有的data数据集合并,可以使用merge函数

gene_data<-merge(data,gene_name,by="ensembl_transcript_id")#ensembl_transcript_id这一列的列名均为ensembl_transcript_id
write.csv( gene_data,"gene_data_name.csv",row.names=F)#保存

小礼物走一走,来简书关注我

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有