R中两个常用的基因ID转换包:BiomaRt和clusterProlifer
1. clusterProlifer
总体来说clusterProlifer用起来是比较方便的,通过现成的org.*.eg.db文件,能够满足常规的gene id转换,例如ensembl id,entrez id, gene symbol,但是需要注意的是:使用org.*.eg.db时需要考虑这个文件是基于哪个参考基因组版本构建的。例如羊的org.Ovis_aries.eg.sqlite是用Ovis Aries 3.1参考基因组构建的,但我数据分析时用的是Ovis Aries 4作为参考基因组,那么就不能用org.Ovis_aries.eg.sqlite。
library(clusterProfiler) library(AnnotationHub) ah=AnnotationHub() query(ah,"org.Ovis_aries.eg.sqlite") org.Oar.eg.db=ah[['AH96240']] symbol_map <- bitr(na$Symbol, OrgDb=org.Oar.eg.db, fromType='SYMBOL', toType='ENTREZID')
2. BiomaRt
BiomaRt用起来更加灵活,可以不同版本参考基因组ID转换,不同类型基因ID转换,甚至同基因跨物种同源基因转换,相应的,BiomaRt包信息量也就更大。下面是用BiomaRt进行基因ID转换的基因流程,附加详细的注释信息,自己操作一下基本上就能完全理解。
BiocManager::install("biomaRt") library(biomaRt) listMarts() ?useMart 1. Connects to the selected BioMart database and dataset # 查看可用数据库 listMarts() # 建立数据库链接,ensembl mart<-useMart("ensembl") 2. lists the available BioMart databases # 寻找目标数据库,对应的物种及参考基因组版本 dataset_list=as.data.frame(listDatasets(mart)) 3. 选择绵羊数据库,重新建立数据库链接 # oarambouillet_gene_ensembl mart_oas=useMart("ensembl", "oarambouillet_gene_ensembl") 4. 查看可用的输入数据类型 # 共333种 filter_list=as.data.frame(listFilters(mart_oas)) tail(filter_list) 5. 查看可用的输出数据类型 # 共3074种 attri_list=as.data.frame(listAttributes(mart_oas)) 6. Retrieves information from the BioMart database # ID 转换,不局限于ID转换,还可检索其他信息 list_gene=getBM(attributes = c("ensembl_gene_id","entrezgene_id","external_gene_name","description","chromosome_name"), filters = "ensembl_gene_id", values = geneid, mart = mart_oas) # 需要注意的是,ensembl id转换时存在三种情况 # 1. 一个ensembl_gene_id转换为多个entrezgene_id, # 2. 一个ensembl_gene_id转换为多个gene symbol # 3. 同时还有许多基因ID无法成功转换,标记为NA a=list_gene[!duplicated(list_gene$ensembl_gene_id),]
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209717.html原文链接:https://javaforall.net
