Command-line utilities to assist in developing tools for the Galaxy Project.
Python Common Workflow Language JavaScript HTML Shell Makefile Other
Clone or download
bgruening Merge pull request #860 from galaxyproject/name-test-hist
Allow naming history from command line
Latest commit e52e5d3 Aug 4, 2018
Permalink
Failed to load latest commit information.
cwl-runner Small tweaks to daemon startup fixes for Galaxy. Jan 24, 2018
docs Still broken :( Jun 11, 2018
planemo Allow naming history from command line Aug 3, 2018
planemo_ext Update to latest tool factory external. Sep 21, 2016
project_templates Hyperlink DOIs against preferred resolver May 30, 2018
scripts Support testing a completely remote galaxy instance Jul 6, 2018
tests Hyperlink DOIs against preferred resolver May 30, 2018
.coveragerc Try to fix coverage config? May 15, 2018
.editorconfig Initial commit. Oct 5, 2014
.gitignore Some helper Makefile cruft for Python 3. May 15, 2018
.gitmodules Just copy Galaxy's XSD - we will find a different way to keep insync. Sep 16, 2016
.travis.yml More work on doc tests. May 25, 2018
CODE_OF_CONDUCT.rst Adopt Galaxy's Code of Conduct. Oct 7, 2015
CONTRIBUTING.rst Drop support for Python 2.6. Mar 29, 2016
HISTORY.rst Starting work on 0.55.0 Jun 6, 2018
Jenkinsfile More Jenkinsfile testing. May 25, 2018
LICENSE Update LICENSE for Planemo to match Galaxy. Dec 21, 2015
MANIFEST.in Fix MANIFEST.in entry that was migrated to galaxy-lib. Mar 15, 2017
Makefile Doc and CWL improvements for another pass documentation. May 22, 2018
README.rst Add badge for extended Planemo tests. May 29, 2018
dev-requirements.txt Doc and CWL improvements for another pass documentation. May 22, 2018
requirements.txt Tests for collection inputs to workflows. May 23, 2018
setup.cfg Default (overrideable) external Galaxies to not use path pasting. May 14, 2018
setup.py fix- pip ignores bioconda_scripts Dec 28, 2016
tox.ini More work on doc tests. May 25, 2018

README.rst

Planemo Logo

Command-line utilities to assist in developing Galaxy and Common Workflow Language tools.

Documentation Status Planemo on the Python Package Index (PyPI) Build Status Build Status of Extended Tests Coverage Status

Quick Start

Obtaining

For a traditional Python installation of Planemo, first set up a virtualenv for planemo (this example creates a new one in .venv) and then install with pip. Planemo requires pip 7.0 or newer.

$ virtualenv .venv; . .venv/bin/activate
$ pip install "pip>=7" # Upgrade pip if needed.
$ pip install planemo

For information on updating Planemo, installing the latest development release, or installing Planemo via Bioconda - checkout the installation documentation.

Planemo is also available as a virtual appliance bundled with a preconfigured Galaxy server and set up for Galaxy and Common Workflow Language tool development. You can choose from open virtualization format (OVA, .ova) or Docker appliances.

Basics - Galaxy

This quick start will assume you have a directory with one or more Galaxy tool XML files. If no such directory is available, one can be quickly created for demonstrating planemo as follows project_init --template=demo mytools; cd mytools.

Planemo can check tool XML files for common problems and best practices using the lint command (also aliased as l).

$ planemo lint

Like many planemo commands - by default this will search the current directory and use all tool files it finds. It can be explicitly passed a path to tool files or a directory of tool files.

$ planemo l randomlines.xml

The lint command takes in additional options related to reporting levels, exit code, etc. These options are described in the docs or (like with all commands) can be accessed by passing --help to it.

$ planemo l --help
Usage: planemo lint [OPTIONS] TOOL_PATH

Once tools are syntactically correct - it is time to test. The test command can be used to test a tool or a directory of tools.

$ planemo test --galaxy_root=../galaxy randomlines.xml

If no --galaxy_root is defined, Planemo will download and configure a disposable Galaxy instance for testing.

Planemo will create a HTML output report in the current directory named tool_test_output.html (override with --test_output). See an example of such a report for Tophat.

Once tools have been linted and tested - the tools can be viewed in a Galaxy interface using the serve (s) command.

$ planemo serve

Like test, serve requires a Galaxy root and one can be explicitly specified with --galaxy_root or installed dynamically with --install_galaxy.

For more information on building Galaxy tools in general please check out Building Galaxy Tools Using Planemo.

Basics - Common Workflow Language

This quick start will assume you have a directory with one or more Common Workflow Language YAML files. If no such directory is available, one can be quickly created for demonstrating planemo as follows planemo project_init --template=seqtk_complete_cwl mytools; cd mytools.

Planemo can check tools YAML files for common problems and best practices using the lint command (also aliased as l).

$ planemo lint

Like many planemo commands - by default this will search the current directory and use all tool files it finds. It can be explicitly passed a path to tool files or a directory of tool files.

$ planemo l seqtk_seq.cwl

The lint command takes in additional options related to reporting levels, exit code, etc. These options are described in the docs or (like with all commands) can be accessed by passing --help to it.

$ planemo l --help
Usage: planemo lint [OPTIONS] TOOL_PATH

Once tools are syntactically correct - it is time to test. The test command can be used to test a CWL tool, workflow, or a directories thereof.

$ planemo test --engine cwltool seqtk_seq.cwl

Planemo will create a HTML output report in the current directory named tool_test_output.html. Check out the file seqtk_seq_tests.yml for an example of Planemo test for a CWL tool. A test consists of any number of jobs (with input descriptions) and corresponding output assertions.

Checkout the Commmon Workflow User Guide for more information on developing CWL tools in general and Building Common Workflow Language Tools for more information on using Planemo to develop CWL tools.

Tool Shed

Planemo can help you publish tools to the Galaxy Tool Shed. Check out Publishing to the Tool Shed for more information.

Conda

Planemo can help develop tools and Conda packages in unison. Check out the Galaxy or CWL version of the "Dependencies and Conda" tutorial for more information.

Docker and Containers

Planemo can help develop tools that run in "Best Practice" containers for scientific workflows. Check out the Galaxy or CWL version of the "Dependencies and Containers" tutorial for more information.