【R语言】基因ID转换
做生物学研究的人,难免会遇到各种各样的基因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")
相关文章
- c语言long类型转换成string,如何在C ++中将long转换为string?「建议收藏」
- c语言求一个数的补码_反码补码原码怎么转换
- 进制的转换
- python把数字转换为字符串_python中将列表转化为字符串
- 进制转换以及位运算
- verilog语言转vhdl语言_vhdl转换为verilog
- hive数据类型转换cast_c语言数据类型的转换
- c语言时间戳转换日期格式_c语言时间转换为时间戳
- R语言如何做马尔可夫转换模型markov switching model|附代码数据
- MySQL中实现秒转换为时间的方法(mysql秒转时间)
- Go语言strconv包:字符串和数值类型的相互转换
- Oracle转大写:快速实现字符串转换(oracle转大写)
- 使用Oracle实现日期的中文转换(oracle日期转中文)
- SQL Server 时间格式转换技巧(sqlserver转时间)
- Linux下的atoi64:简单而强大的转换工具(atoi64linux)
- FME 加速 Oracle 数据转换过程(fme oracle)
- Oracle数据库如何将时间转换为季度(oracle中时间转季度)
- Oracle字符集转换实现简体繁体之间的转换(oracle中文简体繁体)
- 数Oracle中将小数精确转换为百分数的方法(oracle中小数转百分)
- c语言读取obj文件转换数据的小例子
- 解析在.net中使用XSLT转换xml文档的示例详解
- Python时间戳与时间字符串互相转换实例代码