Permalink
Browse files

CWL Documentation Overhaul.

- Rename "Dependencies and Docker" tutorial to "Dependencies and Containers" for Galaxy tools (singularity and such has come a long way).
- Update everything for CWL 1.0 and the latest Planemo release.
- Add tutorial for "Dependencies and Conda" for CWL that mirrors the Galaxy version of this document.
- Add tutorial for "Dependencies and Containers" for CWL that mirrors the Galaxy version of this document.
- Add seqtk_complete_cwl project template for above tutorials to mirror the Galaxy versions.
- Add conda_testing_cwl, conda_answers_cwl, and conda_testing_cwl project templates for above tutorials that mirror the Galaxy versions.
- Re-do README to link to the above tutorials and feature CWL more prominently.
- Small updates to Galaxy variants of these documents.
- Improvements and expansions to documentation testing scripts.
  • Loading branch information...
jmchilton committed May 15, 2018
1 parent 67fe8cd commit 347c622822023da6fea30107d86b4a0dd7eaf4fa
Showing with 2,365 additions and 306 deletions.
  1. +76 −48 README.rst
  2. +8 −0 docs/_writing_conda_fleeqtk.rst
  3. +81 −0 docs/_writing_conda_init.rst
  4. +56 −0 docs/_writing_conda_new.rst
  5. +5 −0 docs/_writing_conda_recipe_complete.rst
  6. +54 −0 docs/_writing_conda_search.rst
  7. +13 −0 docs/_writing_containers_linter_explain.rst
  8. +7 −0 docs/_writing_containers_mulled_build.rst
  9. +27 −0 docs/_writing_containers_mulled_output.rst
  10. +33 −0 docs/_writing_containers_publishing.rst
  11. +6 −4 docs/_writing_cwl_intro.rst
  12. +7 −151 docs/_writing_dependencies_conda.rst
  13. +246 −0 docs/_writing_dependencies_conda_cwl.rst
  14. +22 −79 docs/{_writing_dependencies_docker.rst → _writing_dependencies_containers.rst}
  15. +254 −0 docs/_writing_dependencies_containers_cwl.rst
  16. +1 −1 docs/_writing_using_seqtk.rst
  17. +2 −0 docs/tests/tests_all.sh
  18. +2 −1 docs/tests/tests_building.sh
  19. +52 −0 docs/tests/tests_building_cwl.sh
  20. +1 −1 docs/tests/tests_conda.sh
  21. +91 −0 docs/tests/tests_conda_cwl.sh
  22. +45 −0 docs/tests/tests_docker_cwl.sh
  23. +3 −2 docs/writing/gen.sh
  24. +2 −2 docs/writing/seqtk_seq_v1.cwl
  25. +5 −5 docs/writing/seqtk_seq_v2.cwl
  26. +15 −9 docs/writing/seqtk_seq_v3.cwl
  27. +1 −0 docs/writing/seqtk_seq_v3.xml
  28. +1 −1 docs/writing/seqtk_seq_v3_tests.yml
  29. +1 −1 docs/writing_advanced.rst
  30. +14 −0 docs/writing_advanced_cwl.rst
  31. +6 −0 docs/writing_cwl.rst
  32. +156 −0 project_templates/conda_answers_cwl/exercise_1/pear.cwl
  33. +16 −0 project_templates/conda_answers_cwl/exercise_1/pear_tests.yml
  34. +56 −0 project_templates/conda_answers_cwl/exercise_1/test-data/forward.fastq
  35. +56 −0 project_templates/conda_answers_cwl/exercise_1/test-data/pear_assembled_results1.fastq
  36. 0 project_templates/conda_answers_cwl/exercise_1/test-data/pear_unassembled_forward_results1.fastq
  37. +56 −0 project_templates/conda_answers_cwl/exercise_1/test-data/reverse.fastq
  38. +8 −0 project_templates/conda_answers_cwl/exercise_2/fleeqtk/build.sh
  39. +28 −0 project_templates/conda_answers_cwl/exercise_2/fleeqtk/meta.yaml
  40. +87 −0 project_templates/conda_answers_cwl/exercise_2/fleeqtk_seq.cwl
  41. +9 −0 project_templates/conda_answers_cwl/exercise_2/fleeqtk_seq_tests.yml
  42. +6 −0 project_templates/conda_answers_cwl/exercise_2/test-data/2.fasta
  43. +12 −0 project_templates/conda_answers_cwl/exercise_2/test-data/2.fastq
  44. +149 −0 project_templates/conda_exercises_cwl/exercise_1/pear.cwl
  45. +16 −0 project_templates/conda_exercises_cwl/exercise_1/pear_tests.yml
  46. +56 −0 project_templates/conda_exercises_cwl/exercise_1/test-data/forward.fastq
  47. +56 −0 project_templates/conda_exercises_cwl/exercise_1/test-data/pear_assembled_results1.fastq
  48. 0 project_templates/conda_exercises_cwl/exercise_1/test-data/pear_unassembled_forward_results1.fastq
  49. +56 −0 project_templates/conda_exercises_cwl/exercise_1/test-data/reverse.fastq
  50. +81 −0 project_templates/conda_exercises_cwl/exercise_2/fleeqtk_seq.cwl
  51. +9 −0 project_templates/conda_exercises_cwl/exercise_2/fleeqtk_seq_tests.yml
  52. +6 −0 project_templates/conda_exercises_cwl/exercise_2/test-data/2.fasta
  53. +12 −0 project_templates/conda_exercises_cwl/exercise_2/test-data/2.fastq
  54. +96 −0 project_templates/conda_exercises_cwl/exercise_3/seqtk_seq.cwl
  55. +9 −0 project_templates/conda_exercises_cwl/exercise_3/seqtk_seq_tests.yml
  56. +6 −0 project_templates/conda_exercises_cwl/exercise_3/test-data/2.fasta
  57. +12 −0 project_templates/conda_exercises_cwl/exercise_3/test-data/2.fastq
  58. +37 −0 project_templates/conda_testing_cwl/bwa_and_samtools.cwl
  59. +11 −0 project_templates/conda_testing_cwl/bwa_and_samtools_tests.yml
  60. +98 −0 project_templates/seqtk_complete_cwl/seqtk_seq.cwl
  61. +9 −0 project_templates/seqtk_complete_cwl/seqtk_seq_tests.yml
  62. +6 −0 project_templates/seqtk_complete_cwl/test-data/2.fasta
  63. +12 −0 project_templates/seqtk_complete_cwl/test-data/2.fastq
  64. +1 −1 scripts/build_slideshow.py
