Я недавно задал вопрос о lapply, но теперь я изменил свой подход и столкнулся с большим количеством проблем, которые не могу решить.
У меня проблемы с кодом:
Загрузка biomaRt
library(biomaRt)
Создай витрину Сяпиена
ensembl_hsapiens <- useMart("ensembl",
dataset = "hsapiens_gene_ensembl")
Затем я извлекаю человеческие гены:
hsapien_PC_genes <- getBM(attributes = c("ensembl_gene_id", "external_gene_name"),
filters = "biotype",
values = "protein_coding",
mart = ensembl_hsapiens)
ensembl_gene_ID <- hsapien_PC_genes$ensembl_gene_id
Установить видовой вектор
species <- c("mmusculus", "ggallus")
Это все работает как положено, у меня возникают проблемы при использовании lapply
all_homologues <- lapply(species, function(s) getBM(attributes = c("ensembl_gene_id",
"external_gene_name",
get(paste0(s, "_homolog_ensembl_gene")),
get(paste0(s, "_homolog_associated_ensembl_gene")),
filters = "ensembl_gene_id",
values = c(ensembl_gene_ID),
mart = ensembl_hsapiens)))
Я получаю сообщение об ошибке:
Error in martCheck(mart) :
You must provide a valid Mart object. To create a Mart object use the function: useMart. Check ?useMart for more information.
Код отлично работает так:
all_homologues <- getBM(attributes = c("ensembl_gene_id", "external_gene_name",
"mmusculus_homolog_ensembl_gene",
"mmusculus_homolog_associated_gene_name"),
filters = "ensembl_gene_id",
values = c(ensembl_gene_ID),
mart = ensembl_hsapiens)
Но у меня много видов, поэтому я хочу иметь возможность использовать небольшой кусочек кода для извлечения гомологов для вида, а не переписывать его все для каждого вида.
Я думаю, что я делаю что-то не так с lapply, поскольку витрина работает отлично, когда не используется lapply.
Мой предыдущий вопрос:
Ошибка при использовании biomart