有时候我们手上会有一些基因组的区域,当你想去看看这些区域里面是否包含一些比较重要的SNP(例如与疾病相关的SNP)的时候,大家一般会怎么做呢?
一种比较直接的方法是,先去UCSC下载所有的SNP信息
https://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/
![](https://img.haomeiwen.com/i24747866/880d8eaeafc55ba9.png)
然后再用bedtools或者自己写个简单的脚本去看看每个SNP是否存在于给定的基因组区域内。这种方法的缺点在于你需要先去下载一个完整的SNP注释文件,snp151这个文件在解压之前有12G,估计下载都需要很久。解压之后估计更大。当然这种方法也有他的好处,就是一劳永逸。一旦下载到本地,以后就可以直接用了。
![](https://img.haomeiwen.com/i24747866/ef1eacc44ca18716.png)
今天小编给大家介绍一个比较方便快捷的方法,这种方法不需要下载完整的SNP文件。当你的区域不多的时候,会比较方便快捷。
我们用到的工具叫biomart,前面小编也给大家介绍过这个工具
接下来我们看怎么利用biomart来获取基因组上某个区域内的SNP信息
#安装biomaRt包
BiocManager::install("biomaRt")
#加载biomaRt包
library(biomaRt)
#选择数据库和数据集
snpmart <- useMart(biomart = "ENSEMBL_MART_SNP", dataset="hsapiens_snp")
#attributes设置需要显示的SNP信息
#filters设置根据什么信息过滤SNP
#value是基因组的位置信息,chr8:148350-148612
#mart指定用什么数据库和数据集,就是刚刚定义的
snps <- getBM(attributes = c('refsnp_id','chr_name','allele','chrom_start','chrom_strand'),
filters = c('chr_name','start','end'),
values = list(8,148350,148612),
mart = snpmart)
#显示获取到的SNP信息
snps
![](https://img.haomeiwen.com/i24747866/328ec64598e5779c.jpg)
网友评论