@@ -4,7 +4,7 @@
:figwidth: 100%
:target: https://github.com/galaxyproject/planemo

Command-line utilities to assist in building and publishing Galaxy_ tools.
Command-line utilities to assist in developing Galaxy_ and `Common Workflow Language`_ tools.

.. image:: https://readthedocs.org/projects/planemo/badge/?version=latest
:target: http://planemo.readthedocs.io/en/latest/?badge=latest
@@ -30,9 +30,6 @@ Command-line utilities to assist in building and publishing Galaxy_ tools.
Quick Start
-----------

This quick start demonstrates using ``planemo`` commands to help
develop Galaxy tools.

-----------------
Obtaining
-----------------
@@ -48,26 +45,26 @@ install with ``pip``. Planemo requires pip 7.0 or newer.
$ pip install planemo

For information on updating Planemo, installing the latest development release,
or installing planemo via bioconda - checkout the `installation
or installing Planemo via Bioconda_ - checkout the `installation
<http://planemo.readthedocs.io/en/latest/installation.html>`__
documentation.

Planemo is also available as a `virtual appliance
<https://planemo.readthedocs.io/en/latest/appliance.html>`_ bundled
with a preconfigured Galaxy server and set up for Galaxy tool development.
You can choose from open virtualization format (OVA_, .ova), Docker_,
or Vagrant_ appliances.
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
--------------
-----------------
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 ``mkdir mytools; cd mytools; planemo
project_init --template=demo``.
demonstrating ``planemo`` as follows ``project_init --template=demo mytools; cd mytools``.

