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