Objective
I have a list of ~58K ensembl gene ids of h.sapiens for which I need to extract the gene names, descriptions and other annotations from biomart.
The online way is failing primarily because of the huge list I am uploading, hence, I though to give this a try with the BiomaRt R package. I am trying to access ensembl biomart using following commands
source("http://bioconductor.org/biocLite.R")
biocLite("biomaRt")
library(biomaRt)
listEnsembl()
Error encountered
> listEnsembl()
Request to BioMart web service failed. Verify if you are still connected to the internet. Alternatively the BioMart web service is temporarily down. Check http://www.biomart.org and verify if this website is available.
Error: XML content does not seem to be XML:
From the error, it appears to be a problem with the URL - http://www.biomart.org, which I could infact access without any issue.
What I can see is a downtime notice here. Is it something related to this?
Can anybody suggest anything else?
1 answer
It looks like you're using a fairly old version of both R and biomaRt at the moment. I've made quite a few changes to the package over the past year, particularly regarding connectivity and error messages, so I'd suggest upgrading. You can keep the same version of R and install the latest biomaRt using the following command:
BiocInstaller::biocLite('grimbough/biomaRt')
I would then try re-running listEnsembl() with the verbose flag. This will print the actual URL it is trying to access, which you can then try in a web browser. It should be an XML file starting with <MartRegistry>.
listEnsembl(verbose = TRUE)
You can also try accessing one of the mirror sites, then report back here with any output, e.g.
listEnsembl(verbose = TRUE, mirror = "asia")
Log in to answer this question.
Working fine for me:
What version of R and biomaRt are you using? I suspect you might have an old version. While the www.biomart.org website still exists, it ceased to be the central reportistory for BioMart instances quite a while ago. All the defaults in the biomaRt package should now point to www.ensembl.org
You can check the version using the command
sessionInfo(), here's mine along with the output i get when runninglistEnsembl()Check to see if an overzealous intrusion prevention device (or a firewall admin) has disabled your access since it seems to be working for others.