Planemo can check tools containing XML for common problems and best
Planemo can check tool XML files for common problems and best
practices using the ``lint`` `command <http://planemo.readthedocs.org/en/latest/commands.html#lint-command>`_
(also aliased as ``l``).

@@ -101,16 +98,8 @@ 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 check for a default in
`~/.planemo.yml
<http://planemo.readthedocs.org/en/latest/configuration.html>`_ and finally
search the tool's parent directories for a Galaxy root directory.
Planemo can also download and configure a disposable Galaxy instance for
testing. Pass ``--install_galaxy`` instead of ``--galaxy_root``.

::

$ planemo t --install_galaxy
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
@@ -132,6 +121,57 @@ 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 <http://planemo.readthedocs.org/en/latest/commands.html#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 <http://planemo.readthedocs.org/en/latest/commands.html#lint-command>`_
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 <http://planemo.readthedocs.org/en/latest/commands.html#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
---------
@@ -144,29 +184,17 @@ Conda
------

Planemo can help develop tools and Conda packages in unison.
Check out `Dependencies and Conda`_ for more information.

--------
Docker
--------

Planemo can help develop tools deployable via Docker.
Check out `Dependencies and Docker`_ for more information.

--------------------------
Common Workflow Language
--------------------------

Planemo includes experimental support for running a subset of valid
`Common Workflow Language`_ (CWL) tools using either the reference implementation cwltool or
a fork of Galaxy enhanced to run CWL tools.

::
Check out the `Galaxy <http://planemo.readthedocs.io/en/latest/writing_advanced.html#dependencies-and-conda>`__ or `CWL
<http://planemo.readthedocs.io/en/latest/writing_advanced_cwl.html#dependencies-and-conda-cwl>`__ version of the "Dependencies and Conda" tutorial
for more information.

$ planemo project_init --template cwl_draft3_spec
$ planemo serve --cwl cwl_draft3_spec/cat1-tool.cwl
-----------------------
Docker and Containers
-----------------------

Checko out `Building Common Workflow Language Tools`_ for more information.
Planemo can help develop tools that run in "Best Practice" containers for
scientific workflows. Check out the `Galaxy <http://planemo.readthedocs.io/en/latest/writing_advanced.html#dependencies-and-containers>`__ or `CWL
<http://planemo.readthedocs.io/en/latest/writing_advanced_cwl.html#dependencies-and-containers-cwl>`__ version of the "Dependencies and Containers" tutorial for more information.

.. _Galaxy: http://galaxyproject.org/
.. _GitHub: https://github.com/
@@ -178,8 +206,8 @@ Checko out `Building Common Workflow Language Tools`_ for more information.
.. _`tools-iuc`: https://github.com/galaxyproject/tools-iuc
.. _Building Galaxy Tools Using Planemo: http://planemo.readthedocs.io/en/latest/writing_standalone.html
.. _Publishing to the Tool Shed: http://planemo.readthedocs.org/en/latest/publishing.html
.. _Dependencies and Conda: http://planemo.readthedocs.io/en/latest/writing_advanced.html#dependencies-and-conda
.. _Dependencies and Docker: http://planemo.readthedocs.io/en/latest/writing_advanced.html#dependencies-and-docker
.. _Common Workflow Language: http://common-workflow-language.github.io
.. _Common Workflow Language: https://www.commonwl.org/
.. _Commmon Workflow User Guide: http://www.commonwl.org/user_guide/
.. _Building Common Workflow Language Tools: http://planemo.readthedocs.io/en/latest/writing_cwl_standalone.html
.. _OVA: https://en.wikipedia.org/wiki/Open_Virtualization_Format
.. _Bioconda: https://github.com/bioconda/bioconda-recipes
@@ -0,0 +1,8 @@
This is the skeleton of a tool wrapping the parody bioinformatics software package fleeqtk_.
fleeqtk is a fork of the project seqtk_ that many Planemo tutorials are built around and the
example tool should hopefully be fairly familiar. fleeqtk version 1.3 can be downloaded
from `here <https://github.com/jmchilton/fleeqtk/archive/v1.3.tar.gz>`__ and built using
``make``. The result of ``make`` includes a single executable ``fleeqtk``.

