Reproducible Research using Research Objects

Mark Robinson

Supervisor: Carole Goble

My Project

Develop a web application to visualise, package and share CWL workflows

Expresses Workflows

Container format

with metadata

Project Aims

Allow CWL workflows to be visualised to aid understanding as to what their purpose is quickly

Enable easier sharing of workflows to aid reproducible research

Challenges

Trying to tie together new and relatively unexplored technologies

Parsing CWL, a language designed to be written by hand (so has a lot of ambiguity)

Linked data and strategies for efficiently linking, summarising and consuming it

Methodology

Agile!

Feedback

Consistent feedback from CWL community on features and bugs found

Has been used to visualise workflows from:

and more!

In the form of direct chat and Github issues

Open Source

Easy to run and make changes - MVC web application and configuration documented on Github

 

The spirit of reproducible research is sharing!

Responsive Design

 

Project Aims

Allow CWL workflows to be visualised to aid understanding as to what their purpose is quickly

#!/usr/bin/env cwl-runner
cwlVersion: "cwl:draft-3"

class: Workflow

inputs:
  - id: p1
    type:
      - "null"
      - type: array
        items: File
    description: list of files containing the first end of paired end reads in fasta or fastq format

  - id: p2
    type:
      - "null"
      - type: array
        items: File
    description: list of files containing the second end of paired end reads in fasta or fastq format

  - id: output_prefix
    type: string
    description: prefix for output files. will output prefix.aligned.bam and prefix.aligned.stats

  - id: reference
    type: File
    description: "lobSTR's bwa reference files"

  - id: rg-sample
    type: string
    description: Use this in the read group SM tag

  - id: rg-lib
    type: string
    description: Use this in the read group LB tag

  - id: strinfo
    type: File
    description: File containing statistics for each STR.

  - id: noise_model
    type: File
    description: File to read noise model parameters from (.stepmodel)
    secondaryFiles:
      - "^.stuttermodel"

outputs:
  - id: bam
    type: File
    source: "#samindex/bam_with_bai"

  - id: bam_stats
    type: File
    source: "#lobSTR/bam_stats"

  - id: vcf
    type: File
    source: "#allelotype/vcf"

  - id: vcf_stats
    type: File
    source: "#allelotype/vcf_stats"

hints:
  - class: DockerRequirement
    dockerLoad: https://workbench.qr1hi.arvadosapi.com/collections/download/qr1hi-4zz18-x2ae13tsx5jqg8d/1nduktd8dpvhdpgsva82lje0i710kgzb6rttks5jldx7s2y7k9/7e0c0ae3bf4e70442f9b8eee816ec23426d9e1169a2925316e5c932745e21613.tar
    dockerImageId: 7e0c0ae3bf4e70442f9b8eee816ec23426d9e1169a2925316e5c932745e21613

steps:
  - id: lobSTR
    run: lobSTR-tool.cwl
    inputs:
      - { id: p1, source: "#p1" }
      - { id: p2, source: "#p2" }
      - { id: output_prefix, source: "#output_prefix" }
      - { id: reference, source: "#reference" }
      - { id: rg-sample, source: "#rg-sample" }
      - { id: rg-lib, source: "#rg-lib" }
    outputs:
      - { id: bam }
      - { id: bam_stats }

  - id: samsort
    run: samtools-sort.cwl
    inputs:
      - { id: input, source: "#lobSTR/bam" }
      - { id: output_name, default: "aligned.sorted.bam" }
    outputs:
      - { id: output_file }

  - id: samindex
    run: samtools-index.cwl
    inputs:
      - { id: input, source: "#samsort/output_file" }
    outputs:
      - { id: bam_with_bai }

  - id: allelotype
    run: allelotype.cwl
    inputs:
      - { id: bam, source: "#samindex/bam_with_bai" }
      - { id: reference, source: "#reference" }
      - { id: output_prefix, source: "#output_prefix" }
      - { id: noise_model, source: "#noise_model" }
      - { id: strinfo, source: "#strinfo" }
    outputs:
      - { id: vcf }
      - { id: vcf_stats }

Project Aims

Enable easier sharing of workflows to aid reproducible research

  • Descriptive and permanent URLs
  • Downloadable workflow graphs

