使用R中列表中的值运行循环

时间:2018-01-28 21:17:03

标签: r loops bioinformatics biomart

我是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)

2 个答案:

答案 0 :(得分:2)

尝试类似

的内容
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)})

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

的结果列表

答案 1 :(得分:1)

首先,您不提供reproducible, minimal example;如果您提供自包含的最小代码,陈述您尝试过的内容,失败的内容以及预期的结果,那么人们更有可能提供帮助。

除此之外,以下是基于您为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