.. _fleeqtk: https://github.com/jmchilton/fleeqtk
.. _seqtk: https://github.com/lh3/seqtk
@@ -0,0 +1,81 @@
.. note:: Planemo requires a Conda installation to target with its various Conda
related commands. A properly configured Conda installation can be initialized
with the ``conda_init`` command. This should only need to be executed once
per development machine.

::

$ planemo conda_init
galaxy.tools.deps.conda_util INFO: Installing conda, this may take several minutes.
wget -q --recursive -O /var/folders/78/zxz5mz4d0jn53xf0l06j7ppc0000gp/T/conda_installLW5zn1.sh https://repo.continuum.io/miniconda/Miniconda3-4.3.31-MacOSX-x86_64.sh
bash /var/folders/78/zxz5mz4d0jn53xf0l06j7ppc0000gp/T/conda_installLW5zn1.sh -b -p /Users/john/miniconda3
PREFIX=/Users/john/miniconda3
installing: python-3.6.3-h47c878a_7 ...
Python 3.6.3 :: Anaconda, Inc.
installing: ca-certificates-2017.08.26-ha1e5d58_0 ...
installing: conda-env-2.6.0-h36134e3_0 ...
installing: libcxxabi-4.0.1-hebd6815_0 ...
installing: tk-8.6.7-h35a86e2_3 ...
installing: xz-5.2.3-h0278029_2 ...
installing: yaml-0.1.7-hc338f04_2 ...
installing: zlib-1.2.11-hf3cbc9b_2 ...
installing: libcxx-4.0.1-h579ed51_0 ...
installing: openssl-1.0.2n-hdbc3d79_0 ...
installing: libffi-3.2.1-h475c297_4 ...
installing: ncurses-6.0-hd04f020_2 ...
installing: libedit-3.1-hb4e282d_0 ...
installing: readline-7.0-hc1231fa_4 ...
installing: sqlite-3.20.1-h7e4c145_2 ...
installing: asn1crypto-0.23.0-py36h782d450_0 ...
installing: certifi-2017.11.5-py36ha569be9_0 ...
installing: chardet-3.0.4-py36h96c241c_1 ...
installing: idna-2.6-py36h8628d0a_1 ...
installing: pycosat-0.6.3-py36hee92d8f_0 ...
installing: pycparser-2.18-py36h724b2fc_1 ...
installing: pysocks-1.6.7-py36hfa33cec_1 ...
installing: python.app-2-py36h54569d5_7 ...
installing: ruamel_yaml-0.11.14-py36h9d7ade0_2 ...
installing: six-1.11.0-py36h0e22d5e_1 ...
installing: cffi-1.11.2-py36hd3e6348_0 ...
installing: setuptools-36.5.0-py36h2134326_0 ...
installing: cryptography-2.1.4-py36h842514c_0 ...
installing: wheel-0.30.0-py36h5eb2c71_1 ...
installing: pip-9.0.1-py36h1555ced_4 ...
installing: pyopenssl-17.5.0-py36h51e4350_0 ...
installing: urllib3-1.22-py36h68b9469_0 ...
installing: requests-2.18.4-py36h4516966_1 ...
installing: conda-4.3.31-py36_0 ...
installation finished.
/Users/john/miniconda3/bin/conda install -y --override-channels --channel iuc --channel bioconda --channel conda-forge --channel defaults --channel r conda=4.3.33 conda-build=2.1.18
Fetching package metadata ...................
Solving package specifications: .

