Skip to main content

Contains classes and helpers to build a workflow, and provide options to convert to CWL / WDL

Project description

Janis (Pre-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 hosted here: https://janis.readthedocs.io/

v0.6.0 Backwards Compatability

NOTE: Version 0.6.0 brings large changes to simplify the workflow API.

See the example below to see how this new syntax works. Instead of creating input nodes and adding them to the graph, you add an input / output / step to the graph, and map the connections within the Step.

Inline workflows are now creating with the WorkflowBuilder class.

w.step("step_tag", Echo(inp=w.input_tag))

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 and WDL. 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 bioinformatics tools
pip3 install janis-pipelines 

You can import Janis into your project with:

import janis as j  

Example

Below we've constructed a simple example that takes a string input, calls the echo tool and exposes the Echo tool's output as a workflow output.

import janis as j
from janis.tools import Echo

w = j.WorkflowBuilder("workflowId")

w.input("inputIdentifier", j.String, default="Hello, World!")
w.step("stepIdentifier", Echo(inp=w.inputIdentifier))
w.output("outputIdentifier", source=w.stepIdentifier.out)

# Will print the CWL, input file and relevant tools to the console
w.translate("cwl", to_disk=False)  # or "wdl"

We can export a CWL representation to the console using .translate("cwl"). By including the to_disk=True parameter, we can write this workflow to disk at the current location.

More examples

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

Support

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

janis pipelines-0.7.1.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

janis_pipelines-0.7.1-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file janis pipelines-0.7.1.tar.gz.

File metadata

  • Download URL: janis pipelines-0.7.1.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.7

File hashes

Hashes for janis pipelines-0.7.1.tar.gz
Algorithm Hash digest
SHA256 ba8d94245514036b536acf919c3585d280236152aef257c6e0841aec97b0adf5
MD5 c939635895a8934a0cf02ec190209f52
BLAKE2b-256 6b389bed4af5c47cbe2ab3789d88229a1a3e0acfe98bb463ed476c5dc7103f79

See more details on using hashes here.

File details

Details for the file janis_pipelines-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: janis_pipelines-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 23.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.7

File hashes

Hashes for janis_pipelines-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 92d5d89734cc457717a12d41026870eec1b3c44bccaae3741cfc246e15597ff1
MD5 2fc1027d5671abc9050d518abf127a5e
BLAKE2b-256 3d089526b0ff954c606120619bc0fb25df367dca86b063d30bc10f37f369a40f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page