dxy logo
首页丁香园病例库全部版块
搜索
登录

【一文就够】查询基因组范围内的所有基因

医疗行业从业者 · 发布于 2018-09-11 · IP 北京北京
5731 浏览
这个帖子发布于 7 年零 58 天前,其中的信息可能已发生改变或有所发展。

如果你有一个基因组范围、或一个SNP的位置。怎么快速寻找它附近所有的基因呢?


第一个想法是,在UCSC的基因组浏览器查看,那个我觉得不好。原因一个是要复制、粘贴、点击、调整;另一个是看到了很多基因,还要一个个去点开看,哪些是编码基因,哪些是非编码基因。真的非常低效。


这里介绍一个用R语言查询的方式,需要输入“染色体号”“基因组开始位置”“基因组结束位置”。运行后,可以直接得到所有基因的列表。

如果你愿意尝试其他变量,你能方便的得到更多基因信息。


废话不多说,首先你需要下载R语言,然后运行下面的R语言代码。


 ```r

library(biomaRt)

# 查看可用的Ensemble版本。

listEnsemblArchives()

# version          date       url

# [1,] "Ensembl GRCh37" "Feb 2014" "http://grch37.ensembl.org"

# [2,] "Ensembl 92"     "Apr 2018" "http://Apr2018.archive.ensembl.org"


# 查看基因组b37版本可用的marts。

listMarts(host="http://grch37.ensembl.org")


mart.gene <- useMart(host="http://grch37.ensembl.org",

                     biomart = "ENSEMBL_MART_ENSEMBL")

# 查看可用的dataset。

listDatasets(mart = mart.gene)


mart.gene.hs <- useMart(host="http://grch37.ensembl.org",

                        biomart = "ENSEMBL_MART_ENSEMBL",

                        dataset = "hsapiens_gene_ensembl")


# 查看可用的Gene信息

attr <- listAttributes(mart.gene.hs)

setwd("../Desktop/")

# write.csv(attr,"attr.csv")


# 查看可用的filters信息

filters <- listFilters(mart = mart.gene.hs)

# write.csv(filters,"filters.csv")


# 查询基因组区域内的所有基因。

res <- getBM(attributes = c( "chromosome_name","start_position",

                                 "end_position","hgnc_symbol","gene_biotype"),

             filters = list(chromosome_name=8,

                            start=c(19393206),

                            end=c(21393206)),

                 mart = mart.gene.hs)


res <- dplyr::filter(res,grepl("[A-Za-z0-9_]",hgnc_symbol))

res.code <- filter(res,gene_biotype == "protein_coding")

```


上面代码的结果展示(res.code的内容)如下:

img


~~~~~~~~~~~~~~~~~~~~~~~~~~~~

另外,我分享了一个目录:版内《生信问题及解决方案》目录汇总

旨在 完善知识体系、方便查询所需代码、减少搜索的时间;

~~~喜欢我的分享,请用丁当支持我吧!~~~~

如你想我发布其他的生信经验分享,可以私信留言给我,

我会不定期挑选一些发布在坛子里

~~~~~~~~~~~~~~~~~~~~~~~~~~~~


5 15 2

全部讨论(0)

默认最新
avatar
5
分享帖子
share-weibo分享到微博
share-weibo分享到微信
认证
返回顶部