查询 biomart 时出现内部服务器错误?

Internal Server Errors when querying biomart?

当使用 biomaRt 包执行 R 命令时,我经常遇到 "Internal Server Error (HTTP 500)." 等基本命令的错误

ensembl<-useMart("ensembl")
ensembl <- useMart("ensembl", dataset="hsapiens_gene_ensembl")

不过,这些命令偶尔会起作用。我不确定这是否是 Biomart 服务器端的问题,或者是否有可能在我这端造成的问题,比如旧包(我尝试重新安装 Biomart)。有没有人处理过类似的问题?

我通过将镜像参数设置为 "useast" 来规避这个问题。有效的镜像选项为 'www'、'uswest'、'useast'、'asia'。如果未指定镜像,将使用位于 www.ensembl.org 的主站点(看起来它们在主站点上过载)。

ensembl = useEnsembl(biomart = "ensembl", dataset = "hsapiens_gene_ensembl", mirror = "useast")

我尝试设置镜像,但仍然出现同样的错误。我推荐以下功能:

library(dplyr)

mouse_human_genes = read.csv("http://www.informatics.jax.org/downloads/reports/HOM_MouseHumanSequence.rpt",sep="\t")

convert_mouse_to_human <- function(gene_list){
  
  output = c()
  
  for(gene in gene_list){
    class_key = (mouse_human_genes %>% filter(Symbol == gene & Common.Organism.Name=="mouse, laboratory"))[['DB.Class.Key']]
    if(!identical(class_key, integer(0)) ){
      human_genes = (mouse_human_genes %>% filter(DB.Class.Key == class_key & Common.Organism.Name=="human"))[,"Symbol"]
      for(human_gene in human_genes){
        output = append(output,human_gene)
      }
    }
  }
  
  return (output)
}