那么公司给的这些Transcript ID是属于那些基因呢?需要我们找到这些Transcript ID对应的gene ID。由于公司给的是EMBL数据库命名方式,所以可以去http://asia.ensembl.org/index.html网站输入这些Transcript ID找到对应的gene ID。
----但是,如果Transcript ID数量太多,那么这个过程会浪费很多时间,由此出现了各种Biological ID批量转换工具,有在线软件DAVID(https://david.ncifcrf.gov/)下的Gene ID conversion工具,还有R语言的clusterProfiler包和biomaRt包等等。
1.在线工具
----对于DAVID,粘贴这些Transcript ID后,在第二步选择ENSEMBL_TRANSCRIPT_ID。点击Submit List后,我的160个Transcript ID返回138个Gene Name,20个Transcript ID属于Unknown,两个Transcript ID对应到了同一个Gene Name。
2.R语言
----对于R语言,有两个包支持ID转换。首先需要下载R:https://mirror.lzu.edu.cn/CRAN/,然后输入以下代码安装相应的R包。
2.1 clusterProfiler
----clusterProfiler包需要安装注释文件包org.Mm.eg.db(鼠)或者org.Hs.eg.db(人):
source("http://bioconductor.org/biocLite.R")
biocLite('org.Mm.eg.db')
biocLite('clusterProfiler')
library('org.Mm.eg.db')
library('clusterProfiler')
R 版本为3.5以上的需要以下命令
BiocManager::install('org.Mm.eg.db')
BiocManager::install('clusterProfiler')
library('org.Mm.eg.db')
library('clusterProfiler')
数据导入:
data<-read.csv("data.csv",header=T,sep=",")
ENTREZID<- bitr(data[,1], fromType = "ENSEMBLTRANS", toType=c("SYMBOL","ENSEMBL","ENTREZID"),OrgDb = org.Mm.eg.db)
data.csv为你的包含输入ID的数据集,如果后缀是xls,则点击文件另存为,选择:CSV(逗号分隔)(*.csv).
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这个本地包更新不及时。
2.1 biomaRt
BiocManager::install("biomaRt")
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";listAttributes(mart)可以查看输出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=FALSE)#保存
biomaRt的使用,参考另一篇:https://www.jianshu.com/p/8e044ab1707d