⽤biomaRt进⾏基因ID转换
今天,终于学会了之前看上去很神奇的ID转换。之前分析RNA-q数据结果之后,拿到的结果很让我烦躁,因为,如图。
我怎么知道那个ID是个什么基因?于是乎,我就搜索。单身女子
⽤到了,这个ensmbl⽹站上的⼀个⼯具。⼤致流程可以参考下⾯链接:
⽐对着教程,做了⼀点操作,但是感觉很繁琐,⽽且,最后的结果和原来CSV⽂件⾥的顺序是不⼀样的,
截图如下:
吃什么伤肾
这样受到了限制,因为⼀次性最多500个基因名,那么我要是有1500个,我要分三次检索,整个过程还算可以忍受,但是,我要⽐对上原来的gene_id,就要⼀个个去找,这样太⿇烦了,我中间真的想要放弃,好在我想,代码是不是可以解决这个问题?
没错,的确可以,就是R语⾔包的biomart.
source("bioconductor/biocLite.R")
孕妇能吃鹅肉吗biocLite('biomaRt')
library(biomaRt)
先加载出来。
随后,读数据。
觉的多音字组词
data<-read.csv("C:/Urs/Desktop/GSE96518_DESeq2_results.csv",header=T,p=",")
加载数据库,这⼉⽤到了⼩⿏的。
mart <- uMart("enmbl","mmusculus_gene_enmbl")
##⼈类选择hsapiens_gene_enmbl
读数据:
gene<-read.csv("C:/Urs/dell/Desktop/GSE96518_DESeq2_results.csv",header=T,p=",")[,1]#第⼀列为ID,所以取第⼀列
转化成基因的名称:
gene_name<-getBM(attributes=c("enmbl_gene_id","external_gene_name"),filters ="enmbl_gene_id",values = gene, mart = mart)
#如果是转录本,要改⼀下,成 enmbl_transcript_id思科路由器
究竟biomaRt⽀持哪些ID类型的输⼊,可以通过以下命令查看:
listFilters(mart)
listAttributes(mart)
filters指定输⼊ID的类型,attributes为输出ID的类型。
这个时候就可以看到有多少的ID找到了对应的name。我这个测试⾥⾯⼤约有500个没有找到,找到的27355占⼤多数,⾜够了。
这个时候,我们就成功拿到了转化之后的基因我们就知道那⼀⼤串符号代表了那个基因了。接下来我们可以做⼀个整合:
gene_data<-merge(data,gene_name,by="enmbl_gene_id")#enmbl_transcript_id这⼀列的列名均为enmbl_transcript_id
write.csv( gene_data,"gene_data_name.csv",row.names=FALSE)#保存
这⼉需要注意⼀下,by 后⾯的⼀定要是机器认识且在我们的⽂件⾥存在的,所以我把原⽂件的ID 改成了enmbl_gene_id。
然后就可以了。这⼉机器就直接保存了⽂件,⽂件在哪⼉?⼀个命令解决。还是会代码爽啊。
getwd()
跟女生聊天话题
其实也可以设定好路径,这样就保存到具体的⽂件⾥了。
如何锻炼臂力twd()
上述⽤代码换时间的过程参考了下⾯两篇⽂章:
紫菜苔