日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

無痛解決基因全稱與縮寫的轉(zhuǎn)換

 起風了xmj7lizp 2019-10-30

“山窮水盡疑無路,柳暗花明又一村”

某天,想收集一類藥物的作用靶點,上了Drugbank獲取了全部數(shù)據(jù),加載到R中,解析出來后蒙圈了,它居然一個基因靶點對應(yīng)了多個名稱。這就很為難了。
怎么從基因全稱獲取它的縮寫呢?
我知道Uniprot可以弄,但小白一個個輸入查詢,那就很痛苦了!

能不能從基因的全稱來批量獲取其縮寫呢?

到群上提了問,又雙叒叕得到 jimmy老師的點撥。
當然可以!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]##導入自己的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

代碼里面很巧妙地用了兩次Totable函數(shù),雖然還不太懂它的作用,但好不好用,看效果,一運行就得到了基因和全稱對應(yīng)的數(shù)據(jù)框。
這樣的數(shù)據(jù)放到R里可是輕輕松松可以認識的!

OK,之后導入數(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)的基因名稱及全稱。當然從基因的名稱或者全稱反過來獲取前兩者也是可以的。
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é)果


image.png

以此類推,要獲取什么類別的信息,只要改函數(shù)中數(shù)據(jù)的key、colums對象,和keytype就好了!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多