name: inverse layout: true class: center, middle, inverse
--- # The Galaxy Tool Shed .footnote[Tip: press `P` to view the presenter notes] ??? Presenter notes contain extra information which might be useful if you intend to use these slides for teaching. Press `P` again to switch presenter notes off Press `C` to create a new window where the same presentation will be displayed. This window is linked to the main window. Changing slides on one will cause the slide to change on the other. Useful when presenting. --- ## Tool Shed - Galaxy "App Store" - It is a free service that hosts repositories containing Galaxy tools. - The Tool Shed is a hosting (not a development) platform. - Each repository should link to its development repository. --- ## Which Tool Shed? - The Main Tool Shed ( https://toolshed.g2.bx.psu.edu ) serves all Galaxies worldwide. - Everybody can create a repository. - Repositories are public, including their whole history. - The Test Tool Shed ( https://testtoolshed.g2.bx.psu.edu ) can be used for repositories not yet production-ready. - Local sheds can be run e.g. for private or custom-licensed tools. ??? Repositories on the TTS are also public. We discourage running local TS. --- ## Vocabulary * `tool` or `wrapper` - XML file that describes to Galaxy how the underlying software works, allowing Galaxy to render UI and execute the software in the right way. * `repository` - Versioned code archive in the Tool Shed containing Galaxy tool(s). * `revision` and `installable revision` - Every TS repo update generates a new revision but only certain (reproducibility-affecting) changes generate a new revision installable to Galaxy as a new version. ??? Every TS repo update can be propagated to the Galaxy though. --- ## Installing a TS repo into Galaxy - Installing from the Tool Shed takes care of - dependencies - reference data tables - configuration files * Tool Shed allows administrators to pick any installable revision. * Multiple installable revisions of any repository can be present in Galaxy. --- ![TS_big_picture.png](../../images/TS_big_picture.png) --- class: normal ## Galaxy's configuration The list of available sheds is defined in `tool_sheds_conf.xml`: ```xml <?xml version="1.0"?> <tool_sheds> <tool_shed name="Galaxy Main Tool Shed" url="https://toolshed.g2.bx.psu.edu/"/> <!-- Test Tool Shed should be used only for testing purposes. <tool_shed name="Galaxy Test Tool Shed" url="https://testtoolshed.g2.bx.psu.edu/"/> --> </tool_sheds> ``` --- class: normal ## Simple TS repository (`remove_beginning`) ``` . ├── remove_beginning.pl # optional accompanying script ├── remove_beginning.xml # tool wrapper ├── .shed.yml # metadata file └── test-data # subdirectory for test data ├── 1.bed # test input file └── eq-removebeginning.dat # test output file ``` --- class: normal ## `.shed.yml` file Contains repository's metadata. ```yaml categories: - Text Manipulation description: Remove lines from the beginning of a file. long_description: | This tool removes the specified number of lines from the beginning of the input dataset. name: remove_beginning owner: devteam remote_repository_url: https://github.com/galaxyproject/tools-devteam/tree/master/tools/remove_beginning type: unrestricted ``` --- class: normal ## Complex TS Repository (`varscan`) ``` . ├── macros.xml # defines XML macros usable in other XML files ├── .shed.yml ├── test-data │ ├── control_chrM.bam │ ├── fasta_indexes.loc # Loc file for tests ... │ └── varscan_mpileup_result1.vcf ├── tool-data │ └── fasta_indexes.loc.sample # Sample loc file ├── tool_data_table_conf.xml.sample # Sample data table ├── tool_data_table_conf.xml.test # Data table for tests ├── varscan_copynumber.xml # wrapper for tool #1 ├── varscan_mpileup.xml # wrapper for tool #2 ├── varscan.py └── varscan_somatic.xml # wrapper for tool #3 ``` --- ## Tool requirements Requirements of the wrapper. ```xml <requirements> <requirement type="package" version="1.2">seqtk</requirement> </requirements> ``` - Galaxy can resolve dependencies using Conda, Singularity, Docker, and other systems like Modules - You can read more about this in the [Galaxy Tool Management with Ephemeris slides](../tool-management/slides.html) --- ## Data tables and loc files - Several tools need to access **reference data**, e.g. genome sequences or indexes for aligner - A *loc file* is a tab-separated file containing metadata and paths for a set of reference data - A *data table* describes the columns of a loc file used by a tool - You can read more about this in the [Reference Genomes in Galaxy slides](../reference-genomes/slides.html) --- ## Suite repositories - Suites can be used to split up a set of tools into multiple repositories - A suite is a single repository that 'depends' on many others - When you install the suite, all 'dependency repositories' will be installed too - With a tweak to `.shed.yml`, [Planemo](https://planemo.readthedocs.io) can upload a directory of tools to the TS as a suite of separate tools --- ## Thank you! This material is the result of a collaborative work. Thanks to the [Galaxy Training Network](https://wiki.galaxyproject.org/Teach/GTN) and all the contributors!
Marius van den Beek
This material is licensed under the
Creative Commons Attribution 4.0 International License
. .footnote[Found a typo? Something is wrong in this tutorial?
Edit it on [GitHub](https://github.com/galaxyproject/training-material/tree/master/topics/admin/tutorials/toolshed/slides.html)]