“山窮水盡疑無路昌妹,柳暗花明又一村”
某天捶枢,想收集一類藥物的作用靶點,上了Drugbank獲取了全部數(shù)據(jù)飞崖,加載到R中烂叔,解析出來后蒙圈了,它居然一個基因靶點對應(yīng)了多個名稱固歪。這就很為難了蒜鸡。
怎么從基因全稱獲取它的縮寫呢?
我知道Uniprot可以弄牢裳,但小白一個個輸入查詢逢防,那就很痛苦了!
能不能從基因的全稱來批量獲取其縮寫呢蒲讯?
org.Hs.eg.db包可以做忘朝!
代碼如下:
library(org.Hs.eg.db)#org.Hs.eg.db 是用于geneID轉(zhuǎn)換的包。物種為人類判帮。Bioconductor上還有提供其他物種的局嘁。
eg2Symbol=toTable(org.Hs.egSYMBOL)##將包中g(shù)ene_symbol轉(zhuǎn)換成數(shù)據(jù)框
eg2name=toTable(org.Hs.egGENENAME)##將包中GENENAME轉(zhuǎn)換成數(shù)據(jù)框
anno=merge(eg2Symbol,eg2name,by='gene_id')#根據(jù)gene_id合并兩個數(shù)據(jù)框
genes=read.table('symbol.txt',stringsAsFactors = F)[,1]##導(dǎo)入自己的gene數(shù)據(jù)
anno[match(genes,anno$gene_name),]##match函數(shù)匹配索引,獲得自己的數(shù)據(jù)在包中整出來的數(shù)據(jù)框中的行位置
write.csv(anno[match(genes,anno$symbol),],'symbol2name.csv')##寫出文件0
#首字母轉(zhuǎn)小寫
cap_low <- function (string) {
capped <- grep("^[A-Z]", string, invert = F)
substr(string[capped], 1, 1) <- tolower(substr(string[capped],
1, 1))
return(string)
}
代碼里面很巧妙地用了兩次Totable函數(shù),雖然還不太懂它的作用晦墙,但好不好用导狡,看效果,一運行就得到了基因和全稱對應(yīng)的數(shù)據(jù)框偎痛。
這樣的數(shù)據(jù)放到R里可是輕輕松松可以認識的!
OK旱捧,之后導(dǎo)入數(shù)據(jù)執(zhí)行代碼。
幾秒鐘,瞬間無痛解決基因從全稱到縮寫的轉(zhuǎn)換問題枚赡!
雖然Drugbank有點坑氓癌,有些基因全稱因為和包中提供的全稱不一致所有沒辦法匹配上,但總算是最大程度解決了我的困惑贫橙。
此外贪婉,讀了下生信菜鳥團的相關(guān)推文,發(fā)現(xiàn)這個包還有其他轉(zhuǎn)換的用法卢肃。
看一眼包中的所含的信息
keytypes(org.Hs.eg.db)#包里面有的數(shù)據(jù)注釋類別共有26個
# [1] "ACCNUM" "ALIAS" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS" "ENTREZID"
#[7] "ENZYME" "EVIDENCE" "EVIDENCEALL" "GENENAME" "GO" "GOALL"
#[13] "IPI" "MAP" "OMIM" "ONTOLOGY" "ONTOLOGYALL" "PATH"
#[19] "PFAM" "PMID" "PROSITE" "REFSEQ" "SYMBOL" "UCSCKG"
#[25] "UNIGENE" "UNIPROT"
比如疲迂,可以借助select函數(shù)從ENSG0編號或是ENTREZID獲取對應(yīng)的基因名稱及全稱。當(dāng)然從基因的名稱或者全稱反過來獲取前兩者也是可以的莫湘。
select函數(shù)的結(jié)構(gòu)
select(org.Hs.eg.db, keys= , columns= , keytype=" ")
##例如 想通過基因全稱獲取它的縮寫和ENTREZID 尤蒿。這里的基因名就是keytype
ensids <- c("tumor protein p53")#基因的全稱
cols <- c("SYMBOL","ENTREZID")#想提取的包中含有的相應(yīng)信息所在的列
select(org.Hs.eg.db, keys=ensids, columns=cols, keytype="GENENAME")##keytype設(shè)置輸入的類型。這里是基因的名字幅垮。
bingo!運行完的結(jié)果
以此類推腰池,要獲取什么類別的信息,只要改函數(shù)中數(shù)據(jù)的key忙芒、colums對象示弓,和keytype就好了!
最后呵萨,飲水思源奏属,附上技能樹相關(guān)鏈接!
課程分享
生信技能樹全球公益巡講
(https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g)