Adding and updating best practice metadata for Galaxy tools using the bio.tools registry

Overview
Creative Commons License: CC-BY Questions:
  • How are Galaxy tools linked to EDAM ontology?

  • How to connect Galaxy tools to bio.tools?

  • What is bio.tools?

  • How to add, and update, entries in bio.tools?

Objectives:
  • Identify Galaxy tools without bio.tools entry

  • Create a bio.tools entry

  • Update a bio.tools entry

  • Add EDAM ontology terms to a bio.tools entry

  • Link a Galaxy tool to its corresponding bio.tools entry

Time estimation: 1 hour
Level: Introductory Introductory
Supporting Materials:
Published: Mar 6, 2024
Last modification: Nov 6, 2024
License: Tutorial Content is licensed under Creative Commons Attribution 4.0 International License. The GTN Framework is licensed under MIT
purl PURL: https://gxy.io/GTN:T00421
version Revision: 5

Galaxy offers thousands of tools. Many of these tools either have incomplete metadata or are not yet linked to sources of high-quality metadata such as bio.tools.

This 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 like the ones from EDAM or to group tools based on an ontology to improve the Galaxy tool panel.

EDAM (Black et al. 2021) is a comprehensive ontology of well-established, familiar concepts that are prevalent within bioscientific data analysis and data management. It includes 4 main sections of concepts (sub-ontologies):

  • Topic: A category denoting a rather broad domain or field of interest, of study, application, work, data, or technology. Topics have no clearly defined borders between each other.
  • Operation: A function that processes a set of inputs and results in a set of outputs, or associates arguments (inputs) with values (outputs).
  • Data: Information, represented in an information artefact (data record) that is “understandable” by dedicated computational tools that can use the data as input or produce it as output.
  • Format: A defined way or layout of representing and structuring data in a computer file, blob, string, message, or elsewhere.
Simplified data flow diagram in EDAM architecture: boxes for concepts, lines for relations. Streamlined data management.Open image in new tab

Figure 1: EDAM architecture is simple. Boxes indicate top-level concepts (sections, sub-ontologies), and lines indicate types of relations. Source: EDAM website

The ontology can be navigated using EDAM Browser:

A tool or software can then be characterized by different EDAM terms:

The annotation of tools can be done on bio.tools. bio.tools (Ison et al. 2016) is a global portal for bioinformatics resources that helps researchers to find, understand, compare, and select resources suitable for their work. It relies on the EDAM ontology for standardizing the annotations.

In Galaxy, tools can be annotated with EDAM concepts, either by adding them directly to the XML wrapper or extracting them from their corresponding bio.tools entry by linking to it in the wrapper. The advantage of the second approach is that there is one source of truth (i.e. the bio.tools entry), which centralises the location for storage and update of metadata, including EDAM concepts, as well as preventing replication of metadata across multiple platforms.

The aim of this tutorial is to improve the annotation of a given Galaxy tool by either:

  • Linking it to an existing bio.tools identifier,
  • Creating a new bio.tools identifier first and then linking the Galaxy tool, or
  • Updating an existing bio.tools entry with the proper EDAM concepts
Agenda

In this tutorial, we will cover:

  1. Choose a tool without a bio.tools identifier
  2. Determine if a bio.tools entry exists for your chosen tool
  3. Create a bio.tools entry for a tool
  4. Review and update the EDAM terms for an existing bio.tools entry
  5. Linking a Galaxy tool to a bio.tools entry
  6. Conclusion

Choose a tool without a bio.tools identifier

To start, we need to select a tool without a bio.tools identifier.

Hands-on: Choose a tool without a bio.tools identifier
  1. Open the list of Galaxy tools
  2. Click on Add Condition
  3. Select bio.tool id in Data drop-down
  4. Select Empty in Condition drop-down
  5. Select a tool in the list

Determine if a bio.tools entry exists for your chosen tool

Now let’s search for our selected tool on bio.tools.

Hands-on: Search for a tool in bio.tools
  1. Open bio.tools
  2. Type the name of your tool in the “Search bio.tools” bar on the top
  3. Try also other naming possibilities of your tool, e.g. sometimes the galaxy tool name is not identical to the name of the tool in the publication.
Hands-on: Choose Your Own Tutorial

