[ensembl-dev] REST API - unable to specify release version in requests

Premanand Achuthan prem at ebi.ac.uk
Tue May 22 10:06:21 BST 2018


Hi Kurt

rest.ensembl.org always points to the latest release of Ensembl. You can 
use the /info/software end point to get the current version of the Ensembl.

http://rest.ensembl.org/info/software?content-type=application/json

{
release: 92
}

Ensembl archives previous 5 releases of REST service, which can be 
accessed via the following urls,

http://{ENSEMBL_RELEASE_VERSION}.rest.ensembl.org/

http://e87.rest.ensembl.org/
http://e88.rest.ensembl.org/
http://e89.rest.ensembl.org/
http://e90.rest.ensembl.org/
http://e91.rest.ensembl.org/

Hope it helps,

Best Regards
Prem

On 21/05/2018 19:35, Kurt Wheeler wrote:
> TL;DR; I would like to able to specify the release version I am
> querying for when using the REST API like so:
>
> https://rest.ensembl.org/info/species?release=91&content-type=application/json
>
> where the key part of that request is `?release=91`
>
>
> Here's why:
>
> I don't use Ensembl through the R client, so I can't run:
>
> use Bio::EnsEMBL::ApiVersion;
> printf( "The API version used is %s\n", software_version() );
>
> to provide the API version I am using. However my issue is actually
> directly linked to not being able to specify what version of the REST
> API I am using. My project uses Ensembl's REST API to build an FTP URL
> to then download from. Specifically, I use:
>
> https://rest.ensembl.org/documentation/info/species
>
> and
>
> http://rest.ensemblgenomes.org/info/genomes/division/{division}?content-type=application/json
> (replacing {division} with the division of Ensembl I am trying to
> access)
>
>  From that response, I use a few fields to construct the URL. For
> example consider this species:
>
> {
>      division: "Ensembl",
>      taxon_id: "7955",
>      name: "danio_rerio",
>      release: 92,
>      display_name: "Zebrafish",
>      accession: "GCA_000002035.4",
>      strain_collection: null,
>      common_name: "zebrafish",
>      strain: null,
>      aliases: [
>          "drer",
>          "danio rerio",
>          "d_rerio",
>          "danio",
>          "zebrafish",
>          "7955",
>          "danrer",
>          "drerio",
>          "zfish"
>      ],
>      groups: [
>          "core",
>          "otherfeatures",
>          "rnaseq",
>          "variation",
>          "funcgen"
>      ],
>      assembly: "GRCz11"
> }
>
> and its corresponding URLs for GTF and FASTA files:
> ftp://ftp.ensembl.org/pub/release-92/gtf/danio_rerio/Danio_rerio.GRCz11.92.gtf.gz
> ftp://ftp.ensembl.org/pub/release-92/fasta/danio_rerio/dna/Danio_rerio.GRCz11.dna.toplevel.fa.gz
>
> We use a few fields to do this, but as an example consider the
> `assembly` field. This field changed from `GRCz10` to `GRCz11` between
> release 91 and 92. Therefore the old URLs for the files I am
> interested in are:
>
> ftp://ftp.ensembl.org/pub/release-91/gtf/danio_rerio/Danio_rerio.GRCz10.91.gtf.gz
> ftp://ftp.ensembl.org/pub/release-91/fasta/danio_rerio/dna/Danio_rerio.GRCz10.dna.toplevel.fa.gz
>
> Since my code was trying to use release 91, but was receiving
> information about the species from the REST API regarding release 92,
> it generated the URLs:
>
> ftp://ftp.ensembl.org/pub/release-91/gtf/danio_rerio/Danio_rerio.GRCz11.91.gtf.gz
> ftp://ftp.ensembl.org/pub/release-91/fasta/danio_rerio/dna/Danio_rerio.GRCz11.dna.toplevel.fa.gz
>
> which do not exist. The REST API will only return information about
> the latest release, which means that until I update my Ensembl version
> to 92, my code breaks because the URL I build doesn't exist.
>
> The fact that it breaks my code is annoying, but still manageable.
> However what concerns me even more is that I think this endangers the
> reproducibility of data generated by my project. It is very important
> to my project that users be able to determine exactly what version of
> everything was used so that if anyone wants to check the validity of
> our work, we can tell them exactly how to replicate what we did. If
> the code we're using to build transcriptome indices breaks whenever a
> new Ensembl version is released, then any data we processed using
> those transcriptome indices cannot be replicated exactly because
> there's no way to make our code run with the old release of Ensembl.
>
> So to summarize, I am inquiring about the possibility of adding a
> `release` query parameter to the REST API. For my use case it would be
> sufficient to have it on the /info/species endpoint, but it seems like
> it would probably make sense API-wide.
>
> At the end of the day, we have figured out workarounds if this query
> parameter cannot be added so this isn't the end of the world. However
> I think that this feature seems like something that should be
> supported anyway.
>
> Thanks,
>
> - Kurt
> _______________________________________________
> Dev mailing list    Dev at ensembl.org
> Posting guidelines and subscribe/unsubscribe info: http://lists.ensembl.org/mailman/listinfo/dev
> Ensembl Blog: http://www.ensembl.info/




More information about the Dev mailing list