janis-pipelines


Namejanis-pipelines JSON
Version 0.13.1 PyPI version JSON
download
home_pagehttps://github.com/PMCC-BioinformaticsCore/janis
SummaryContains classes and helpers to build a workflow, and provide options to convert to CWL / WDL
upload_time2023-08-30 01:16:21
maintainer
docs_urlNone
authorMichael Franklin, Richard Lupat
requires_python
licenseGNU
keywords pipelines bioinformatics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Janis (janis-pipelines) (Alpha)


[![GitHub stars](https://img.shields.io/github/stars/PMCC-BioinformaticsCore/janis.svg?style=social)](https://github.com/PMCC-BioinformaticsCore/janis) [![Build Status](https://travis-ci.org/PMCC-BioinformaticsCore/janis.svg?branch=master)](https://travis-ci.org/PMCC-BioinformaticsCore/janis)  [![Documentation Status](https://readthedocs.org/projects/janis/badge/?version=latest)](https://janis.readthedocs.io/en/latest/?badge=latest)  [![PyPI version](https://badge.fury.io/py/janis-pipelines.svg)](https://badge.fury.io/py/janis-pipelines)  [![codecov](https://codecov.io/gh/PMCC-BioinformaticsCore/janis/branch/master/graph/badge.svg)](https://codecov.io/gh/PMCC-BioinformaticsCore/janis) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) [![Gitter chat](https://badges.gitter.im/janis-pipelines.png)](https://gitter.im/janis-pipelines/community)
  
_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](https://pypi.org/project/janis-pipelines/)):  
  
```bash
# 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](https://github.com/PMCC-BioinformaticsCore/janis) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.svg)](https://badge.fury.io/py/janis-pipelines) |
| [janis-assistant](https://github.com/PMCC-BioinformaticsCore/janis-assistant) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.runner.svg)](https://badge.fury.io/py/janis-pipelines.runner) |
| [janis-bioinformatics](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.bioinformatics.svg)](https://badge.fury.io/py/janis-pipelines.bioinformatics) |
| [janis-core](https://github.com/PMCC-BioinformaticsCore/janis-core) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.core.svg)](https://badge.fury.io/py/janis-pipelines.core) |
| [janis-pipelines](https://github.com/PMCC-BioinformaticsCore/janis-pipelines) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.pipelines.svg)](https://badge.fury.io/py/janis-pipelines.pipelines) |
| [janis-templates](https://github.com/PMCC-BioinformaticsCore/janis-templates) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.templates.svg)](https://badge.fury.io/py/janis-pipelines.templates) |
| [janis-unix](https://github.com/PMCC-BioinformaticsCore/janis-unix) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.unix.svg)](https://badge.fury.io/py/janis-pipelines.unix) |


### Example workflow

  
Let's construct a simple example that takes a string input, calls the 
[echo](https://janis.readthedocs.io/en/latest/tools/unix/echo.html) tool and exposes the 
Echo tool's output as a workflow output. 


  
```bash
# 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

- [Tutorial 0 - Introduction to Janis](https://janis.readthedocs.io/en/latest/tutorials/tutorial0.html)
- [Tutorial 1 - Building a workflow](https://janis.readthedocs.io/en/latest/tutorials/tutorial1.html)
- [Tutorial 2 - Wrapping a new tool](https://janis.readthedocs.io/en/latest/tutorials/tutorial2.html)


#### Workshops

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

- [Workshop 1](https://github.com/PMCC-BioinformaticsCore/janis-workshops/tree/master/workshop1)
- [Workshop 2](https://github.com/PMCC-BioinformaticsCore/janis-workshops/tree/master/workshop2)

### Examples

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

- [Samtools View](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics/blob/master/janis_bioinformatics/tools/samtools/view/base.py) ([Docs](https://janis.readthedocs.io/en/latest/tools/bioinformatics/samtools/samtoolsview.html))

- [WGS Germline pipeline (GATK Only)](https://github.com/PMCC-BioinformaticsCore/janis-pipelines/blob/master/janis_pipelines/wgs_germline_gatk/wgsgermlinegatk.py) ([Docs](https://janis.readthedocs.io/en/latest/pipelines/wgsgermlinegatk.html))


### Toolbox

There are two toolboxes currently available on Janis:

- [Unix](https://github.com/PMCC-BioinformaticsCore/janis-unix) ([list of tools](https://janis.readthedocs.io/en/latest/tools/bioinformatics/index.html))
- [Bioinformatics](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics) ([list of tools](https://janis.readthedocs.io/en/latest/tools/unix/index.html))



## About  
  
> _Further information_: [About](https://janis.readthedocs.io/en/latest/about.html)   
  
This project was produced as part of the Portable Pipelines Project in partnership with:    
- [Melbourne Bioinformatics (University of Melbourne) ](https://www.melbournebioinformatics.org.au/)    
- [Peter MacCallum Cancer Centre](https://www.petermac.org/)    
- [Walter and Eliza Hall Institute of Medical Research (WEHI) ](https://www.wehi.edu.au/)    

### 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](https://github.com/PMCC-BioinformaticsCore/janis/blob/master/CHANGELOG.md)
for more information.


### Contributions
  
> _Further information_: [Development](https://janis.readthedocs.io/en/latest/development/)  
  
To get help with Janis, please ask a question on [Gitter](ttps://gitter.im/janis-pipelines/community) or 
[raise an issue](https://github.com/PMCC-BioinformaticsCore/janis/issues) on GitHub.

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

- [Pipeline-bioinformatics](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics/issues)

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](https://github.com/PMCC-BioinformaticsCore/janis/issues) for Pipeline related issues.

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



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/PMCC-BioinformaticsCore/janis",
    "name": "janis-pipelines",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "pipelines,bioinformatics",
    "author": "Michael Franklin, Richard Lupat",
    "author_email": "michael.franklin@petermac.org",
    "download_url": "",
    "platform": null,
    "description": "# Janis (janis-pipelines) (Alpha)\n\n\n[![GitHub stars](https://img.shields.io/github/stars/PMCC-BioinformaticsCore/janis.svg?style=social)](https://github.com/PMCC-BioinformaticsCore/janis) [![Build Status](https://travis-ci.org/PMCC-BioinformaticsCore/janis.svg?branch=master)](https://travis-ci.org/PMCC-BioinformaticsCore/janis)  [![Documentation Status](https://readthedocs.org/projects/janis/badge/?version=latest)](https://janis.readthedocs.io/en/latest/?badge=latest)  [![PyPI version](https://badge.fury.io/py/janis-pipelines.svg)](https://badge.fury.io/py/janis-pipelines)  [![codecov](https://codecov.io/gh/PMCC-BioinformaticsCore/janis/branch/master/graph/badge.svg)](https://codecov.io/gh/PMCC-BioinformaticsCore/janis) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) [![Gitter chat](https://badges.gitter.im/janis-pipelines.png)](https://gitter.im/janis-pipelines/community)\n  \n_Janis is a framework creating specialised, simple workflow definitions that are then transpiled to   \nCommon Workflow Language or Workflow Definition Language._  \n  \nDocumentation is available here: https://janis.readthedocs.io/\n\n## Introduction  \n\n>| 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. |\n>|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n\n\nJanis gives you an API to build computational workflows and will generate\na workflow description in CWL (v1.2) and WDL (version development). By using Janis, \nyou get type-safety, portability and reproducibility across all of your execution environments.\n\n\nJanis requires a Python installation > 3.6, and can be installed through PIP \n([project page](https://pypi.org/project/janis-pipelines/)):  \n  \n```bash\n# Install janis and the toolkits\npip3 install janis-pipelines \n```\n\nThere are two ways to use Janis:\n\n- Build workflows (and translate to CWL / WDL)\n- Run tools or workflows with CWLTool or Cromwell\n\n### Latest versions\n\nCheck the table below for the latest released versions of Janis (`janis -v`):\n\n| Repository \t|   Version  \t|\n|------------\t|:----------:\t|\n| [Janis](https://github.com/PMCC-BioinformaticsCore/janis) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.svg)](https://badge.fury.io/py/janis-pipelines) |\n| [janis-assistant](https://github.com/PMCC-BioinformaticsCore/janis-assistant) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.runner.svg)](https://badge.fury.io/py/janis-pipelines.runner) |\n| [janis-bioinformatics](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.bioinformatics.svg)](https://badge.fury.io/py/janis-pipelines.bioinformatics) |\n| [janis-core](https://github.com/PMCC-BioinformaticsCore/janis-core) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.core.svg)](https://badge.fury.io/py/janis-pipelines.core) |\n| [janis-pipelines](https://github.com/PMCC-BioinformaticsCore/janis-pipelines) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.pipelines.svg)](https://badge.fury.io/py/janis-pipelines.pipelines) |\n| [janis-templates](https://github.com/PMCC-BioinformaticsCore/janis-templates) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.templates.svg)](https://badge.fury.io/py/janis-pipelines.templates) |\n| [janis-unix](https://github.com/PMCC-BioinformaticsCore/janis-unix) | [![PyPI version](https://badge.fury.io/py/janis-pipelines.unix.svg)](https://badge.fury.io/py/janis-pipelines.unix) |\n\n\n### Example workflow\n\n  \nLet's construct a simple example that takes a string input, calls the \n[echo](https://janis.readthedocs.io/en/latest/tools/unix/echo.html) tool and exposes the \nEcho tool's output as a workflow output. \n\n\n  \n```bash\n# write the workflow to `helloworld.py`\ncat <<EOT >> helloworld.py\nimport janis as j\nfrom janis_unix.tools import Echo\n\nw = j.WorkflowBuilder(\"hello_world\")\n\nw.input(\"input_to_print\", j.String)\nw.step(\"echo\", Echo(inp=w.input_to_print))\nw.output(\"echo_out\", source=w.echo.out)\nEOT\n\n\n# Translate workflow to WDL\njanis translate helloworld.py wdl\n\n# Run the workflow\njanis run -o helloworld-tutorial helloworld.py --input_to_print \"Hello, World!\"\n\n# See your output\ncat helloworld-tutorial/echo_out\n# Hello, World!\n```\n\n  \n### How to use Janis\n\n- [Tutorial 0 - Introduction to Janis](https://janis.readthedocs.io/en/latest/tutorials/tutorial0.html)\n- [Tutorial 1 - Building a workflow](https://janis.readthedocs.io/en/latest/tutorials/tutorial1.html)\n- [Tutorial 2 - Wrapping a new tool](https://janis.readthedocs.io/en/latest/tutorials/tutorial2.html)\n\n\n#### Workshops\n\nIn addition, there are fully self-guided workshops that more broadly go through the functionality of Janis:\n\n- [Workshop 1](https://github.com/PMCC-BioinformaticsCore/janis-workshops/tree/master/workshop1)\n- [Workshop 2](https://github.com/PMCC-BioinformaticsCore/janis-workshops/tree/master/workshop2)\n\n### Examples\n\nSometimes it's easier to learn by examples, here are a few hand picked examples:\n\n- [Samtools View](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics/blob/master/janis_bioinformatics/tools/samtools/view/base.py) ([Docs](https://janis.readthedocs.io/en/latest/tools/bioinformatics/samtools/samtoolsview.html))\n\n- [WGS Germline pipeline (GATK Only)](https://github.com/PMCC-BioinformaticsCore/janis-pipelines/blob/master/janis_pipelines/wgs_germline_gatk/wgsgermlinegatk.py) ([Docs](https://janis.readthedocs.io/en/latest/pipelines/wgsgermlinegatk.html))\n\n\n### Toolbox\n\nThere are two toolboxes currently available on Janis:\n\n- [Unix](https://github.com/PMCC-BioinformaticsCore/janis-unix) ([list of tools](https://janis.readthedocs.io/en/latest/tools/bioinformatics/index.html))\n- [Bioinformatics](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics) ([list of tools](https://janis.readthedocs.io/en/latest/tools/unix/index.html))\n\n\n\n## About  \n  \n> _Further information_: [About](https://janis.readthedocs.io/en/latest/about.html)   \n  \nThis project was produced as part of the Portable Pipelines Project in partnership with:    \n- [Melbourne Bioinformatics (University of Melbourne) ](https://www.melbournebioinformatics.org.au/)    \n- [Peter MacCallum Cancer Centre](https://www.petermac.org/)    \n- [Walter and Eliza Hall Institute of Medical Research (WEHI) ](https://www.wehi.edu.au/)    \n\n### References:\n\nThrough conference or talks, this project has been referenced by the following titles:\n\n- Walter and Eliza Hall Institute Talk (WEHI) 2019: _Portable Pipelines Project: Developing reproducible bioinformatics pipelines with standardised workflow languages_\n- Bioinformatics Open Source Conference (BOSC) 2019: _Janis: an open source tool to machine generate type-safe CWL and WDL workflows_\n- Victorian Cancer Bioinformatics Symposium (VCBS) 2019: _Developing portable variant calling pipelines with Janis_\n- GIW / ABACBS 2019: _Janis: A Python framework for Portable Pipelines_\n- Australian BioCommons, December 2019: _Portable pipelines: build once and run everywhere with Janis_\n  \n  \n## Support  \n\n### v0.9.0 Backwards Compatability\n\n**NOTE: Version 0.9.0 brings changes to output directories and camel case changes**\n\n- Janis watch will be incompatible with previously run workflows\n- Your configs might break, as previous versions of janis were not cautious about camel case.\n- Your templates might not work with unrecognised keys (try changing them to camel case instead)\n- Changes to BamBai indexes, format is now `.bam.bai`\n\nSee the [CHANGELOG](https://github.com/PMCC-BioinformaticsCore/janis/blob/master/CHANGELOG.md)\nfor more information.\n\n\n### Contributions\n  \n> _Further information_: [Development](https://janis.readthedocs.io/en/latest/development/)  \n  \nTo get help with Janis, please ask a question on [Gitter](ttps://gitter.im/janis-pipelines/community) or \n[raise an issue](https://github.com/PMCC-BioinformaticsCore/janis/issues) on GitHub.\n\nIf you find an issue with the tool definitions, please see the relevant issue page:\n\n- [Pipeline-bioinformatics](https://github.com/PMCC-BioinformaticsCore/janis-bioinformatics/issues)\n\nThis project is work-in-progress and is still in developments. Although we welcome contributions,\ndue to the immature state of this project we recommend raising issues through the\n[Github issues page](https://github.com/PMCC-BioinformaticsCore/janis/issues) for Pipeline related issues.\n\nInformation about the project structure and more on contributing can be found within the documentation.\n\n\n",
    "bugtrack_url": null,
    "license": "GNU",
    "summary": "Contains classes and helpers to build a workflow, and provide options to convert to CWL / WDL",
    "version": "0.13.1",
    "project_urls": {
        "Homepage": "https://github.com/PMCC-BioinformaticsCore/janis"
    },
    "split_keywords": [
        "pipelines",
        "bioinformatics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "42a7258e70bda523c8ef88752044198be477bd2adda703bd1c5ad6e60c0507f7",
                "md5": "fd513dce63baa58d6eeae910c46d3f4b",
                "sha256": "fa7fe6330f7b62e78f13a00a52f3245c35fcf21e895abf61f684b5d4e16d2ed9"
            },
            "downloads": -1,
            "filename": "janis_pipelines-0.13.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fd513dce63baa58d6eeae910c46d3f4b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 28615,
            "upload_time": "2023-08-30T01:16:21",
            "upload_time_iso_8601": "2023-08-30T01:16:21.188194Z",
            "url": "https://files.pythonhosted.org/packages/42/a7/258e70bda523c8ef88752044198be477bd2adda703bd1c5ad6e60c0507f7/janis_pipelines-0.13.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-30 01:16:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PMCC-BioinformaticsCore",
    "github_project": "janis",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "janis-pipelines"
}
        
Elapsed time: 0.10920s