This is a "Choose Your Own Tutorial" section, where you can select between multiple paths. Click one of the buttons below to select how you want to follow the tutorial

Have you found the tool in bio.tools?

Create a bio.tools entry for a tool

If the tool is not on bio.tools, we need to create a new entry and populate it with metadata.

Hands-on: Create a bio.tools entry with minimum metadata
  1. Sign up to bio.tools
  2. Select Add a tool from the drop-down Menu
  3. Fill in general information in the first tab of the wizard. Required information includes:
    1. Tool name
    2. Description
    3. Homepage URL
  4. Add EDAM operation concepts, as well as EDAM data concepts for both inputs and outputs

    1. Click on Function tab
    2. Click on Add function
    3. Add EDAM operation terms
      1. Click on Add operation
      2. Search for operation in the filter or in the hierarchy
      3. Click on the selected term
      4. Repeat to add as many operation terms as needed
    4. (Optional) Add input
      1. Click on Add input
      2. Add EDAM data term
        1. Click on Add data type
        2. Search for data type in the filter or in the hierarchy
      3. Add EDAM format term
        1. Click on Add data format
        2. Search for data format in the filter or in the hierarchy
    5. (Optional) Add output
      1. Click on Add output
      2. Add EDAM data term
        1. Click on Add data type
        2. Search for data type in the filter or in the hierarchy
      3. Add EDAM format term
        1. Click on Add data format
        2. Search for data format in the filter or in the hierarchy
      4. Repeat to add as many inputs and outputs as needed
  5. Add EDAM topic concepts

    1. Click on Labels tab
    2. Add EDAM topic terms
      1. Click on Add topic
      2. Search for topic in the filter or in the hierarchy
      3. Click on the selected term
      4. Repeat to add as many topic terms as needed
    3. Add license
    4. Fill in any known extra information
  6. Add the tool type, license, language, and other metadata as needed
  7. In the Permissions tab, select Make this resource editable by anyone
  8. Click on Validate on the top
  9. Click on Save to create the bio.tools entry
  10. Copy the bio.tools id

Review and update the EDAM terms for an existing bio.tools entry

Before linking a Galaxy tool with its corresponding bio.tools entry, we need to check if the tool is correctly annotated with EDAM concepts.

Hands-on: Check EDAM terms in a bio.tools entry
  1. Open the bio.tools entry for the tool
  2. Check the EDAM Topic terms by looking at the green boxes (if they exist) below the tool name, URL, and available versions
  3. Check the EDAM Operation terms by looking at the blue boxes (if they exist) below the tool description
Hands-on: Choose Your Own Tutorial

This is a "Choose Your Own Tutorial" section, where you can select between multiple paths. Click one of the buttons below to select how you want to follow the tutorial

What do you think about the EDAM terms in the bio.tools entry?

To modify EDAM terms in a bio.tools entry, we need to request editing rights and then modify this entry.

Hands-on: Modify the EDAM concepts in a bio.tools entry
  1. Sign up for bio.tools
  2. Click on Request editing rights at the bottom of the bio.tools entry page
  3. Wait for the request to be approved
  4. Click on Update this record
  5. Update, or add, EDAM Operation term(s) and EDAM Data term(s) for both inputs and outputs

    1. Click on Function tab
    2. Click on Add function
    3. Add EDAM operation terms
      1. Click on Add operation
      2. Search for operation in the filter or in the hierarchy
      3. Click on the selected term
      4. Repeat to add as many operation terms as needed
    4. (Optional) Add input
      1. Click on Add input
      2. Add EDAM data term
        1. Click on Add data type
        2. Search for data type in the filter or in the hierarchy
      3. Add EDAM format term
        1. Click on Add data format
        2. Search for data format in the filter or in the hierarchy
    5. (Optional) Add output
      1. Click on Add output
      2. Add EDAM data term
        1. Click on Add data type
        2. Search for data type in the filter or in the hierarchy
      3. Add EDAM format term
        1. Click on Add data format
        2. Search for data format in the filter or in the hierarchy
      4. Repeat to add as many inputs and outputs as needed
  6. Update, or add, EDAM Topic term(s)

    1. Click on Labels tab
    2. Add EDAM topic terms
      1. Click on Add topic
      2. Search for topic in the filter or in the hierarchy
      3. Click on the selected term
      4. Repeat to add as many topic terms as needed
    3. Add license
    4. Fill in any known extra information
  7. Update, or add, the metadata for tool type, license, language, and other fields as needed
  8. Click on Validate on the top
  9. Click on Save to create the bio.tools entry
  10. Copy the bio.tools ID