Package plan for installation in environment /Users/john/miniconda3:

The following NEW packages will be INSTALLED:

beautifulsoup4: 4.6.0-py36_0 conda-forge
conda-build: 2.1.18-py36_0 conda-forge
conda-verify: 2.0.0-py36_0 conda-forge
filelock: 3.0.4-py36_0 conda-forge
jinja2: 2.10-py36_0 conda-forge
markupsafe: 1.0-py36_0 conda-forge
pkginfo: 1.4.2-py36_0 conda-forge
pycrypto: 2.6.1-py36_1 conda-forge
pyyaml: 3.12-py36_1 conda-forge

The following packages will be UPDATED:

conda: 4.3.31-py36_0 --> 4.3.33-py36_0 conda-forge

beautifulsoup4 100% |###################################################################| Time: 0:00:00 782.08 kB/s
filelock-3.0.4 100% |###################################################################| Time: 0:00:00 7.95 MB/s
markupsafe-1.0 100% |###################################################################| Time: 0:00:00 5.82 MB/s
pkginfo-1.4.2- 100% |###################################################################| Time: 0:00:00 1.18 MB/s
pycrypto-2.6.1 100% |###################################################################| Time: 0:00:00 1.69 MB/s
pyyaml-3.12-py 100% |###################################################################| Time: 0:00:00 3.31 MB/s
conda-verify-2 100% |###################################################################| Time: 0:00:00 6.91 MB/s
jinja2-2.10-py 100% |###################################################################| Time: 0:00:00 2.81 MB/s
conda-4.3.33-p 100% |###################################################################| Time: 0:00:00 621.27 kB/s
conda-build-2. 100% |###################################################################| Time: 0:00:00 2.16 MB/s
Conda installation succeeded - Conda is available at '/Users/john/miniconda3/bin/conda'
@@ -0,0 +1,56 @@

----------------------------------------------------------------
Building New Conda Packages
----------------------------------------------------------------

Frequently packages your tool will require are not found in Bioconda_
or conda-forge yet. In these cases, it is likely best to contribute
your package to one of these projects. Unless the tool is exceedingly
general Bioconda_ is usually the correct starting point.

.. note:: Many things that are not strictly or even remotely "bio" have
been accepted into Bioconda_ - including tools for image analysis,
natural language processing, and cheminformatics.

To get quickly learn to write Conda_ recipes for typical Galaxy tools,
please read the following pieces of external documentation.

- `Contributing to Bioconda <https://bioconda.github.io/contributing.html>`__ in particular focusing on

- `One time setup <https://bioconda.github.io/contrib-setup.html>`__
- `Contributing a recipe <https://bioconda.github.io/contribute-a-recipe.html>`__ (through "Write a Recipe")
- `Building conda packages <https://conda.io/docs/building/bpp.html#>`__ in particular

- `Building conda packages with conda skeleton <https://conda.io/docs/build_tutorials/pkgs.html>`__ (the best approach for common scripting languages such as R and Python)
- `Building conda packages from scratch <https://conda.io/docs/build_tutorials/pkgs2.html>`__
- `Building conda packages for general code projects <https://conda.io/docs/build_tutorials/postgis.html>`__
- `Using conda build <https://conda.io/docs/building/recipe.html>`__
- Then return to the Bioconda documentation and read

- The rest of "Contributing a recipe" continuing from `Testing locally <https://bioconda.github.io/contribute-a-recipe.html#test-locally>`__
- And finally `Guidelines for bioconda recipes <https://bioconda.github.io/guidelines.html>`__

These guidelines in particular can be skimmed depending on your recipe type, for
instance that document provides specific advice for:

