在實(shí)際應(yīng)用中,我們經(jīng)常需要在gene name和gene ID之間進(jìn)行轉(zhuǎn)換。當(dāng)需要處理的基因數(shù)量很少時(shí),我們可以直接從NCBI(https://www.ncbi.nlm.nih.gov)上搜索,但當(dāng)要處理的基因很多時(shí),這顯然不是一個(gè)明智的選擇。最近我發(fā)現(xiàn)一個(gè)叫clusterProfiler的package可以很好的處理這個(gè)問題。
首先我們先安裝這個(gè)包,安裝這個(gè)包的時(shí)候需要用Biomanager。
BiocManager::install('clusterProfiler')
我們嘗試從gene name轉(zhuǎn)為gene ID
首先讀入gene name文件
library(clusterProfiler)
Tibetan_selected = read.table('genename.txt',header = FALSE,sep="\n")
genename = vector(mode="character",length=0)
for(i in 1:dim(Tibetan_selected)[1]){
genename[i] = as.character(Tibetan_selected[i,1])
}

進(jìn)行轉(zhuǎn)換,如果是人的基因的話,數(shù)據(jù)庫(kù)選擇org.Hs.eg.db。對(duì)于其他物種,可以參考http://bioconductor.org/packages/release/BiocViews.html#___OrgDb。比如Mouse對(duì)應(yīng)的就是"org.Mm.eg.db", 接下來我們安裝mouse的package即可。
BiocManager::install('org.Mm.eg.db')
如果是從gene name轉(zhuǎn)為gene ID的話,fromType和toType分別設(shè)定為SYMBOL和ENSEMBL。反之亦然。
#人的數(shù)據(jù)庫(kù) org.Hs.eg.db
name_ID = bitr(genename, fromType="SYMBOL", toType="ENSEMBL", OrgDb="org.Hs.eg.db")

ps:匹配的成功率并不是100%,對(duì)于沒有匹配上的基因可能就需要手動(dòng)搜索了。
保存數(shù)據(jù)
#save the data
write.csv(name_ID,'root/name_ID.csv')
ps: 對(duì)于從gene name向gene ID部分gene匹配失敗的問題,可能是因?yàn)間ene name并不是HGNC的Official Symbol。這時(shí)可以手動(dòng)去NCBI上查找。比如“ATPIF1”在HGNC中的Official Symbol應(yīng)該是ATP5IF1。