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

Run a loop using values from a list in R

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

使用下面的 'genes' 向量是否可以将每个值单独循环到 '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)

试试

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)})

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

首先,您没有提供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