- `Python <https://bioconda.github.io/guidelines.html#python>`__
- `R (CRAN) <https://bioconda.github.io/guidelines.html#r-cran>`__
- `R (Bioconductor) <https://bioconda.github.io/guidelines.html#r-bioconductor>`__
- `Perl <https://bioconda.github.io/guidelines.html#perl>`__
- `C/C++ <https://bioconda.github.io/guidelines.html#c-c>`__

To go a little deeper, you may want to read:

- `Specification for meta.yaml <https://conda.io/docs/building/meta-yaml.html>`__
- `Environment variables <https://conda.io/docs/building/environment-vars.html>`__
- `Custom channels <https://conda.io/docs/custom-channels.html>`__

And finally to debug problems the `Bioconda troubleshooting <https://bioconda.github.io/troubleshooting.html>`__
documentation may prove useful.

----------------------------------------------------------------
Exercise - Build a Recipe
----------------------------------------------------------------

If you have just completed the exercise above - this exercise can be found in parent folder. Get
there with ``cd ../exercise2``. If not, the exercise can be downloaded with
@@ -0,0 +1,5 @@

Congratulations on writing a Conda recipe and building a package! Upon succesfully building
and testing such a Bioconda package, you would normally push your branch to Github
and open a pull request. This step is skipped here as to not pollute Bioconda with unneeded
software packages.
@@ -0,0 +1,54 @@

----------------------------------------------------------------
Finding Existing Conda Packages
----------------------------------------------------------------

How did we know what software name and software version to use? We found the existing
packages available for Conda and referenced them. To do this yourself, you can simply
use the planemo command ``conda_search``. If we do a search for ``seqt`` it will show
all the software and all the versions available matching that search term - including
``seqtk``.

::

$ planemo conda_search seqt
/Users/john/miniconda3/bin/conda search --override-channels --channel iuc --channel bioconda --channel conda-forge --channel defaults '*seqt*'
Loading channels: done
# Name Version Build Channel
bioconductor-htseqtools 1.26.0 r3.4.1_0 bioconda
bioconductor-seqtools 1.10.0 r3.3.2_0 bioconda
bioconductor-seqtools 1.10.0 r3.4.1_0 bioconda
bioconductor-seqtools 1.12.0 r3.4.1_0 bioconda
seqtk r75 0 bioconda
seqtk r82 0 bioconda
seqtk r82 1 bioconda
seqtk r93 0 bioconda
seqtk 1.2 0 bioconda
seqtk 1.2 1 bioconda

.. note:: The Planemo command ``conda_search`` is a light wrapper around the underlying
``conda search`` command but configured to use the same channels and other options as
Planemo and Galaxy. The following Conda command would also work to search::

$ $HOME/miniconda3/bin/conda -c iuc -c bioconda -c conda-forge '*seqt*'

For Conda versions 4.3.X or less, the search invocation would be something a bit
different::

$ $HOME/miniconda3/bin/conda -c iuc -c bioconda -c conda-forge seqt


Alternatively the Anaconda_ website can be used to search for packages. Typing ``seqtk``
into the search form on that page and clicking the top result will bring on to `this page
<https://anaconda.org/bioconda/seqtk>`__ with information about the Bioconda package.

When using the website to search though, you need to aware of what channel you are using. By
default, Planemo and Galaxy will search a few different Conda channels. While it is possible
to configure a local Planemo or Galaxy to target different channels - the current best practice
is to add tools to the existing channels.

The existing channels include:

* Bioconda (`github <https://github.com/bioconda/bioconda-recipes>`__ | `conda <https://anaconda.org/bioconda>`__) - best practice channel for various bioinformatics packages.
* Conda-Forge (`github <https://github.com/conda-forge/staged-recipes>`__ | `conda <https://anaconda.org/conda-forge>`__) - best practice channel for general purpose and widely useful computing packages and libraries.
* iuc (`github <https://github.com/galaxyproject/conda-iuc>`__ | `conda <https://anaconda.org/iuc>`__) - best practice channel for other more Galaxy specific packages.
Oops, something went wrong.

0 comments on commit 347c622

Please sign in to comment.