Welcome to Janis!

GitHub stars Travis Build Status Documentation Pypi module Code Coverage Gitter chat

Note

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 is a framework creating specialised, simple workflow definitions that are then transpiled to Common Workflow Language or Workflow Definition Language.

It was developed as part of the Portable Pipelines Project, a collaboration between:

Introduction

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

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

pip3 install janis-pipelines

There are two ways to use Janis:

  • Build workflows (and translate to CWL (v1.2) / WDL (version development) / Nextflow (in-progress))
  • Run tools or workflows with CWLTool, Cromwell, or Nextflow (in progress)

Example Workflow

# 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!

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:

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

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.

Contents

Indices and tables