Error while opening Mart with biomaRt package
0
0
Entering edit mode
@loicborcard01-22542
Last seen 3.5 years ago
Switzerland

I have been getting this error since yesterday and I was wondering if it was a general problem or just me. I have tried mirrors and changes of ports.

Error in listMarts(host = host, path = path, port = port, includeHosts = TRUE, : Unexpected format to the list of available marts. Please check the following URL manually, and try ?listMarts for advice. http://www.ensembl.org:80/biomart/martservice?type=registry&requestid=biomaRt

software error ensembl biomart • 2.1k views
ADD COMMENT
0
Entering edit mode

Can you provide a small reproducible example of the code you're running?

ADD REPLY
0
Entering edit mode
ensembl <- useMart("ensembl")
datasets <- listDatasets(ensembl)
ensembl = useMart("ensembl",dataset="sscrofa_gene_ensembl")

Basically I am trying to access a dataset over biomart and I heard this error is common when the servers of ensembl are under maintenance but it does not seem like it's the case

ADD REPLY
0
Entering edit mode

You could still try useEnsembl and choose the closest mirror.

ADD REPLY
0
Entering edit mode

What do you see if you click on the link in the error message and open it in a web browser?

ADD REPLY
0
Entering edit mode
<MartRegistry>
<MartURLLocation database="ensembl_mart_98" default="1" displayName="Ensembl Genes 98"    host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_ENSEMBL"  path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
<MartURLLocation database="mouse_mart_98" default="" displayName="Mouse strains 98" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_MOUSE" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
<MartURLLocation database="sequence_mart_98" default="" displayName="Sequence" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_SEQUENCE" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />
<MartURLLocation database="ontology_mart_98" default="" displayName="Ontology" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_ONTOLOGY" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />
<MartURLLocation database="genomic_features_mart_98" default="" displayName="Genomic features 98" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_GENOMIC" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />

<marturllocation database="snp_mart_98" default="" displayname="Ensembl Variation 98" host="www.ensembl.org" includedatasets="" martuser="" name="ENSEMBL_MART_SNP" path="/biomart/martservice" port="80" servervirtualschema="default" visible="1"/> <marturllocation database="regulation_mart_98" default="" displayname="Ensembl Regulation 98" host="www.ensembl.org" includedatasets="" martuser="" name="ENSEMBL_MART_FUNCGEN" path="/biomart/martservice" port="80" servervirtualschema="default" visible="1"/> </martregistry>

ADD REPLY
0
Entering edit mode

Something odd is happening, because that's exactly what you should see. The "Unexpected format to the list of available marts" error is only thrown if it doesn't find a page that starts with <MartRegistry>. Since you do see that page, something different must be occurring when using R vs your browser.

Could you provide the output of sessionInfo() so I can see which versions of R and biomaRt you're using. The formatting of that error message suggests to me it might be an old version.

You could also try the following command, which is explicitly designed to work with Ensembl and removes some of the ambiguity in choosing what port and protocol to connect over. If you have some firewall / proxy issue or similar then this might help.

ensembl = useEnsembl("ensembl",dataset="sscrofa_gene_ensembl")
ADD REPLY
0
Entering edit mode

Thanks for the quick response, I tried with the useEnsembl function but it did not make any difference. I am trying to update my packages at the moment. Thanks for the help everyone.

Sessioninfo btw:
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=German_Switzerland.1252  LC_CTYPE=German_Switzerland.1252    LC_MONETARY=German_Switzerland.1252
[4] LC_NUMERIC=C                        LC_TIME=German_Switzerland.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.1  DBI_1.0.0       tools_3.5.1     RCurl_1.95-4.12 yaml_2.2.0      stats4_3.5.1    bitops_1.0-6   
[8] XML_3.98-1.20  
ADD REPLY
0
Entering edit mode

So I just updated it and it did make any difference edit :did not*

ADD REPLY
0
Entering edit mode

Do you know if there is any european server for ensembl? that I could use as a Host

ADD REPLY
0
Entering edit mode

The standard server at www.ensembl.org is hosted in Cambridge, UK and so would typically be the best to use in Europe.

I would suggest updating your R to version 3.6 as the version you're using is now a couple of years old, and versions of Bioconductor packages are tied to R versions, so you end up with an old version of biomaRt etc too. (Note, I can't actually see that in your output, you need to run library(biomaRt) before running sessionInfo() as it only reports packages you've actually loaded).

I would try updating R first, but if that still fails one other thing you can try to help me understand what might be happening is to run these two commands, which are how biomaRt tries to check the page that is failing:

httr::GET("https://www.ensembl.org:443/biomart/martservice?type=registry&requestid=biomaRt")
httr::GET("http://www.ensembl.org:80/biomart/martservice?type=registry&requestid=biomaRt")

You can report back what it prints out here. FYI, to make it look nice you can wrap the output in a code bock by putting three back ticks (``` ) around it e.g.

 ```
 example <- code()
 ```
ADD REPLY
0
Entering edit mode
httr::GET("https://www.ensembl.org:443/biomart/martservice?type=registry&requestid=biomaRt")
Error in curl::curl_fetch_memory(url, handle = handle) : 
  Timeout was reached: [www.ensembl.org:443] Connection timed out after 10010 milliseconds
httr::GET("http://www.ensembl.org:80/biomart/martservice?type=registry&requestid=biomaRt")
Response [http://www.ensembl.org:80/biomart/martservice?type=registry&requestid=biomaRt]
  Date: 2019-12-12 14:12
  Status: 403
  Content-Type: text/html
  Size: 1.23 kB

Thanks for the tips for the layout, it does look better this way. The problem is that I don't have the accreditation to update my version of R I will need to talk to IT dep of my institute and they will report to the IT dep of the gvt. I probably got the only version that they were allowed to install in the gvt computers.

ADD REPLY
0
Entering edit mode

When I run those commands I get the following:

httr::GET("https://www.ensembl.org:443/biomart/martservice?type=registry&requestid=biomaRt")
Response [https://www.ensembl.org:443/biomart/martservice?type=registry&requestid=biomaRt]
  Date: 2019-12-13 10:50
  Status: 200
  Content-Type: text/plain; charset=utf-8
  Size: 1.8 kB

  <MartRegistry>
    

In your case it's either a timeout for the first version or error code 403 for the second. I think you might need to speak to your IT department about reasons why this might not be working, as it looks like the basic connection from R fails, which is more fundamental than something I can fix in the biomaRt package.

ADD REPLY
0
Entering edit mode

I am using a proxy to access biomaRt could it be the reason? It worked before so I don't know why it suddenly stopped working.

ADD REPLY
0
Entering edit mode

The certainly sounds like it could be behind the issue, and might explain why you see a difference between the browser and R session. I don't know what will have caused the difference, but I don't think I have made any changes in biomaRt that would have introduce a change like this. Local IT are probably the best people to ask for advice here.

Alternatively, depending what task you're trying to do, there are many other annotation resources in Bioconductor that might work for you e.g. ensembl

ADD REPLY

Login before adding your answer.

Traffic: 968 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6