BioMart: есть ли способ легко изменить вид для всего моего кода? - PullRequest
0 голосов
/ 24 апреля 2018

Ниже приведена небольшая часть моего кода:

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)

paralogues[["hsapiens"]] <- getBM(attributes = c("external_gene_name",
                                                 "hsapiens_paralog_associated_gene_name"), 
                                  filters = "ensembl_gene_id", 
                                  values = c(ensembl_gene_ID) , mart = ensembl_hsapiens)

Этот фрагмент кода позволит мне извлечь только паралоги для hsapiens, так как я могу легко получить ту же информацию для mmusculus.(мышь) и ggallus (курица) без необходимости переписывать код, используя что-то вроде Tapply?Мой код намного длиннее предоставленного фрагмента, все, что мне нужно сделать, это поменять слово hsapiens на mmusulus и ggallus.

1 Ответ

0 голосов
/ 30 апреля 2018

Простой способ - это просто обернуть все в цикл for:

library(biomaRt)

species <- c("hsapiens_gene_ensembl", "mmusculus_gene_ensembl", "ggallus_gene_ensembl")

for (s in species) {
tmp <- useMart("ensembl", dataset = paste0(s))
hsapien_PC_genes <- getBM(attributes = c("ensembl_gene_id", "external_gene_name"), 
                          filters = "biotype", 
                          values = "protein_coding", 
                          mart = tmp)
paralogues[[s]] <- getBM(attributes = c("external_gene_name",
                                                 "hsapiens_paralog_associated_gene_name"), 
                                  filters = "ensembl_gene_id", 
                                  values = c(ensembl_gene_ID) , mart = tmp)
}

Это должно работать, я не проверял его, потому что у меня не установлены эти пакеты.Я изменил названия некоторых переменных, чтобы сделать их более понятными (например, tmp)

...