美文网首页R语言做生信科研信息学
无痛解决基因全称与缩写的转换

无痛解决基因全称与缩写的转换

作者: 村野孤云 | 来源:发表于2019-05-23 21:11 被阅读66次

    “山穷水尽疑无路,柳暗花明又一村”

    某天,想收集一类药物的作用靶点,上了Drugbank获取了全部数据,加载到R中,解析出来后蒙圈了,它居然一个基因靶点对应了多个名称。这就很为难了。
    怎么从基因全称获取它的缩写呢?
    我知道Uniprot可以弄,但小白一个个输入查询,那就很痛苦了!

    能不能从基因的全称来批量获取其缩写呢?

    到群上提了问,又双叒叕得到 jimmy老师的点拨。
    当然可以!org.Hs.eg.db包可以做!
    代码如下:

    library(org.Hs.eg.db)#org.Hs.eg.db 是用于geneID转换的包。物种为人类。Bioconductor上还有提供其他物种的。
    eg2Symbol=toTable(org.Hs.egSYMBOL)##将包中gene_symbol转换成数据框
    eg2name=toTable(org.Hs.egGENENAME)##将包中GENENAME转换成数据框
    anno=merge(eg2Symbol,eg2name,by='gene_id')#根据gene_id合并两个数据框
    genes=read.table('symbol.txt',stringsAsFactors = F)[,1]##导入自己的gene数据
    anno[match(gene,anno$gene_name),]##match函数匹配索引,获得自己的数据在包中整出来的数据框中的行位置
    write.csv(anno[match(genes,anno$symbol),],'symbol2name.csv')##写出文件0
    

    代码里面很巧妙地用了两次Totable函数,虽然还不太懂它的作用,但好不好用,看效果,一运行就得到了基因和全称对应的数据框。
    这样的数据放到R里可是轻轻松松可以认识的!

    OK,之后导入数据执行代码。
    几秒钟,瞬间无痛解决基因从全称到缩写的转换问题!
    虽然Drugbank有点坑,有些基因全称因为和包中提供的全称不一致所有没办法匹配上,但总算是最大程度解决了我的困惑。


    此外,读了下生信菜鸟团的相关推文,发现这个包还有其他转换的用法。
    看一眼包中的所含的信息

    keytypes(org.Hs.eg.db)#包里面有的数据注释类别共有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函数从ENSG0编号或是ENTREZID获取对应的基因名称及全称。当然从基因的名称或者全称反过来获取前两者也是可以的。
    select函数的结构
    select(org.Hs.eg.db, keys= , columns= , keytype=" ")

    ##例如 想通过基因全称获取它的缩写和ENTREZID 。这里的基因名就是keytype 
    ensids <- c("tumor protein p53")#基因的全称
    cols <- c("SYMBOL","ENTREZID")#想提取的包中含有的相应信息所在的列
    select(org.Hs.eg.db, keys=ensids, columns=cols, keytype="GENENAME")##keytype设置输入的类型。这里是基因的名字。
    

    bingo!运行完的结果


    image.png

    以此类推,要获取什么类别的信息,只要改函数中数据的key、colums对象,和keytype就好了!


    最后,饮水思源,附上技能树相关链接!
    课程分享
    生信技能树全球公益巡讲
    https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
    B站公益74小时生信工程师教学视频合辑
    https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
    招学徒:
    https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw

    相关文章

      网友评论

        本文标题:无痛解决基因全称与缩写的转换

        本文链接:https://www.haomeiwen.com/subject/uaiezqtx.html