The Designsafe catalog has several pre-built public applications (or “apps” for short) that are available to run right now. Each public application is tied to a public HPC system.


List applications

The apps-list command can be used to list all applications you have access to:

% apps-list
kallisto-0.43.1u1
msf-0.1.0u2
lcms-0.1.0u1
fcs-tasbe-0.1.0u1
sailfish-0.10.1u1

This can be modified with -P or -Q flags to show only public or private apps, respectively. Apps with a suffix of u1, u2, u3...etc are updates or revisions of previous apps.


Search for applications by name

Use the apps-search command to see if an app you are interested in is available in the Designsafe catalog:

% apps-search -h    # show syntax for searching
% apps-search public=true name.like=*kallisto*
kallisto-0.43.1u1

In this case, the apps-search command finds one match and returns the newest revision of the kallisto app.


Determine the application function

Many applications you will find in the catalog can be used in different ways. For example, depending on how kallisto is called on the command line, it can be used to build an index, quantify abundances of transcripts from RNA-Seq data, run a pseudoalignment, or convert HDF5-formatted results to plain text. It is up to the developer of the Designsafe app to decide which function(s) this particular instance of the app will perform, and to appropriately document it in the app description.

To see the app description, perform:

% apps-list -v kallisto-0.43.1u1

The output of this command is a json description of the app including metadata, inputs, parameters, and outputs.


The metadata section

The metadata section of the app json file includes information about the app availability, runtime resources required, description, and much more:

 "available": true,
 "checkpointable": false,
 "defaultMaxRunTime": "00:30:00",
 "defaultMemoryPerNode": 256,
 "defaultNodeCount": 1,
 "defaultProcessorsPerNode": 20,
 "defaultQueue": "normal",
 "deploymentPath": "/public-apps/kallisto-0.43.1u1.zip",
 "deploymentSystem": "data-sd2e-app-assets",
 "executionSystem": "hpc-tacc-maverick",
 "executionType": "HPC",
 "helpURI": "https://pachterlab.github.io/kallisto/",
 "icon": null,
 "id": "kallisto-0.43.1u1",
 "isPublic": true,
 "label": "Kallisto",
 "lastModified": "2017-09-29T11:38:43.000-05:00",
 "longDescription": "A program for quantifying abundances of transcripts from RNA-Seq data",
 "modules": [
     "load tacc-singularity"
 ],
 "name": "kallisto",
 "ontology": [
     "http://edamontology.org/operation_3800",
     "http://edamontology.org/topic_3053"
 ],
 "owner": "sd2eadm",
 "parallelism": "SERIAL",
 "revision": 1,
 "shortDescription": "Quantifies RNA-Seq transcripts",
 "tags": [
     "RNA-Seq",
     "Quantification",
     "Abundance"
 ],
 "templatePath": "kallisto.sh.template",
 "testPath": "kallisto-tester.sh",
 "uuid": "6351565997271150105-242ac115-0001-005",
 "version": "0.43.1"

Some key information in this section includes the identity of the HPC system (executionSystem) on which the app runs, which is hpc-tacc-maverick. Also, the longDescription suggests that the function of this particular app is to quantify abundances of transcripts from RNA-Seq data.


The inputs section

The inputs section describe what input data are required for running this app:

 "inputs": [
     {
         "details": {
             "argument": null,
             "description": "FASTA file of transcript sequences",
             "label": "transcripts",
             "repeatArgument": false,
             "showArgument": false
         },
         "id": "transcripts",
         "semantics": {
             "fileTypes": [
                 "raw-0"
             ],
             "maxCardinality": 1,
             "minCardinality": 1,
             "ontology": [
                 "http://edamontology.org/format_1929"
             ]
         },
         "value": {
             "default": "",
             "enquote": false,
             "order": 0,
             "required": true,
             "validator": null,
             "visible": true
         }
     },
     {
         "details": {
             "argument": null,
             "description": null,
             "label": "First reads file of a FASTQ pair (or single)",
             "repeatArgument": false,
             "showArgument": false
         },
         "id": "fastq1",
         "semantics": {
             "fileTypes": [
                 "raw-0"
             ],
             "maxCardinality": 1,
             "minCardinality": 1,
             "ontology": [
                 "http://edamontology.org/format_1930"
             ]
         },
         "value": {
             "default": "read1.fastq",
             "enquote": false,
             "order": 0,
             "required": true,
             "validator": null,
             "visible": true
         }
     },
     {
         "details": {
             "argument": null,
             "description": null,
             "label": "Second reads file of a FASTQ pair",
             "repeatArgument": false,
             "showArgument": false
         },
         "id": "fastq2",
         "semantics": {
             "fileTypes": [
                 "raw-0"
             ],
             "maxCardinality": 1,
             "minCardinality": 1,
             "ontology": [
                 "hhttp://edamontology.org/format_1930"
             ]
         },
         "value": {
             "default": "",
             "enquote": false,
             "order": 0,
             "required": true,
             "validator": null,
             "visible": true
         }
     }
 ],

