Skip to content

Service description should allow 'expected outputs' to be reported #157

@foreveremain

Description

@foreveremain

Slivka 0.8.3 services do not report what results might be generated, only what files are required:
https://www.compbio.dundee.ac.uk/slivka/api/services/msaprobs

{
  "@url": "/slivka/api/services/msaprobs",
  "author": "Jorge González-Domı́nguez, Yongchao Liu, Juan Touriño, Bertil Schmidt",
  "classifiers": [
    "Topic :: Computational biology :: Sequence analysis",
    "Operation :: Analysis :: Sequence analysis :: Sequence alignment :: Multiple sequence alignment"
  ],
  "description": "MSAProbs is a well-established state-of-the-art multiple sequence alignment algorithm for protein sequences. The design of MSAProbs is based on a combination of pair hidden Markov models and partition functions to calculate posterior probabilities.",
  "id": "msaprobs",
  "license": "GNU GPL ver. 3",
  "name": "MSAProbs",
  "parameters": [
    {
      "array": false,
      "default": null,
      "description": "",
      "id": "input",
      "mediaType": "application/fasta",
      "mediaTypeParameters": {

      },
      "mimetype": "application/fasta",
      "name": "Input file",
      "required": true,
      "type": "file"
    },
    {
      "array": false,
      "default": 2,
      "description": "Number of passes of consistency transformation.",
      "id": "consistency",
      "max": 5,
      "min": 0,
      "name": "Consistency repetitions",
      "required": false,
      "type": "integer"
    },
    {
      "array": false,
      "default": 10,
      "description": "Number of iterative refinement passes.",
      "id": "iterative-refinement",
      "max": 1000,
      "min": 0,
      "name": "Interative refinaement",
      "required": false,
      "type": "integer"
    }
  ],
  "presets": [],
  "status": {
    "errorMessage": "",
    "status": "OK",
    "timestamp": "2025-07-15T16:36:19"
  },
  "version": "0.9.7"
}

Without some indication of expected outputs, it means the client has to know what outputs to expect itself in order to use the service. Whilst this works, it means a client needs to run a service in order to discover what outputs are supported (and so learn its operational pattern). It would be better to report expected outputs directly:

"outputs": {
  "alignment":
    { "media-type": "application/fasta" }
  "log":
    {"media-type": "text/plain"}
  "error-log":
    {"media-type": "text/plain"}
 }

The outputs hash is simply the named outputs in the service definition without any 'path' or other internal attributes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureAll additional feature requests

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions