Skip to content

naturalis/biovel-nbc

Repository files navigation

biovel-nbc

Naturalis implementations of BioVeL services.

Contributors

  • Bachir Balech (bitbucket: bachirb)
  • Rutger Vos, @rvosa
  • Christian Brenninkmeijer, @Christian-B
  • Hannes Hettling, @hettling
  • David King, @DauvitKing

Aims

  • To develop command-line tools that merge data in a number of commonly-used phylogenetic file formats and export them as NeXML: the Merger service.
  • To develop command-line tools that extract objects from NeXML data: Taxa, Trees, Character matrices, all with metadata embedded: the Extractor service.
  • To wrap these tools inside Taverna-compatible RESTful services.
  • To publish these services on BiodiversityCatalogue.
  • To annotate these services according to BioVeL guidelines.

The Merger service

Inputs

  • Phylogenetic trees, in at least the following formats: Newick, NEXUS, PhyloXML, NeXML. There are two parameters for specifying trees, the location (trees={URL}),
    and the syntax format (treeformat={Newick|NEXUS|PhyloXML|NeXML}).
  • Alignments, in at least the following formats: PHYLIP, NEXUS, NeXML, FASTA. There are three parameters for each alignment file, the location (data={URL}), the syntax format (dataformat={PHYLIP|NEXUS|NeXML|FASTA}), and, optionally, the data type (datatype={dna|protein|standard}, default is dna).
  • Character sets, in text format, i.e. charsets={URL}, charsetformat={nexus|txt}.
  • Metadata in JSON or TSV syntax. i.e. meta={URL}, metaformat={JSON|TSV}. The first column of the metadata identifies which object is annotated. We can distinguish the following objects: TaxonID, AlignmentID, TreeID, NodeID, SiteID, CharacterID

Output

  • A NeXML document.

URL API

  • The service responds to HTTP GET requests, so all parameters are combined in the QUERY_STRING, with all "dangerous" characters URL-escaped.

The Extractor service

Inputs

  • NeXML file, whose location is specified as a URL, e.g. nexml={URL}
  • A parameter that specifies which objects to extract, e.g. objects={Taxa|Trees|Matrices|Charsets}
  • A parameter that specifies the output formats, treeformat={NEXUS|Newick|PhyloXML|NeXML}, dataformat={NEXUS|PHYLIP|FASTA|Stockholm}, metaformat={tsv|JSON|csv}, charsetformat={NEXUS|JSON}

Output

  • A subset of the NeXML data in the requested format, with a separate download of the metadata, likewise in the requested format.

Service deployment

We deploy the services as mod_perl handlers, which means that for synchronous services (i.e. everything is done in one request/response cycle) no forking is done at all. For asynchronous servers, the service class doesn't have to keep track of its session: the superclass keeps track of serializing and de-serializing the job object between requests.

To deploy the services, there is a puppet manifest that installs the dependencies and configures apache on a Vagrant box here: vm/manifests/default.pp, and for rackspace-hosted, default Ubuntu flavours here: vm/manifests/rackspace.pp

Links

Build status

Currently, the build status is: Build Status

About

Naturalis implementations of BioVeL services.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages