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
- 2,011