Please help with installation of Ensembl Biomart Perl API

58 views
Skip to first unread message

Tatyana Livshultz

unread,
May 12, 2020, 12:01:21 PM5/12/20
to biomart-users
Hello:

I have installed the Ensembl BioMart Perl API on a Linux machine following the instructions at this website.

When I run the example query included in the installation:

~/biomart-perl/scripts$ perl  apiExample_1.pl

I get the following error message:

Cached Registry Unavailable...

Running Complete Clean...



 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                
 COULD NOT CONNECT TO DATABASE central_registry.CHECK YOUR SETTINGS
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Can't call method "getRegistryXML" on an undefined value at /home/REDACTED/biomart-perl/lib/BioMart/Initializer.pm line 855.

The contents of line 855 in /biomart-perl/lib/BioMart/Initializer.pm are as follows.
my $regXML = $pointer->getRegistryXML();

The contents of the "biomart-perl/conf/martURLLocation.xml" file have been updated following the instructions on the website to the following:


<MartRegistry>
  <MartURLLocation database="ensembl_mart_100" default="1" displayName="Ensembl Genes 100" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_ENSEMBL" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
  <MartURLLocation database="mouse_mart_100" default="" displayName="Mouse strains 100" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_MOUSE" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
  <MartURLLocation database="sequence_mart_100" 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_100" 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_100" default="" displayName="Genomic features 100" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_GENOMIC" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />
  <MartURLLocation database="snp_mart_100" default="" displayName="Ensembl Variation 100" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_SNP" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
  <MartURLLocation database="regulation_mart_100" default="" displayName="Ensembl Regulation 100" host="www.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_FUNCGEN" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
</MartRegistry>




I would really be grateful for any assistance here.
Thank you,
Tanya


Syed Haider

unread,
May 12, 2020, 12:07:43 PM5/12/20
to Tatyana Livshultz, biomart-users
Hi Tanya,

Ensembl BioMart seems to be down at the moment. You may want to point your registry to this (archived) installation:


Hope this helps,
Syed




--
You received this message because you are subscribed to the Google Groups "biomart-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to biomart-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/biomart-users/7c35111f-0dd3-46d1-98ae-f2cd9de224c3%40googlegroups.com.


--
<font color="green">Please consider environment before you print this!</font>

Tatyana Livshultz

unread,
May 12, 2020, 12:38:44 PM5/12/20
to biomart-users
Dear Syed:

Thank you for your quick response. I've edited the contents of the  "biomart-perl/conf/martURLLocation.xml" file to
<MartRegistry>
  <MartURLLocation database="ensembl_mart_99" default="1" displayName="Ensembl Genes 99" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_ENSEMBL" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
  <MartURLLocation database="mouse_mart_99" default="" displayName="Mouse strains 99" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_MOUSE" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
  <MartURLLocation database="sequence_mart_99" default="" displayName="Sequence" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_SEQUENCE" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />
  <MartURLLocation database="ontology_mart_99" default="" displayName="Ontology" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_ONTOLOGY" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />
  <MartURLLocation database="genomic_features_mart_99" default="" displayName="Genomic features 99" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_GENOMIC" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="" />
  <MartURLLocation database="snp_mart_99" default="" displayName="Ensembl Variation 99" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_SNP" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
  <MartURLLocation database="regulation_mart_99" default="" displayName="Ensembl Regulation 99" host="jan2020.archive.ensembl.org" includeDatasets="" martUser="" name="ENSEMBL_MART_FUNCGEN" path="/biomart/martservice" port="80" serverVirtualSchema="default" visible="1" />
</MartRegistry>

but I get the exact same error message. Any other ideas? Thank you. Tanya

Cached Registry Unavailable...

Running Complete Clean...



 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                
 COULD NOT CONNECT TO DATABASE central_registry.CHECK YOUR SETTINGS
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Can't call method "getRegistryXML" on an undefined value at /home/REDACTED/biomart-perl/lib/BioMart/Initializer.pm line 855.

To unsubscribe from this group and stop receiving emails from it, send an email to biomar...@googlegroups.com.

Tatyana Livshultz

unread,
May 12, 2020, 12:49:20 PM5/12/20
to biomart-users
I note that the folder biomart-perl/conf has additional xml files, beside martURLLocation.xml, that have the "MartRegistry" markup. Do any of them need to be changed? Thank you. Tanya

registryURLPointer.xml
registry_DOM_XML
registryDBPointer.xml
projectRegistry.xml
martDBLocation.xml

Syed Haider

unread,
May 12, 2020, 3:21:32 PM5/12/20
to Tatyana Livshultz, biomart-users
Hi Tanya,

Not directly answering your question but offering a different solution: have you tried the REST webservice request i.e XML query. You can see its template by hitting the XML button on MartView. That will by-pass the biomart-perl API and you can send the query from any programming language. See section 6.6 here:


Best,
Syed





To unsubscribe from this group and stop receiving emails from it, send an email to biomart-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/biomart-users/2e7d5cd2-47f3-4376-9973-4ffded95299f%40googlegroups.com.

Tatyana Livshultz

unread,
May 12, 2020, 10:08:13 PM5/12/20
to Syed Haider, biomart-users
Hi Syed:

Thank you for the tip. I was able to query plants.ensembl.org using the unix wget command and the XML query obtained from MartView. I got useful additional information here:


I want to construct a query to loop through all the plant genomes in Ensembl and download all the DNA sequences of one protein family. Do you (or anyone else in this group) have a wget script that does something similar with a loop that I can look at and modify? Also, how can I get a list of all the names of the plant datasets in Ensembl? The published list of genomes, https://plants.ensembl.org/species.html, doesn't give the actual dataset names used in the BioMart query.

Thank you for your help. Best regards, Tanya

Syed Haider

unread,
May 13, 2020, 4:01:08 PM5/13/20
to Tatyana Livshultz, biomart-users
Hi Tanya,

You can retrieve dataset names programmatically through BioMart webservice, see documentation section 6.6 in the docs in my last email. For your question on getting dataset names, you need this:


which in essence is constructed by first running the type=registry and using the info returned by the registry request, you can construct the above command.

HTH,
Syed



Reply all
Reply to author
Forward
0 new messages