compile.svg

  • Downloadable workflow as a Research Object Bundle (.zip with useful metadata)
{
  "@context" : [ "https://w3id.org/bundle/context" ],
  "id" : "/",
  "manifest" : [ "manifest.json" ],
  "createdOn" : "2017-02-27T11:48:54.986Z",
  "createdBy" : {
    "uri" : "http://view.commonwl.org",
    "name" : "Common Workflow Language Viewer"
  },
  "authoredBy" : [ {
    "uri" : "https://github.com/grbot",
    "name" : "Gerrit Botha"
  }, {
    "uri" : "https://github.com/mr-c",
    "name" : "Michael R. Crusoe"
  }, {
    "name" : "Ubuntu"
  }, {
    "uri" : "https://github.com/mepstein-gh",
    "name" : "Milt Epstein"
  }, {
    "uri" : "https://github.com/ShakunBaichoo",
    "name" : "ShakunBaichoo"
  } ],
  "importedFrom" : "https://github.com/h3abionet/h3abionet16S/tree/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows",
  "importedOn" : "2017-02-27T11:48:54.986Z",
  "importedBy" : {
    "uri" : "http://view.commonwl.org",
    "name" : "Common Workflow Language Viewer"
  },
  "aggregates" : [ {
    "uri" : "/workflow/completeWorkflow.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:55.21Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mr-c",
      "name" : "Michael R. Crusoe"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/completeWorkflow.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:fbc4f48a-b111-4e1b-b6b9-d6a97c7c7f90",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/concatFasta.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:55.406Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/concatFasta.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:a9576413-03e7-42c1-8a78-0bcc888fbe2b",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/fastqc.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:55.545Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/fastqc.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:6a1a449c-d577-4d8c-9810-e919a7df79ab",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/generateRReports.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:55.701Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/generateRReports.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:e44f044a-b30a-4669-b1db-f06504db5752",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeAddMetadata.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:55.85Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeAddMetadata.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:bd30d107-7e4f-4f1d-b54d-6537b6756482",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeAlignSeqs.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:56.007Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeAlignSeqs.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:3630c7e2-0f81-4ca1-8992-78fa7206dab2",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeAssignTaxonomy.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:56.198Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeAssignTaxonomy.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:78d24ee4-a936-4b53-87e1-a0663f2540f4",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeFilterAlign.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:56.34Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeFilterAlign.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:06239baa-761c-40e9-bc31-c6646f6ccfe7",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeMakePhylogeny.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:56.544Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeMakePhylogeny.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:ac75b37c-322f-4277-adf0-755fe4d30334",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeOtusTxt2Biom.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:56.746Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeOtusTxt2Biom.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:ed3b2548-6749-420b-8f01-8b2084c90e9a",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeSummaryObservations.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:56.895Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeSummaryObservations.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:a8875d98-d43e-44b2-a290-fdb2f2e7b01e",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/qiimeSummaryQualitative.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:57.033Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/qiimeSummaryQualitative.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:412306bb-419f-46f2-a279-85ec98526ab2",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/readPair.yml",
    "mediatype" : "application/octet-stream",
    "createdOn" : "2017-02-27T11:48:57.835Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mr-c",
      "name" : "Michael R. Crusoe"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/readPair.yml",
    "bundledAs" : {
      "uri" : "urn:uuid:3f3681b9-03a8-45ea-b278-ee59223813bc",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseChimeraCheck.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:57.98Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseChimeraCheck.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:1a848cc0-f942-407f-a23f-5654c4f9fa43",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseDerepWorkAround.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:58.113Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseDerepWorkAround.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:2b551c93-b5e2-498c-9aba-a4fce586ffdd",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseFastqMerge.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:58.243Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseFastqMerge.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:282307ca-cc45-4dcb-afdd-9b94183ccc25",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseFilter.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:58.432Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseFilter.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:dcdbf23f-7cb4-4214-9162-29ddcaf13d37",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseGlobalSearchWorkAround.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:58.573Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseGlobalSearchWorkAround.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:9c80cc34-2671-4686-b0cd-f230d3a55d80",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseOTUPick.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:58.741Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseOTUPick.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:63bbbd02-61dc-4797-b791-245a8a0970a6",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseOtuToTab.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:59.01Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseOtuToTab.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:a1572a54-0bc7-4fac-b1d9-107bfc9ed22f",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseRenameFastQ.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:59.146Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mr-c",
      "name" : "Michael R. Crusoe"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseRenameFastQ.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:2cce884a-8b97-41a0-9db5-8a1099561406",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseRenameOTUs.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:59.303Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseRenameOTUs.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:8f1ef90e-5d98-4cea-9a14-cae28ccc8489",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseRenameWithMetadata.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:59.456Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mr-c",
      "name" : "Michael R. Crusoe"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseRenameWithMetadata.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:9658c5e4-6ec5-48bf-b3d2-c9fb0dcef87c",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseSort.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:59.598Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "uri" : "https://github.com/mepstein-gh",
      "name" : "Milt Epstein"
    }, {
      "uri" : "https://github.com/ShakunBaichoo",
      "name" : "ShakunBaichoo"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseSort.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:8be968a6-a678-43d2-8a39-bfbf29a19451",
      "folder" : "/workflow/"
    }
  }, {
    "uri" : "/workflow/uparseTruncateLength.cwl",
    "mediatype" : "text/x-yaml",
    "createdOn" : "2017-02-27T11:48:59.814Z",
    "authoredBy" : [ {
      "uri" : "https://github.com/grbot",
      "name" : "Gerrit Botha"
    }, {
      "name" : "Ubuntu"
    } ],
    "retrievedFrom" : "https://github.com/h3abionet/h3abionet16S/blob/70498847fd6bfc63f44c59c748233cac7f8dd85d/workflows/uparseTruncateLength.cwl",
    "conformsTo" : "https://w3id.org/cwl/v1.0",
    "bundledAs" : {
      "uri" : "urn:uuid:4ab00aca-93dd-4006-adc4-7565ac4e3f20",
      "folder" : "/workflow/"
    }
  } ]
}
bundle.zip
├── mimetype
├── .ro
│   └── manifest.json
└── workflow
    ├── completeWorkflow.cwl
    ├── concatFasta.cwl
    ├── fastqc.cwl
    ├── generateRReports.cwl
    ├── qiimeAddMetadata.cwl
    ├── readPair.yml
    ├── uparseChimeraCheck.cwl
    ├── uparseDerepWorkAround.cwl
    ├── uparseFastqMerge.cwl
    ├── uparseFilter.cwl
    └── uparseTruncateLength.cwl

Project Aims

Allow the discovery of CWL workflows from different authors

  • Gallery page which lists previously added workflows

Future Enhancements

Support for linked nested workflows

(Almost done, should be in production before code freeze)

Support for viewing command line tools

(Similar to workflows but have additional considerations eg InputBinding/Commands)

Expansion of sources for workflows (Gitlab, zip folders etc)

(Existing application is designed with this in mind)

Login with private workflow support

(Proprietary organisations don't want to share! Though this is not a priority as we want to encourage it especially in research)

(Partially done yesterday, added support for private repos when running their own instance)

Any Questions?

Third Year Project Demonstration

By Mark Robinson

Third Year Project Demonstration

  • 1,914