Creation of an interactive Galaxy tools table for your community
Author(s) | Bérénice Batut Paul Zierep |
Reviewers |
OverviewQuestions:Objectives:
Is it possible to have an overview of all Galaxy tools for a specific scientific domain?
How can I create a new overview for a specific Galaxy community or domain?
Create a community reviewed table for Galaxy tools within a specific scientific domain
Embed an interactive table in a community page
Time estimation: 1 hourLevel: Introductory IntroductorySupporting Materials:
Published: Mar 13, 2024Last modification: Dec 5, 2024License: Tutorial Content is licensed under Creative Commons Attribution 4.0 International License. The GTN Framework is licensed under MITpurl PURL: https://gxy.io/GTN:T00475version Revision: 1
Galaxy offers thousands of tools. They are developed across various GitHub repositories. Furthermore, Galaxy also embraces granular implementation of software tools as sub-modules. In practice, this means that tool suites are separated into Galaxy tools, also known as wrappers, that capture their component operations. Some key examples of suites include Mothur and OpenMS, which translate to tens and even hundreds of Galaxy tools.
While granularity supports the composability of tools into rich domain-specific workflows, this decentralized development and sub-module architecture makes it difficult for Galaxy users to find and reuse tools. It may also result in Galaxy tool developers duplicating efforts by simultaneously wrapping the same software. This is further complicated by a lack of tool metadata, which prevents filtering for all tools in a specific research community or domain, and makes it all but impossible to employ advanced filtering with ontology terms and operations like EDAM ontology.
The final challenge is also an opportunity: the global nature of Galaxy means that it is a big community. Solving the visibility of tools across this ecosystem and the potential benefits are far-reaching for global collaboration on tool and workflow development.
To provide the research community with a comprehensive list of available Galaxy tools, Galaxy Codex was developed to collect Galaxy wrappers from a list of Git repositories and automatically extract their metadata (including Conda version, bio.tools identifiers, and EDAM annotations). The workflow also queries the availability of the tools and usage statistics from the three main Galaxy servers (usegalaxy.*).
The pipeline creates an interactive table with all tools and their metadata. This table can be filtered to only include tools that are relevant to a specific research community. Here is an example for the microbial related tools:
The generated community-specific interactive table can be used as it and/or embedded, e.g. into the respective Galaxy Hub page or Galaxy subdomain. This table allows further filtering and searching for fine-grained tool selection.
The pipeline is fully automated and executes on a weekly basis. Any research community can apply the pipeline to create a table specific to their community.
The aim is this tutorial is to create such table for a community.
AgendaIn this tutorial, we will cover:
Add your community to the Galaxy CoDex
You first need to make sure that your Community is in the Galaxy CoDex, a central resource for Galaxy communities.
You need to create a new folder in the
data/community
folder within Galaxy Codex code source.Hands-on: Create a folder for your community
- If not already done, fork the Galaxy Codex repository
- Go to the
communities
folder- Click on Add file in the drop-down menu at the top
- Select Create a new file
Fill in the
Name of your file
field with: name of your community +metadata/categories
This will create a new folder for your community and add a categories file to this folder.
Add your community to the Galaxy Catalog pipeline
One of the filters for the main community table is based on the tool categories on the Galaxy ToolShed. Only tools in the selected ToolShed categories will be added to the filtered table. As a result, it is recommended to include broad categories.
Hands-on: Select the ToolShed categories
- Go to the Galaxy ToolShed
- On the main page, pick the most obvious categories that represent tools used by your community
Add the name of these categories in the
categories
file you started above, with 1 ToolShed category per rowFor example:
Assembly Metagenomics
- Search on the Galaxy ToolShed for some of the popular tools in your community
- Open the tool entries on the ToolShed, and note their categories
- Add any new categories to the
categories
file
Once you have a list of the ToolShed categories that you wish to keep, you can submit this to Galaxy Codex.
Hands-on: Submit the new community to Galaxy Codex
- Click on Commit changes at the top
- Fill in the commit message with something like
Add X community
- Click on
Create a new branch for this commit and start a pull request
- Create the pull request by following the instructions
The Pull Request will be reviewed. Make sure to respond to any feedback.
Once the Pull Request is merged, a table with all tool suites and a short description will be created in communities/<your community>/resources/tools_filtered_by_ts_categories.tsv
Review the generated table to curate tools
The generated table will contain all the tools associated with the ToolShed categories that you selected. However, not all of these tools might be interesting for your community.
Galaxy Codex allows for an additional optional filter for tools, that can be defined by the community curator (maybe that is you!).
The additional filter must be stored in a file called tools_status.tsv
located in communities/<your community>/metadata
. The file must include at least 3 columns (with a header):
Suite ID
To keep
indicating whether the tool should be included in the final table (TRUE/FALSE).Deprecated
indicating whether the tool is deprecated (TRUE/FALSE).
Example of the tools_status.tsv
file:
To keep Deprecated
abacas TRUE FALSE
abricate TRUE FALSE
abritamr TRUE FALSE
To generate this file, we recommend you to use the tools_filtered_by_ts_categories.tsv
file.
Hands-on: Review tools in your community table
- Download the
tools.tsv
file inresults/<your community>
.- Open
tools.tsv
with a Spreadsheet Software.Review each line corresponding to a tool.
You can also just review some tools. Those tools that are not reviewed will have be set to
FALSE
in theReviewed
column of the updated table.
- Change the value in the
Reviewed
column fromFALSE
toTRUE
(this will be done automatically if an entry of the tool intools_status.tsv
exists).- Add
TRUE
to theTo keep
column if the tool should be kept, andFALSE
if not.- Add
TRUE
orFALSE
also to theDeprecated
column.Copy paste the
Galaxy wrapper id
,To keep
,Deprecated
columns in a new table (in that order).This can also be done using the reference function of your Spreadsheet Software.
- Export the new table as TSV (without header).
- Submit the TSV as
tools_status.tsv
in your community folder.- Wait for the Pull Request to be merged
Once merged, a curated_tools.tsv
file will be generated in communities/<your community>/resources/
folder reflecting the Galaxy tool landscape for your community. You can step-by-step review all tools in your community and update the tools_status.tsv
file. You could also share this file with your community members and discuss weather the tool should be kept or not. Collaborative work could be established using google spreadsheet.
Embed the interactive table in your community page on the Hub
The interactive table you have created can be embedded in your community page on the Hub, e.g. microGalaxy.
Hands-on: Embed your table as an iframe
- If not already done, fork the repository Galaxy Hub
- Open or create your community page:
content/community/sig/<your community>/index.md
Add an iframe to embed the interactive table
<iframe id="inlineFrameExample" title="Microbial related tools" width="100%" height="600" frameBorder="0" src="https://galaxyproject.github.io/galaxy_codex/<your_community>/"> </iframe>
- Replace
<your_community>
by the name of your community insrc
- Submit the changes
- Wait for the Pull Request to be merged
Conclusion
You now have an interactive table with Galaxy tools available for your community, and this table is embedded in a community page.