[关闭]
@agpwhy 2021-10-08T06:45:39.000000Z 字数 1068 阅读 448

王胖的生信笔记第二十期-基因同源转换

正好国庆前面有同学问我怎么对一个鼠样本,一个人样本的基因取交集。这个问题如果不用自己造轮子,直接调用工具还是比较方便的。

谢谢健明老师给的作业,也参考了其他同学的思路。

使用biomaRt

library(biomaRt)

首先下载数据。就常用的人的,小鼠的,大鼠的参考如下。

human=useMart("ensembl",dataset="hsapiens_gene_ensembl")
mouse=useMart("ensembl",dataset="mmusculus_gene_ensembl")
rat=useMart("ensembl",dataset="rnorvegicus_gene_ensembl")

使用的数据是GSE9397的一个芯片数据(这个怎么从GEO下载变成矩阵,有机会可以讲一期,也是有朋友所托,我下载下来转化成了表达矩阵)

总之现在你有了一个包含基因名的表达矩阵。

image-20211008143118158

提取转换

genehuman2mouse = getLDS(
attributes = c("hgnc_symbol"),
filters = "hgnc_symbol",
values = test$V1,
mart = human,
attributesL = c("mgi_symbol"),
martL = mouse,
uniqueRows = T
)

有了自己封装的函数,从人转化为鼠就这么简单

gaoji <- Human2Mouse(test$V1)

要取交集就加一句

intersect(genehuman2mouse$MGI.symbol,mousegene)

轻轻松松就把同源基因转化做好啦(其实不这么做,单纯转化大小写也不是不行,就是准确率不能到100%)

高级点技巧

Human2Mouse<-function(x){
gs=getLDS(attributes=c("hgnc_symbol"),filters="hgnc_symbol",
values=x,mart=human, attributesL=c("mgi_symbol"),martL=mouse,uniqueRows=T)
return(gs)
}

自己写一个函数封装还是可以的

gaoji <- Human2Mouse(test$V1)

看下和刚刚做的是否效果一样

image-20211008144058081

结果是完全一致

不过聪明的小伙伴已经发现了,转换后的基因列表有12477个,转换前的只有12403个,那多出来的这些是从哪里来的呢?

这个问题就留给屏幕前你那聪明的小脑袋啦。如果实在连百搜索引擎都找不到答案,可以提升下搜索的方法,再不行可以私信询问。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注