It appears this app is expecting three files as inputs, identified by the id field: transcripts, fastq1, and fastq2. Each has a short description, and all three are required to run this app.


The parameters section

Next, inspect the parameters section of the app json file:

 "parameters": [
     {
         "details": {
             "argument": "-b ",
             "description": "Number of bootstrap samples (default: 0)",
             "label": "bootstrap",
             "repeatArgument": false,
             "showArgument": true
         },
         "id": "bootstrap",
         "semantics": {
             "maxCardinality": 1,
             "minCardinality": 0,
             "ontology": [
                 "xs:integer"
             ]
         },
         "value": {
             "default": 0,
             "enquote": false,
             "order": 0,
             "required": false,
             "type": "number",
             "validator": "",
             "visible": true
         }
     },
     {
         "details": {
             "argument": "--seed=",
             "description": "Seed for the bootstrap sampling (default: 42)",
             "label": "seed",
             "repeatArgument": false,
             "showArgument": true
         },
         "id": "seed",
         "semantics": {
             "maxCardinality": 1,
             "minCardinality": 0,
             "ontology": [
                 "xs:integer"
             ]
         },
         "value": {
             "default": 42,
             "enquote": false,
             "order": 0,
             "required": false,
             "type": "number",
             "validator": "",
             "visible": true
         }
     },
     {
         "details": {
             "argument": "-o ",
             "description": "Output directory name",
             "label": "output",
             "repeatArgument": false,
             "showArgument": true
         },
         "id": "output",
         "semantics": {
             "maxCardinality": 1,
             "minCardinality": 1,
             "ontology": [
                 "xs:string"
             ]
         },
         "value": {
             "default": "output",
             "enquote": false,
             "order": 1,
             "required": true,
             "type": "string",
             "validator": "",
             "visible": true
         }
     }
 ],

It is also expecting three parameters, identified by the id field: bootstrap, seed, and output. This time, only the output parameter is requried. The purpose and acceptable values for each parameter are provided in the description.


The outputs section

The last remaining section is the outputs section:

 "outputs": [
     {
         "details": {
             "description": null,
             "label": "Abundances tabular file"
         },
         "id": "abundance",
         "semantics": {
             "fileTypes": [],
             "maxCardinality": 1,
             "minCardinality": 1,
             "ontology": [
                 "http://edamontology.org/format_3475"
             ]
         },
         "value": {
             "default": "output/abundance.tsv",
             "order": 0,
             "validator": null
         }
     },
     {
         "details": {
             "description": null,
             "label": "Metadata about the Kallisto run"
         },
         "id": "run_info",
         "semantics": {
             "fileTypes": [],
             "maxCardinality": 1,
             "minCardinality": 1,
             "ontology": [
                 "http://edamontology.org/format_3464"
             ]
         },
         "value": {
             "default": "output/run_info.json",
             "order": 0,
             "validator": null
         }
     }
 ],

Here, we see two outputs are created when running this app: abundance and run_info. Neither must be specified by the user, as they are output by default. However, this is an important clue (along with the inputs, parameters, and app description) to indicate what is the function of this app.

Once the appropriate app has been identified, the next steps are to stage the input data, and to prepare and submit a job.


Return to the API Documentation Overview