11

我有几个SNP ID(即 rs16828074、rs17232800 等),我想从UCSC 基因组网站获取它们在 Hg19 基因组中的坐标。

我宁愿使用R来实现这个目标。怎么做?

4

3 回答 3

11

这是使用 Bioconductor 包的解决方案biomaRt。它是先前发布的代码的稍微更正和重新格式化的版本。

library(biomaRt) # biomaRt_2.30.0

snp_mart = useMart("ENSEMBL_MART_SNP", dataset="hsapiens_snp")

snp_ids = c("rs16828074", "rs17232800")
snp_attributes = c("refsnp_id", "chr_name", "chrom_start")

snp_locations = getBM(attributes=snp_attributes, filters="snp_filter", 
                      values=snp_ids, mart=snp_mart)

snp_locations
#    refsnp_id chr_name chrom_start
# 1 rs16828074        2   232318754
# 2 rs17232800       18    66292259

鼓励用户阅读综合biomaRt 小插图并尝试以下biomaRt功能:

listFilters(snp_mart)
listAttributes(snp_mart)
attributePages(snp_mart)
listDatasets(snp_mart)
listMarts()
于 2013-12-05T01:21:09.150 回答
4

通过 Perl,您会发现构建代码来查询 SNP 非常容易。

有一个 Web 浏览器 GUI 工具 ( HERE ) 用于根据您希望使用 Biomart 库查询的数据库和数据集构建 perl 脚本。

指示

  1. 访问http://www.ensembl.org/biomart/martview/ad23fb5685e6aecb59ab12ce73c89731(获取支持的后生动物),或http://biomart.vectorbase.org/biomart/martview/6e274bc00b3c68a131a6947d02039ade(获取最新的疟疾载体,例如A .冈比亚)
  2. 选择数据库和数据集:在此处输入图像描述

  3. 单击“perl”按钮生成用于 Biomart API 查询的 perl 代码,然后将代码复制粘贴到您的 perl 编辑器中 - 使用您选择的 SNP rsNumbers 运行它。

# An example script demonstrating the use of BioMart API.
use strict;
use BioMart::Initializer;
use BioMart::Query;
use BioMart::QueryRunner;

my $confFile = "PATH TO YOUR REGISTRY FILE UNDER biomart-perl/conf/."
my $action='cached';
my $initializer = BioMart::Initializer->new('registryFile'=>$confFile,'action'=>$action);
my $registry = $initializer->getRegistry;

my $query = BioMart::Query->new('registry'=>$registry,'virtualSchemaName'=>'default');
    $query->setDataset("hsapiens_snp");
    $query->addAttribute("refsnp_id");
    $query->addAttribute("refsnp_source");
    $query->addAttribute("chr_name");
    $query->addAttribute("chrom_start");
    $query->formatter("TSV");

my $query_runner = BioMart::QueryRunner->new();

############################## GET RESULTS ##########################
$query_runner->execute($query);
$query_runner->printHeader();
$query_runner->printResults();
$query_runner->printFooter();
#####################################################################
于 2013-12-05T02:42:16.603 回答
3

使用 bioconductor 的biomaRt R 包。

这提供了一种向BioMart发送查询的简单方法,该查询获取有关给定 rsNumber(即rsid)的 SNP 的信息。

例如,要导入rs16828074(您在帖子中列出的 rsNumber)的 SNP 数据,请使用以下命令:

代码:

library(biomaRt)

snp.id <- 'rs16828074'   # an SNP rsNumber like you listed in the post

snp.db <- useMart("snp", dataset="hsapiens_snp")  # select your SNP database

# The SNP data file imported from the HUMAN database:
nt.biomart <- getBM(c("refsnp_id","allele","chr_name","chrom_start",                   
                      "chrom_strand","associated_gene",
                      "ensembl_gene_stable_id"),
                      filters="refsnp",
                      values=snp.id,
                      mart=snp.db)

让我知道你是如何处理这个问题的(通过评论),因为我在这里的回答中假设了一些基本的编码和包导入能力。

致谢:

Jorge Amigo(因为他在 Biostars的职位)

于 2013-12-01T00:43:45.753 回答