Linking a Galaxy tool to a bio.tools entry

To link a Galaxy tool to its corresponding bio.tools entry, we need to first find the source of the wrapper.

Hands-on: Find the Galaxy wrapper
  1. Go to the tool on any Galaxy server
  2. Click on the drop-down menu next to the Run tool button
  3. Select See in Tool Shed
  4. Once in the Tool Shed, click on the link to the development repository
  5. Fork the repository

If the link to the development repository is not correct the column Galaxy wrapper parsed folder from the Galaxy Codex will also show you the location of the wrapper.

  1. Open Galaxy Codex
  2. Search your tool
  3. Expand the row
  4. Open the link shown in the Galaxy wrapper parsed folder column

Now we have the wrapper, and can add the bio.tools entry.

Hands-on: Choose Your Own Tutorial

This is a "Choose Your Own Tutorial" section, where you can select between multiple paths. Click one of the buttons below to select how you want to follow the tutorial

How do you want to add the bio.tools entry?

Hands-on: Check for an existing xrefs section
  1. Open the Galaxy tool macros.xml file (If this does not exist: You have to add the entry to a single tool instead)
  2. Check if a xml name="xrefs" section exists in this file.
Hands-on: Choose Your Own Tutorial

This is a "Choose Your Own Tutorial" section, where you can select between multiple paths. Click one of the buttons below to select how you want to follow the tutorial

Does an xref section already exist?

Hands-on: Add bio.tools entry to the Galaxy toolsuite
  1. In the macros.xml file, add the following lines into the existing xrefs section:
      <xrefs>
          <xref type="bio.tools">biotool-id</xref>
      </xrefs>
    
  2. Replace biotool-id in the example snippet above with the bio.tools ID for your tool

    This section should now look a bit like this, but with other xref text inside:

    supercool your-biotool-id
  3. Commit the change on a new branch
  4. Make a pull request (PR) against the original repository
  5. Wait patiently for the PR to be merged, at which point the new bio.tools reference will be added to the Galaxy tool wrapper
  6. Make sure to respond to any feedback from the owner of the wrapper
Hands-on: Add bio.tools entry to the Galaxy toolsuite
  1. In the macros.xml file, add the following lines above any requirements sections, such that it does not break an existing block.
    <xml name="xrefs">
      <xrefs>
          <xref type="bio.tools">biotool-id</xref>
      </xrefs>
    </xml>
    
  2. Replace biotool-id in the example snippet above with the bio.tools ID for your tool
  3. Commit the change on a new branch
  4. Make a pull request (PR) against the original repository
  5. Wait patiently for the PR to be merged, at which point the new bio.tools reference will be added to the Galaxy tool wrapper
  6. Make sure to respond to any feedback from the owner of the wrapper

Now, we need to make sure that each tool pulls the bio.tools entry from the macro.

Hands-on: Add bio.tools line to each tool
  1. In each tool .xml file, add the following line after the macros section. Usually, there are other similar lines that also expand macro to follow.
      <expand macro="xrefs"/>
    
  2. Commit the change on a new branch
  3. Make a pull request (PR) against the original repository
  4. Wait patiently for the PR to be merged, at which point the new bio.tools reference will be added to the Galaxy tool wrapper
  5. Make sure to respond to any feedback from the owner of the wrapper
Hands-on: Add bio.tools entry to the Galaxy wrapper
  1. Open the Galaxy tool XML file
  2. Add the xref snippet indicated below:

    <xrefs>
        <xref type="bio.tools">biotool-id</xref>
    </xrefs>
    

    It should appear below the macros section and before the requirements section. If the tools already defines xrefs in the macro.xml file. The snippet should be placed there.

  3. Replace biotool-id in the example snippet above with the bio.tools ID for your tool
  4. Commit the change on a new branch
  5. Make a pull request (PR) against the original repository
  6. Wait patiently for the PR to be merged, at which point the new bio.tools reference will be added to the Galaxy tool wrapper
  7. Make sure to respond to any feedback from the owner of the wrapper

Conclusion