PMCC-BioinformaticsCore / janis

Licence: GPL-3.0 license
[Alpha] Janis: an open source tool to machine generate type-safe CWL and WDL workflows

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
shell
77523 projects

Projects that are alternatives of or similar to janis

workflows
Bioinformatics workflows developed for and used on the St. Jude Cloud project.
Stars: ✭ 16 (-54.29%)
Mutual labels:  cwl
tool-registry-service-schemas
APIs for discovering genomics tools, their metadata and their containers
Stars: ✭ 27 (-22.86%)
Mutual labels:  cwl
dxWDL
Workflow Description Language compiler for the DNAnexus platform
Stars: ✭ 39 (+11.43%)
Mutual labels:  workflow-description-language
dockstore
Our VM/Docker sharing infrastructure and management component
Stars: ✭ 99 (+182.86%)
Mutual labels:  cwl
wdl2cwl
[Experimental] Workflow Definition Language (WDL) to CWL
Stars: ✭ 26 (-25.71%)
Mutual labels:  cwl
cwlexec
A new open source tool to run CWL workflows on LSF
Stars: ✭ 34 (-2.86%)
Mutual labels:  cwl
user guide
The CWL v1.0 user guide
Stars: ✭ 20 (-42.86%)
Mutual labels:  cwl
reana
REANA: Reusable research data analysis platform
Stars: ✭ 86 (+145.71%)
Mutual labels:  cwl
benten
A language server for Common Workflow Language
Stars: ✭ 50 (+42.86%)
Mutual labels:  cwl
dxCompiler
WDL and CWL compiler for the DNAnexus platform
Stars: ✭ 15 (-57.14%)
Mutual labels:  cwl
tibanna
Tibanna helps you run your genomic pipelines on Amazon cloud (AWS). It is used by the 4DN DCIC (4D Nucleome Data Coordination and Integration Center) to process data. Tibanna supports CWL/WDL (w/ docker), Snakemake (w/ conda) and custom Docker/shell command.
Stars: ✭ 61 (+74.29%)
Mutual labels:  cwl
hotsub
Command line tool to run batch jobs concurrently with ETL framework on AWS or other cloud computing resources
Stars: ✭ 29 (-17.14%)
Mutual labels:  cwl
cwl-ts
Typescript data model for Common Workflow Language
Stars: ✭ 42 (+20%)
Mutual labels:  cwl
VIRTUS
A bioinformatics pipeline for viral transcriptome detection and quantification considering splicing.
Stars: ✭ 28 (-20%)
Mutual labels:  cwl
emg-viral-pipeline
VIRify: detection of phages and eukaryotic viruses from metagenomic and metatranscriptomic assemblies
Stars: ✭ 38 (+8.57%)
Mutual labels:  cwl
ipython2cwl
IPython2CWL is a tool for converting IPython Jupyter Notebooks to CWL Command Line Tools by simply providing typing annotation.
Stars: ✭ 15 (-57.14%)
Mutual labels:  cwl
scriptcwl
Create cwl workflows by writing a simple Python script
Stars: ✭ 40 (+14.29%)
Mutual labels:  cwl
GGR-cwl
CWL tools and workflows for GGR
Stars: ✭ 20 (-42.86%)
Mutual labels:  cwl

Janis (janis-pipelines) (Alpha)

GitHub stars Build Status Documentation Status PyPI version codecov Code style: black Gitter chat

Janis is a framework creating specialised, simple workflow definitions that are then transpiled to
Common Workflow Language or Workflow Definition Language.

Documentation is available here: https://janis.readthedocs.io/

Introduction

WARNING: this project is work-in-progress and is provided as-is without warranty of any kind. There may be breaking changes committed to this repository without notice.

Janis gives you an API to build computational workflows and will generate a workflow description in CWL (v1.2) and WDL (version development). By using Janis, you get type-safety, portability and reproducibility across all of your execution environments.

Janis requires a Python installation > 3.6, and can be installed through PIP (project page):

# Install janis and the toolkits
pip3 install janis-pipelines 

There are two ways to use Janis:

  • Build workflows (and translate to CWL / WDL)
  • Run tools or workflows with CWLTool or Cromwell

Latest versions

Check the table below for the latest released versions of Janis (janis -v):

Repository Version
Janis PyPI version
janis-assistant PyPI version
janis-bioinformatics PyPI version
janis-core PyPI version
janis-pipelines PyPI version
janis-templates PyPI version
janis-unix PyPI version

Example workflow

Let's construct a simple example that takes a string input, calls the echo tool and exposes the Echo tool's output as a workflow output.

# write the workflow to `helloworld.py`
cat <<EOT >> helloworld.py
import janis as j
from janis_unix.tools import Echo

w = j.WorkflowBuilder("hello_world")

w.input("input_to_print", j.String)
w.step("echo", Echo(inp=w.input_to_print))
w.output("echo_out", source=w.echo.out)
EOT


# Translate workflow to WDL
janis translate helloworld.py wdl

# Run the workflow
janis run -o helloworld-tutorial helloworld.py --input_to_print "Hello, World!"

# See your output
cat helloworld-tutorial/echo_out
# Hello, World!

How to use Janis

Workshops

In addition, there are fully self-guided workshops that more broadly go through the functionality of Janis:

Examples

Sometimes it's easier to learn by examples, here are a few hand picked examples:

Toolbox

There are two toolboxes currently available on Janis:

About

Further information: About

This project was produced as part of the Portable Pipelines Project in partnership with:

References:

Through conference or talks, this project has been referenced by the following titles:

  • Walter and Eliza Hall Institute Talk (WEHI) 2019: Portable Pipelines Project: Developing reproducible bioinformatics pipelines with standardised workflow languages
  • Bioinformatics Open Source Conference (BOSC) 2019: Janis: an open source tool to machine generate type-safe CWL and WDL workflows
  • Victorian Cancer Bioinformatics Symposium (VCBS) 2019: Developing portable variant calling pipelines with Janis
  • GIW / ABACBS 2019: Janis: A Python framework for Portable Pipelines
  • Australian BioCommons, December 2019: Portable pipelines: build once and run everywhere with Janis

Support

v0.9.0 Backwards Compatability

NOTE: Version 0.9.0 brings changes to output directories and camel case changes

  • Janis watch will be incompatible with previously run workflows
  • Your configs might break, as previous versions of janis were not cautious about camel case.
  • Your templates might not work with unrecognised keys (try changing them to camel case instead)
  • Changes to BamBai indexes, format is now .bam.bai

See the CHANGELOG for more information.

Contributions

Further information: Development

To get help with Janis, please ask a question on Gitter or raise an issue on GitHub.

If you find an issue with the tool definitions, please see the relevant issue page:

This project is work-in-progress and is still in developments. Although we welcome contributions, due to the immature state of this project we recommend raising issues through the Github issues page for Pipeline related issues.

Information about the project structure and more on contributing can be found within the documentation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].