做生物学研究的人,难免会遇到各种各样的基因ID号。有我们比较熟悉的也比较直观的基因名字,如TP53。也有其他数据库里,但是也比较常用的ID,如ensembl ID,entrez gene ID等等。
下图是TP53这个基因在genecard数据库里面的详细信息
https://www.genecards.org/cgi-bin/carddisp.pl?gene=TP53&keywords=TP53
我们可以看到这个基因对应的gene symbol,Ensembl gene ID,Entrez gene ID以及Uniprot ID(对应的是蛋白信息)。
做数据分析的时候,我们经常需要在各种gene ID之间进行转换。前面也简单给大家介绍过一些做ID转换的工具
☞DAVID(https://david.ncifcrf.gov/home.jsp)
☞g:Convert(https://biit.cs.ut.ee/gprofiler/convert)
这些都是一些网页工具,用起来也比较方便。但是当我们在用R处理数据的时候,不希望把基因名字导出来,用网页工具做个转换,再导到R里面,这样很不方便。有没有R包可以直接把ID给转换了,这样整个分析工作就不用切换工具了。答案是肯定的。今天小编就来给大家介绍两个R包,完成基因ID转换。
方法一、org.Hs.eg.db包
假设我们手上有16个m6A甲基化相关的基因symbol,现在想转换成ensemble gene ID和Entrez gene ID。
#16个m6A甲基化相关的基因名字
m6a_sym=c("METTL3","METTL14","METTL16","WTAP","VIRMA","RBM15","ZC3H13","YTHDF1","YTHDF2","YTHDF3","YTHDC1","YTHDC2","HNRNPA2B1","HNRNPC","FTO","ALKBH5")
#如果没有安装org.Hs.eg.db,需要先运行下面这条命令安装
#BiocManager::install("org.Hs.eg.db")
#加载org.Hs.eg.db
library(org.Hs.eg.db)
#查看支持哪些ID
columns(org.Hs.eg.db)
可以看到genecard里面出现的几种ID号这个包都支持
gene symbol转成Ensembl gene ID
ensembls <- mapIds(org.Hs.eg.db, keys = m6a_sym, keytype = "SYMBOL", column="ENSEMBL")
ensembls
gene symbol转成Entrez gene ID
entriz <- mapIds(org.Hs.eg.db, keys = m6a_sym, keytype = "SYMBOL", column="ENTREZID")
entriz
当然也可以一次性转换到多种ID
#一次性转换到ENSEMBL ID,ENTREZ ID和UNIPROT ID
AnnotationDbi::select(org.Hs.eg.db, keys=m6a_sym,keytype="SYMBOL", columns = c("ENSEMBL","ENTREZID","UNIPROT"))
方法二、clusterProfiler包
gene symbol转成Ensembl gene ID
#如果没有安装clusterProfiler,需要先运行下面这条命令安装
#BiocManager::install("clusterProfiler")
#加载clusterProfiler
library(clusterProfiler)
s2ens = bitr(m6a_sym, fromType="SYMBOL", toType="ENSEMBL", OrgDb="org.Hs.eg.db")
s2ens
一次性转换到多种ID
bitr(m6a_sym, fromType="SYMBOL", toType=c("ENSEMBL","ENTREZID"), OrgDb="org.Hs.eg.db")