3. Submission administration

Many bioinformatic tools provide several distinct usages. For instance, a program can be run using the command-line interface or by providing a configuration file. Otherwise, the same tool can be run on different computing infrastructures.

A submission is therefore the combination of a usage and a computing infrastructure.

Thus, a service can rely on different submissions.

3.1. Access submission

WAVES-core provides submission administration available within the back-office.

3.1.1. From the Services list

../../_images/service-submission.png

Each service item from the services list provides direct link to their related submissions.

3.1.2. From the Service details page

../../_images/service-submission-2.png

Here you can manage some parameters directly, or create a new submission for service.

Note

When creating a new submission, you must first click ‘Add another Submission method’, fill the label field, and click on ‘Save and continue editing’. After this operation, you can access submission details page with the “change” link provided in list.

Note

You can still list all submissions, from the main menu for the WAVES-core app admin main page.

../../_images/submission-list.png

3.2. Submission details

For each service, you can setup multiple ways to submit a job. For example, your service may have a ‘standard’ inputs list, and some ‘experts’ one for another type of jobs. Inputs in each submission configuration are not necessarily correlated.

For each ‘Submission configuration’, you can add, remove, order possible inputs.

Note

Note on ‘form’ api entry point : When calling service for loading submission form, returned content is not JSON but standard HTML document. It allows to retrieve the content of the form usually displayed in a web browser, in order to integrate the form in another page issued from any other system. Form is then submitted normally on the ‘Create a new job’ entry point.

3.2.1. General information

Some information are displayed, more for information than for modification, but you can set up related service, label, availability (API related) and app short code (depending on your profile).

../../_images/submission-general.png

Warning

  • Changing related service can have strange side effect, but could be useful sometime. Use it carefully.
  • Changing app short code change the final API uri for this submission. Once online, it could break your REST client.

3.2.2. Run configuration

General Use case

Most of the time, a ‘service’ needs only one ‘submission method’, defined to run ‘jobs’ on one single ‘computing infrastructure’. Once configured, service jobs submitted by users are sent to the computing infrastructure with specified run parameters and user inputs. The job is then monitored during its execution to check for its different status, once job finish its execution, WAVES-core system retrieve results and store them on the platform to be made available online (HTML page or REST api entries).

Sometime, administrators want to run one submission on different calculation devices, or with different default parameters, WAVES-core allows then to create more than one submission for a single service with different configuration available.

../../_images/service-submission-graph2.png

If you do so, after a save, you can access run configuration for this submission, exactly as seen in service execution configuration

../../_images/submission-run.png

3.3. Submission Inputs

The submission input panel shows all registered inputs.

You can modify some information on existing params directly in list. You can sort inputs by drag&drop on the left side.

../../_images/submission-params-1.png

3.3.1. Service input creation

Click on ‘Add another input’ to create a new input, it opens then a popup window to setup your new input.

In this first popup, you must choose type for your new submission input.

../../_images/submission-params-2.png

When type is selected, you enter the details information for your input. All inputs share the following information :

  • Label: displayed label for your input.

  • Name: the actual parameter name used in command line for job submission.

  • Command line format: to generate expected command line, you set here the parameter type:

    • Assigned named parameter: [name]=value
    • Named short parameter: -[name] value
    • Named assigned long parameter: –[name]=value
    • Named short option: -[name]
    • Named long option: –[name]
    • Positional parameter: value
    • Not used in command line: to set up a condition for other parameters, but not used in job command line.
  • Required: Set whether submission input is mandatory, optional, or not set by service user.

  • Help Text: Displayed on form to help user to set values.

  • Multiple: Set whether this input may hold multiple values (for example, multiple files inputs).

  • App short code: Set input short code for api submission (set up automatically if not filled).

  • Default value: The default value for this input.

Some other fields are displayed depending on input type.

3.3.2. Text input

  • Max Length: Set up max length allowed for this text input

    ../../_images/submission-params-3.png

3.3.3. File input

  • Allowed copy paste: Allow or not display in form, a Text field for copy/paste content added to upload file input
  • Allowed file size: Max allowed size for file input
  • Edam format(s): Input file EDAM ontology format
  • Edam data(s): Input fil EDAM ontology data type
  • Validation Regexp: For expert, set up a RegExp for validating file input names

File input adds another section where administrator can setup file sample that can be used in submission. Each Sample defines:

  • Label: A displayed label

  • Sample file: upload here sample file

    ../../_images/submission-params-4.png

3.3.4. Boolean input

  • True value: Used value when boolean is set to True, default is “True”

  • False value: Used value when boolean is set to False, default is “False”

    ../../_images/submission-params-5.png

3.3.5. Decimal parameter/Integer parameter

  • Min value: Set up min value expected for this input

  • Max value: Set up max value expected for this input

  • Step: For HTML5 navigator, set up step when using number input controls up and down

    ../../_images/submission-params-6.png

3.3.6. List parameter

  • List display mode: Set if list is displayed as a select box (default), check boxes, or radio buttons

  • Elements: Field where to specify list labels and values. One element per line, separated with | special character

    ../../_images/submission-params-7.png

3.3.7. Inputs dependencies

Sometime, your services may setup dependencies between inputs, for example, if you setup a service which use DNA or Protein substitution models, you may want to change these models upon selection of type of data.

So, to help you, WAVES-core allows to add “Related input” to a service input (down Service Input form part), where you can set exactly the same values as for a normal input, plus :

  • When condition : Activation value (from ‘parent’ Input), if parent is a list, correspond to selected value

Warning

Related inputs can’t be ‘mandatory’, because their submission is dependent on another one which is potentially not set

3.4. Submission Outputs

Along with your service inputs, you setup all expected outputs for each submission’s job.

A service output is defined by:

  • Label : The displayed name for your output

  • File Name or Pattern : output file name, may contain a ‘%s’ pattern referencing associated input value for creating file name

  • Extension : Expected file output extension

  • App short code: Set output short code for api output retrieval (automatically set if not filled)

  • Edam format: Output EDAM ontology format

  • Edam data: Output EDAM ontology data type

  • From Input : script uses some inputs values to setup outputs file names, set corresponding input here

  • Help Text : Associated text to output, may be displayed on job result page

    ../../_images/submission-output.png

3.5. Submission ExitCode

WAVES-core defines automatically the two exit codes “0” for normal process exit code, “1” for process error.

This is used in job run processing to declare a job as eventually successful or not

WAVES-core allows you to define more exit codes as needed by your script.

Here you can define:

  • Exit Code Value: expected exit code, should be an int value
  • Message: Exit code associated message, may be used on job result page.
  • Is and error: Set whether job is marked as ERROR if exit code is meet
../../_images/submission-exitcode.png