Package: janis-pipelines
Janis (janis-pipelines) (Alpha)Janis is a framework creating specialised, simple workflow definitions that are then transpiled toCommon Workflow Language or Workflow Definition Language.Documentation is available here:https://janis.readthedocs.io/IntroductionWARNING: 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 toolkitspip3installjanis-pipelinesThere are two ways to use Janis:Build workflows (and translate to CWL / WDL)Run tools or workflows with CWLTool or CromwellLatest versionsCheck the table below for the latest released versions of Janis (janis -v):RepositoryVersionJanisjanis-assistantjanis-bioinformaticsjanis-corejanis-pipelinesjanis-templatesjanis-unixExample workflowLet's construct a simple example that takes a string input, calls theechotool and exposes the
Echo tool's output as a workflow output.# write the workflow to `helloworld.py`cat<<EOT >> helloworld.pyimport janis as jfrom janis_unix.tools import Echow = 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 WDLjanistranslatehelloworld.pywdl# Run the workflowjanisrun-ohelloworld-tutorialhelloworld.py--input_to_print"Hello, World!"# See your outputcathelloworld-tutorial/echo_out# Hello, World!How to use JanisTutorial 0 - Introduction to JanisTutorial 1 - Building a workflowTutorial 2 - Wrapping a new toolWorkshopsIn addition, there are fully self-guided workshops that more broadly go through the functionality of Janis:Workshop 1Workshop 2ExamplesSometimes it's easier to learn by examples, here are a few hand picked examples:Samtools View(Docs)WGS Germline pipeline (GATK Only)(Docs)ToolboxThere are two toolboxes currently available on Janis:Unix(list of tools)Bioinformatics(list of tools)AboutFurther information:AboutThis project was produced as part of the Portable Pipelines Project in partnership with:Melbourne Bioinformatics (University of Melbourne)Peter MacCallum Cancer CentreWalter and Eliza Hall Institute of Medical Research (WEHI)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 languagesBioinformatics Open Source Conference (BOSC) 2019:Janis: an open source tool to machine generate type-safe CWL and WDL workflowsVictorian Cancer Bioinformatics Symposium (VCBS) 2019:Developing portable variant calling pipelines with JanisGIW / ABACBS 2019:Janis: A Python framework for Portable PipelinesAustralian BioCommons, December 2019:Portable pipelines: build once and run everywhere with JanisSupportv0.9.0 Backwards CompatabilityNOTE: Version 0.9.0 brings changes to output directories and camel case changesJanis watch will be incompatible with previously run workflowsYour 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.baiSee theCHANGELOGfor more information.ContributionsFurther information:DevelopmentTo get help with Janis, please ask a question onGitterorraise an issueon GitHub.If you find an issue with the tool definitions, please see the relevant issue page:Pipeline-bioinformaticsThis 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 theGithub issues pagefor Pipeline related issues.Information about the project structure and more on contributing can be found within the documentation.