用biomaRt进行基因ID转换

用biomaRt进行基因ID转换今天 终于学会了之前看上去很神奇的 ID 转换 之前分析 RNA seq 数据结果之后 拿到的结果很让我烦躁 因为 如图 我怎么知道那个 ID 是个什么基因 于是乎 我就搜索 用到了 biomart 这个 ensmbl 网站上的一个工具 大致流程可以参考下面两个链接 基因转换小工具很实用批量转换基因名教程比对着教程 做了一点操作 但是感觉很繁琐 而且 最后的结果和原来 CSV 文件里的顺序是不一样的 截图如下 这样受到了限制 因为一次性最多 500 个基因名 那么我要是有 1500 个 我要分三次检索 整个过程还算可以忍受

source("http://bioconductor.org/biocLite.R") biocLite('biomaRt') library(biomaRt) 

先加载出来。

随后,读数据。

data<-read.csv("C:/Users/Desktop/GSE96518_DESeq2_results.csv",header=T,sep=",")

加载数据库,这儿用到了小鼠的。

mart <- useMart("ensembl","mmusculus_gene_ensembl") 人类选择hsapiens_gene_ensembl

读数据:

gene<-read.csv("C:/Users/dell/Desktop/GSE96518_DESeq2_results.csv",header=T,sep=",")[,1] #第一列为ID,所以取第一列

转化成基因的名称:

gene_name<-getBM(attributes=c("ensembl_gene_id","external_gene_name"),filters = "ensembl_gene_id",values = gene, mart = mart) #如果是转录本,要改一下,成 ensembl_transcript_id

究竟biomaRt支持哪些ID类型的输入,可以通过以下命令查看:

listFilters(mart) listAttributes(mart)

filters指定输入ID的类型,attributes为输出ID的类型。

gene_data<-merge(data,gene_name,by="ensembl_gene_id")#ensembl_transcript_id这一列的列名均为ensembl_transcript_id write.csv( gene_data,"gene_data_name.csv",row.names=FALSE)#保存

这儿需要注意一下,by 后面的一定要是机器认识且在我们的文件里存在的,所以我把原文件的ID 改成了ensembl_gene_id。

然后就可以了。这儿机器就直接保存了文件,文件在哪儿?一个命令解决。还是会代码爽啊。

getwd()

其实也可以设定好路径,这样就保存到具体的文件里了。

setwd()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202122.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:50
下一篇 2026年3月20日 上午7:51


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号