BioMart:有没有办法轻松改变我所有代码的物种?

时间:2018-04-24 17:25:06

标签: r bioinformatics bioconductor 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)

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 :(得分:0)

简单的方法是将它全部包装在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