| Literature DB >> 31328031 |
Justin Bedő1,2.
Abstract
Typical bioinformatics analyses comprise of long running computational workflows. An important part of reproducible research is the management and execution of these workflows to allow robust execution and to minimise errors. BioShake is an embedded domain specific language in Haskell for specifying and executing computational workflows for bioinformatics that significantly reduces the possibility of errors occurring. Unlike other workflow frameworks, BioShake raises many properties to the type level allowing the correctness of a workflow to be statically checked during compilation, catching errors before any lengthy execution process. BioShake builds on the Shake build tool to provide robust dependency tracking, parallel execution, reporting, and resumption capabilities. Finally, BioShake abstracts execution so that jobs can either be executed directly or submitted to a cluster. BioShake is available at http://github.com/PapenfussLab/bioshake.Entities:
Keywords: Bioinformatics; EDSL; Haskell; Reproducibility; Workflow
Year: 2019 PMID: 31328031 PMCID: PMC6625497 DOI: 10.7717/peerj.7223
Source DB: PubMed Journal: PeerJ ISSN: 2167-8359 Impact factor: 2.984
High level feature comparison of BioShake with other execution engines (Toil, Cromwell), specification languages (WDL, CWL), and DSLs (NextFlow, Snakemake).
Dashes indicate that feature is not applicable.
| Snakemake | NextFlow | Toil | Cromwell | WDL | CWL | BioShake | |
|---|---|---|---|---|---|---|---|
| DSL | ✓ | ✓ | – | – | ✓ | ✓ | |
| Embedded DSL | – | – | ✓ | ||||
| Python | ✓ | – | |||||
| Strong static typing | – | ✓ | |||||
| Type inferencing | – | ✓ | |||||
| Extrinsic specification | ✓ | – | ✓ | ||||
| Intrinsic specification | ✓ | ✓ | – | ✓ | ✓ | ✓ | |
| Functional language | – | ✓ | |||||
| Container integration | ✓ | ✓ | – | – | |||
| Cloud computing integration | ✓ | ✓ | ✓ | ✓ | – | – | |
| Cluster integration (Torque) | ✓ | ✓ | ✓ | ✓ | – | – | ✓ |
| Cluster integration (Slurm) | ✓ | ✓ | ✓ | ✓ | – | – | |
| Cluster integration (SGE) | ✓ | ✓ | ✓ | ✓ | – | – | |
| Cluster integration (LSF) | ✓ | ✓ | ✓ | – | – | ||
| Cluster integration DRMAA | ✓ | – | – | ||||
| Direct execution | ✓ | ✓ | ✓ | ✓ | – | – | ✓ |