Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
paulocilasjr authored Dec 6, 2024
2 parents ca2a8f9 + dc87513 commit eef1be4
Show file tree
Hide file tree
Showing 46 changed files with 1,397 additions and 481 deletions.
18 changes: 18 additions & 0 deletions CONTRIBUTORS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ abueg:
orcid: 0000-0002-6879-3954
joined: 2022-01

adairama:
name: Adaikalavan Ramasamy
email: [email protected]
orcid: 0000-0002-7598-2892
linkedin: adairama
joined: 2024-12
location:
country: SG

ahmedhamidawan:
name: Ahmed Hamid Awan
email: [email protected]
Expand Down Expand Up @@ -921,6 +930,15 @@ gmauro:
- uni-freiburg
- elixir-europe

GokceOGUZ:
name: Gokce Oguz
joined: 2024-12
email: [email protected]
orcid: 0000-0003-1044-7204
linkedin: gokce-oguz
location:
country: SG

guerler:
name: Aysam Guerler
joined: 2017-09
Expand Down
14 changes: 14 additions & 0 deletions _layouts/topic.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,20 @@ <h3 style="margin: unset;">Not sure where to start?</h3>
{% endif %}

<h2 id="material">Material</h2>

{% if topic.toc %}
<p>
<blockquote class="agenda">
<div class="box-title agenda-title" id="agenda">Jump to a section!</div>
<ul class="markdown-toc">
{% for subtopic in topic_material %}
<li><a href="#st-{{ subtopic[0] | slugify }}">{{subtopic[1].subtopic.title}}</a></li>
{% endfor %}
</ul>
</blockquote>
</p>
{% endif %}

<i>You can view the tutorial materials in different languages by clicking the dropdown icon next to the slides ({% icon slides %}) and tutorial ({% icon tutorial %}) buttons below. </i>

{% if topic.draft %}
Expand Down
2 changes: 1 addition & 1 deletion bin/check-url-persistence.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ cat /tmp/20*.txt | sort -u | \
grep --extended-regexp -v 'krona_?[a-z]*.html' | \
grep -v '/transcriptomics/tutorials/ref-based/faqs/rnaseq_data.html' | \
grep -v '/topics/data-management/' | \
grep -v 'training-material/tags/' | grep -v 'data-library'| \
grep -v 'training-material/tags/' | grep -v 'data-library'| grep -v '/recordings/index.html' |\
sed 's|/$|/index.html|' | grep '.html$' | sort -u | sed 's|https://training.galaxyproject.org|_site|' > /tmp/gtn-files.txt

count=0
Expand Down
7 changes: 6 additions & 1 deletion bin/schema-topic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ mapping:
The image ID for an image which contains all of the tools and data for this topic.
_examples:
- quay.io/galaxy/sequence-analysis-training
toc:
type: bool
required: false
description:
For large topics with many subtopics, set this to true to generate a table of contents above the tutorial table to support quickly jumping to a subtopic.
subtopics:
type: seq
required: false
Expand Down Expand Up @@ -219,7 +224,7 @@ mapping:
type: str
description: |
The alt text for the logo (MANDATORY).
learning_path_cta:
learning_path_cta:
type: str
description: |
The specific learning path you wish to reference as a call-to-action for views who aren't sure where to get started.
Expand Down
2 changes: 1 addition & 1 deletion events/2022-07-08-gat.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ program:
topic: admin
- name: tool-integration
topic: dev
- name: processing-many-samples-at-once
- name: collections
topic: galaxy-interface
- name: upload-rules
topic: galaxy-interface
Expand Down
2 changes: 1 addition & 1 deletion events/2023-04-17-gat-gent.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ program:
time: "11:30 - 11:45"
- name: tool-integration
topic: dev
- name: processing-many-samples-at-once
- name: collections
topic: galaxy-interface
- name: upload-rules
topic: galaxy-interface
Expand Down
1 change: 1 addition & 0 deletions faqs/galaxy/visualisations_igv.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ area: visualisation
box_type: tip
layout: faq
contributors: [shiltemann]
redirect_from: [/topics/galaxy-interface/tutorials/processing-many-samples-at-once/faqs/visualisations_igv]
---

You can send data from your Galaxy history to IGV for viewing as follows:
Expand Down
2 changes: 1 addition & 1 deletion learning-pathways/admin-training.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ pathway:
topic: admin
- name: tool-integration
topic: dev
- name: processing-many-samples-at-once
- name: collections
topic: galaxy-interface
- name: upload-rules
topic: galaxy-interface
Expand Down
4 changes: 2 additions & 2 deletions learning-pathways/dev_tools_training.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pathway:
topic: admin
- name: sig_create
topic: community

- section: "Day 2: Build a batch tool"
description: This module covers getting your package on Conda, a local Galaxy instance with Planemo, write a Galaxy tool, publish it, and make it visible on a Galaxy server.
tutorials:
Expand All @@ -32,7 +32,7 @@ pathway:
- name: tools_subdomains
topic: community
- name: community-tool-table
topic: dev
topic: community

