1

下面是我代码的一小部分:

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。

4

1 回答 1

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

于 2018-04-30T09:55:36.407 回答