1

我是 R 编程的新手,我正在使用 BioMart 包来提取基因旁系同源物以获得基因列表。

使用下面的“基因”向量是否可以将每个值单独循环到“getBM”函数的值部分,然后将其输出添加到数据框中?

genes <- C("FGF1", "BRCA1", "FOXP2")

getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"), 
                                  filters = "external_gene_name", 
                                  values =  , mart = ensembl_hsapiens)

下面是我一直在做的事情,使用基因向量作为值,但它给了我错误的数字,我知道原因。当我单独尝试基因时,值是正确的,这就是为什么我想循环这些值。

 genes <- C("FGF1", "BRCA1", "FOXP2")

getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"), 
                                  filters = "external_gene_name", 
                                  values = c(genes), mart = ensembl_hsapiens)
4

2 回答 2

3

尝试类似的东西

result <- lapply(genes,function(x){getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"), 
                                  filters = "ensembl_gene_id", 
                                  values = x, mart = ensembl_hsapiens)})

循环你的基因载体。结果将是每个值的结果列表

于 2018-01-28T21:21:03.537 回答
1

首先,您没有提供可重现的最小示例;如果您提供自包含的最少代码、说明您尝试过的内容、失败的内容以及预期的结果,那么人们更有可能提供帮助。

除此之外,下面是基于您提供的数据的最小示例genes

# Load the necessary library
library(biomaRt);

# Your vector of query gene symbols
genes <- c("FGF1", "BRCA1", "FOXP2");

# The relevant BioMart database and dataset
mart <- useMart(
    biomart = "ENSEMBL_MART_ENSEMBL",
    dataset = "hsapiens_gene_ensembl");

# Extract attributes from mart for every entry in values
getBM(
    attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
    filters = "external_gene_name",
    values =  genes,
    mart = mart);
#    external_gene_name hsapiens_paralog_associated_gene_name
# 1                FGF1                                  FGF2
# 2               BRCA1
# 3               FOXP2                                 FOXP4
# 4               FOXP2                                 FOXP1
# 5               FOXP2                                 FOXP3
# 6               FOXP2                                 FOXO4
# 7               FOXP2                                 FOXO6
# 8               FOXP2                                 FOXO1
# 9               FOXP2                                 FOXO3
# 10              FOXP2                                 FOXM1
于 2018-01-28T21:33:37.697 回答