- section: "Day 3: Build an interactive tool"
description: |
Expand Down
20 changes: 20 additions & 0 deletions topics/community/faqs/codex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: How do I add my community to the Galaxy CoDex?
box_type: tip
layout: faq
contributors: [bebatut, nomadscientist]
---

You need to create a new folder in the `data/community` folder within [Galaxy Codex code source](https://github.com/galaxyproject/galaxy_codex).

> <hands-on-title>Create a folder for your community</hands-on-title>
>
> 1. If not already done, fork the [Galaxy Codex repository](https://github.com/galaxyproject/galaxy_codex)
> 2. Go to the `communities` folder
> 3. Click on **Add file** in the drop-down menu at the top
> 4. Select **Create a new file**
> 5. 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.
>
{: .hands_on}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
layout: tutorial_hands_on
title: Creation of an interactive Galaxy tools table for your community
level: Introductory
subtopic: tooldev
redirect_from:
- /topics/dev/tutorials/community-tool-table/tutorial

questions:
- 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?
Expand All @@ -20,26 +22,27 @@ tags:
contributions:
authorship:
- bebatut
- paulzierep

---

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](https://bio.tools/mothur) and [OpenMS](https://bio.tools/openms), which translate to tens and even hundreds of Galaxy tools.
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](https://bio.tools/mothur) and [OpenMS](https://bio.tools/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](https://edamontology.org/page).
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](https://edamontology.org/page).

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](https://github.com/galaxyproject/galaxy_codex) was developed to collect Galaxy wrappers from a list of Git repositories and automatically extract their metadata (including Conda version, [bio.tools](https://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.*).
To provide the research community with a comprehensive list of available Galaxy tools, [Galaxy Codex](https://github.com/galaxyproject/galaxy_codex) was developed to collect Galaxy wrappers from a list of Git repositories and automatically extract their metadata (including Conda version, [bio.tools](https://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.*).

![A diagram illustrating the Galaxy Codex pipeline, showcasing the various steps involved in creating a community Galaxy tool table.](./images/galaxy_tool_metadata_extractor_pipeline.png "Workflow of the Galaxy Codex pipeline. Tool wrappers are parsed from different repositories and additional metadata is retrieved from bio.tools, BioConda, and the main public Galaxy servers. Upon filtering and manual curation of the data for specific scientific communities, the data is transformed into interactive web tables and a tool usage statistic-base word cloud, that can be integrated into any website.")

The pipeline creates an [interactive table with all tools and their metadata](https://galaxyproject.github.io/galaxy_codex/). 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:

<iframe id="edam" src="https://galaxyproject.github.io/galaxy_codex/microgalaxy/" frameBorder="0" width="100%" height="600px"> ![Interactive table for microgalaxy tools](./images/microgalaxy_tools.png) </iframe>

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 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 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.

Expand All @@ -52,21 +55,13 @@ The aim is this tutorial is to create such table for a community.
>
{: .agenda}

# Add your community to the Galaxy Codex pipeline
# Add your community to the Galaxy CoDex

To create a table for a community, you first need to create a new folder in the `data/community` folder within [Galaxy Codex code source](https://github.com/galaxyproject/galaxy_codex).
You first need to make sure that your Community is in the [Galaxy CoDex](https://github.com/galaxyproject/galaxy_codex/tree/main/communities), a central resource for Galaxy communities.

> <hands-on-title>Create a folder for your community</hands-on-title>
>
> 1. If not already done, fork the [Galaxy Codex repository](https://github.com/galaxyproject/galaxy_codex)
> 2. Go to the `communities` folder
> 3. Click on **Add file** in the drop-down menu at the top
> 4. Select **Create a new file**
> 5. 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.
>
{: .hands_on}
{% snippet topics/community/faqs/codex.md %}

# 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](https://toolshed.g2.bx.psu.edu/). Only tools in the selected ToolShed categories will be added to the filtered table. As a result, it is recommended to include broad categories.

Expand All @@ -84,7 +79,7 @@ One of the filters for the main community table is based on the tool categories
>
> 4. Search on the [Galaxy ToolShed](https://toolshed.g2.bx.psu.edu/) for some of the popular tools in your community
> 5. Open the tool entries on the ToolShed, and note their categories
> 6. Add any new categories to the `categories` file
> 6. Add any new categories to the `categories` file
{: .hands_on}
Once you have a list of the ToolShed categories that you wish to keep, you can submit this to Galaxy Codex.
Expand All @@ -95,22 +90,22 @@ Once you have a list of the ToolShed categories that you wish to keep, you can s
> 2. Fill in the commit message with something like `Add X community`
> 3. Click on `Create a new branch for this commit and start a pull request`
> 4. Create the pull request by following the instructions
>
>
{: .hands_on}
The Pull Request will be reviewed. Make sure to respond to any feedback.
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.
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):
1. `Suite ID`
2. `To keep` indicating whether the tool should be included in the final table (TRUE/FALSE).
2. `To keep` indicating whether the tool should be included in the final table (TRUE/FALSE).
3. `Deprecated` indicating whether the tool is deprecated (TRUE/FALSE).
Example of the `tools_status.tsv` file:
Expand All @@ -125,15 +120,19 @@ To generate this file, we recommend you to use the `tools_filtered_by_ts_categor
> <hands-on-title>Review tools in your community table</hands-on-title>
>
> 1. Download the `tools_filtered_by_ts_categories.tsv` file in `communities/<your community>/resources/`.
> 2. Open `tools.tsv` with a Spreadsheet Software
> 3. Review each line corresponding to a tool
> 1. Download the `tools.tsv` file in `results/<your community>`.
> 2. Open `tools.tsv` with a Spreadsheet Software.
> 3. Review each line corresponding to a tool.
>
> 1. Add `TRUE` to the `To keep` column if the tool should be kept, and `FALSE` if not.
> 2. Add `TRUE` or `FALSE` also to the `Deprecated` column.
> You can also just review some tools. Those tools that are not reviewed will have be set to `FALSE` in the `Reviewed` column of the updated table.
> 1. Change the value in the `Reviewed` column from `FALSE` to `TRUE` (this will be done automatically if an entry of the tool in `tools_status.tsv` exists).
> 2. Add `TRUE` to the `To keep` column if the tool should be kept, and `FALSE` if not.
> 3. Add `TRUE` or `FALSE` also to the `Deprecated` column.
> 4. Copy paste the `Galaxy wrapper id`, `To keep`, `Deprecated` columns in a new table (in that order).
>
> 5. Export the new table as TSV
> 6. Submit the TSV as `tools_status.tsv` in your `communities/<your community>/metadata/` folder.
> This can also be done using the reference function of your Spreadsheet Software.
> 5. Export the new table as TSV (without header).
> 6. Submit the TSV as `tools_status.tsv` in your community folder.
> 7. Wait for the Pull Request to be merged
>
{: .hands_on}
Expand Down Expand Up @@ -170,4 +169,3 @@ The interactive table you have created can be embedded in your community page on
# Conclusion
You now have an interactive table with Galaxy tools available for your community, and this table is embedded in a community page.
13 changes: 13 additions & 0 deletions topics/contributing/faqs/github-fork-gtn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "Forking the GTN repository"
area: github
box_type: tip
layout: faq
contributors: [hexylena, shiltemann]
---

- Go on the GitHub repository: [github.com/galaxyproject/training-material](https://github.com/galaxyproject/training-material){: width="50%"}
- Click on the **Fork** button (top-right corner of the page)

![The fork button on GitHub]({% link topics/contributing/images/PR_fork.jpg %})

29 changes: 29 additions & 0 deletions topics/contributing/faqs/github-fork-master-main.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: "Updating the default branch from master to main"
area: github
box_type: tip
layout: faq
contributors: [hexylena, shiltemann]
---

If you created your fork a long time ago, the default branch on your fork may still be called **master** instead of **main**

1. Point your browser to your fork of the GTN repository
- The url will be `https://github.com/<your username>/training_material` (replacing <your username> with your GitHub username)

2. Check the default branch that is shown (at top left).

![Github with the top bar of a repository shown, including the button for 'Sync Fork']({% link topics/contributing/images/github_update_fork.png %})


3. Does it say `main`?
- Congrats, nothing to do, **you can skip the rest of these steps**

4. Does it say `master`? Then you need to update it, following the instructions below

5. Go to your fork's settings (Click on the gear icon called "Settings")
6. Find "Branches" on the left
7. If it says master you can click on the ⇆ icon to switch branches.
8. Select `main` (it may not be present).
9. If it isn't present, use the pencil icon to rename `master` to `main`.

20 changes: 20 additions & 0 deletions topics/contributing/faqs/github-fork-sync.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: "Syncing your Fork of the GTN"
area: github
box_type: tip
layout: faq
contributors: [hexylena, shiltemann]
---

Whenever you want to contribute something new to the GTN, it is important to start with an up-to-date branch. To do this, you should always update the main branch of your fork, before creating a so-called *feature branch*, a branch where you make your changes.

1. Point your browser to your fork of the GTN repository
- The url will be `https://github.com/<your username>/training_material` (replacing 'your username' with your GitHub username)

2. You might see a message like "This branch is 367 commits behind galaxyproject/training-material:main." as in the screenshot below.

![Github with the top bar of a repository shown, including the button for 'Sync Fork']({% link topics/contributing/images/github_update_fork.png %})

3. Click the **Sync Fork** button on your fork to update it to the latest version.

4. **TIP:** never work directly on your main branch, since that will make the sync process more difficult. Always create a new branch before committing your changes.
Loading

0 comments on commit eef1be4

Please sign in to comment.