那么公司給的這些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的使用,參考另一篇:http://www.lxweimin.com/p/8e044ab1707d