diff --git a/CONTRIBUTORS.yaml b/CONTRIBUTORS.yaml index b47615e9e57cce..05190d5fb59b04 100644 --- a/CONTRIBUTORS.yaml +++ b/CONTRIBUTORS.yaml @@ -541,7 +541,7 @@ eancelet: elichad: name: Eli Chadwick - email: eli.chadwick@stfc.ac.uk + email: eli.chadwick@manchester.ac.uk orcid: 0000-0002-0035-6475 joined: 2022-11 diff --git a/_config.yml b/_config.yml index 9b0a6ea2690999..d2ca1668f443d8 100644 --- a/_config.yml +++ b/_config.yml @@ -27,9 +27,11 @@ small_logo: "assets/images/GTN-60px.png" help_url: https://help.galaxyproject.org/ other_languages: #"fr, ja, es, pt, ar" en: English + de: Deutsch + es: Español + zh-CN: 中文 fr: Français ja: 日本語 - es: Español pt: Português ar: العربية @@ -111,11 +113,12 @@ icon-tag: galaxy-chart-select-data: fas fa-database galaxy-clear: fas fa-times-circle galaxy-columns: fas fa-columns + galaxy-multihistory: fas fa-columns galaxy-cross: fas fa-times galaxy-dataset-map: fas fa-sitemap galaxy-delete: fas fa-trash galaxy-dropdown: fas fa-caret-down - galaxy-history-options: fas fa-caret-down # Replaces gear. + galaxy-history-options: fas fa-bars # Replaces gear, fa-caret-down galaxy-eye: far fa-eye galaxy-gear: fas fa-cog galaxy-history: fas fa-columns diff --git a/_includes/resource-handson.html b/_includes/resource-handson.html index 673fa3efe79b4b..12c235b94cd6ad 100644 --- a/_includes/resource-handson.html +++ b/_includes/resource-handson.html @@ -19,10 +19,10 @@ Toggle Dropdown diff --git a/_includes/resource-slides.html b/_includes/resource-slides.html index 885a516daf145c..36beb3dae0040c 100644 --- a/_includes/resource-slides.html +++ b/_includes/resource-slides.html @@ -25,23 +25,23 @@ {% endif %} - {% for lang in language %}{% unless lang[0] == 'en' %} - + {% for lang in site.other_languages %}{% unless lang[0] == 'en' %} + {% endunless %}{% endfor %} - + diff --git a/api/swagger.json b/api/swagger.json index ed10cef2accb5e..83902932eae0e7 100644 --- a/api/swagger.json +++ b/api/swagger.json @@ -41,7 +41,13 @@ "responses": { "200": { "description": "successful operation", - "content": "application/csv" + "content": { + "application/csv": { + "schema": { + "type": "string" + } + } + } } } } @@ -55,7 +61,13 @@ "responses": { "200": { "description": "successful operation", - "content": "application/json" + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } } } } @@ -376,10 +388,10 @@ "name": "toolId", "in": "path", "example": "toolshed.g2.bx.psu.edu/repos/iuc/abricate/abricate", - "description": "Tool ID WITHOUT the version component!!", + "description": "Tool ID WITHOUT the version component!! Also when you call it properly you do NOT need to encode the /.", "required": true, "schema": { - "type": "string" + "type": "object" } } ], diff --git a/bin/check-url-persistence.sh b/bin/check-url-persistence.sh index 9072a71fd06028..f9c7372cbc2b8b 100755 --- a/bin/check-url-persistence.sh +++ b/bin/check-url-persistence.sh @@ -1,4 +1,8 @@ #!/bin/bash +if [[ ! -f /tmp/2021.txt ]]; then + curl --silent https://training.galaxyproject.org/archive/2021-02-01/sitemap.xml | sed 's||\n|g' | grep '[^<]*' -o | sed 's///;s/<\/loc>//' | sed 's|archive/2021-02-01|training-material|g' > /tmp/2021.txt +fi + if [[ ! -f /tmp/2022.txt ]]; then curl --silent https://training.galaxyproject.org/archive/2022-01-01/sitemap.xml | sed 's||\n|g' | grep '[^<]*' -o | sed 's///;s/<\/loc>//' | sed 's|archive/2022-01-01|training-material|g' > /tmp/2022.txt fi @@ -7,10 +11,17 @@ if [[ ! -f /tmp/2024.txt ]]; then curl --silent https://training.galaxyproject.org/archive/2024-01-01/sitemap.xml | sed 's||\n|g' | grep '[^<]*' -o | sed 's///;s/<\/loc>//' | sed 's|archive/2024-01-01|training-material|g' > /tmp/2024.txt fi + +if [[ ! -f /tmp/2099.txt ]]; then + curl --silent https://training.galaxyproject.org/training-material/sitemap.xml | sed 's||\n|g' | grep '[^<]*' -o | sed 's///;s/<\/loc>//' > /tmp/2099.txt +fi + # No guarantees of API or data-file persistence # 1fe4d7d92e5ea5a5794cbe741eadb96a74511261 -cat /tmp/202*.txt | grep -v '/api/' | grep -v '/by-tool/' | grep -v '/hall-of-fame/' | \ +cat /tmp/20*.txt | sort -u | \ + grep -v '/api/' | grep -v '/by-tool/' | grep -v '/hall-of-fame/' | \ grep -v '/badges/' | \ + 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'| \ diff --git a/bin/news.rb b/bin/news.rb index 1d596d8b22779c..b76718e8474dc0 100755 --- a/bin/news.rb +++ b/bin/news.rb @@ -37,7 +37,7 @@ 'wg-goat' => { server: 'https://matrix.org', room: '!UQXYBSjdrLHcWgegmg:gitter.im', - } + }, 'hub-social' => { server: 'https://matrix.org', room: '!gegHcnUCDklLbtVQor:matrix.org', diff --git a/faqs/galaxy/activity_bar_how_to_enable.md b/faqs/galaxy/activity_bar_how_to_enable.md new file mode 100644 index 00000000000000..850713a08867a1 --- /dev/null +++ b/faqs/galaxy/activity_bar_how_to_enable.md @@ -0,0 +1,18 @@ +--- +title: How to enable the Activity Bar +description: This FAQ demonstrates how to enable the activity bar within the Galaxy interface +box_type: tip +layout: faq +contributors: [nekrut] +--- + +If you do not see the Activity Bar it can be enabled as follows: + +1. Click on the "**User**" link at the top of the Galaxy interface +2. Select "**Preferences**" +3. Scroll down and click on "**Manage Activity Bar**" +4. Toggle the "**Enable Activity Bar**" switch and voila! + + ![The four steps described above are shown visually]({% link shared/images/activity_bar_how_to_enable.svg %}) + + diff --git a/faqs/galaxy/datasets_change_datatype.md b/faqs/galaxy/datasets_change_datatype.md index ee8d511a5b01f7..32fe8f7a33abd0 100644 --- a/faqs/galaxy/datasets_change_datatype.md +++ b/faqs/galaxy/datasets_change_datatype.md @@ -4,11 +4,11 @@ description: Galaxy will try to autodetect the datatype of your files, but you m area: datasets box_type: tip layout: faq -contributors: [bebatut,nsoranzo,hexylena,shiltemann,ajadi-abiola,lldelisle] +contributors: [bebatut,nsoranzo,hexylena,shiltemann,ajadi-abiola,lldelisle,nekrut] --- * Click on the {% icon galaxy-pencil %} **pencil icon** for the dataset to edit its attributes -* In the central panel, click on the {% icon galaxy-gear %} **Convert** tab on the top -* In the lower part {% icon galaxy-chart-select-data %} **Datatypes**, select {% if include.datatype %}`{{ include.datatype }}`{% else %} your desired datatype {% endif %} - - tip: you can start typing the datatype into the field to filter the dropdown menu +* In the central panel, click {% icon galaxy-chart-select-data %} **Datatypes** tab on the top +* In the {% icon galaxy-chart-select-data %} **Assign Datatype**, select {% if include.datatype %}`{{ include.datatype }}`{% else %} your desired datatype {% endif %} from "*New type*" dropdown + - Tip: you can start typing the datatype into the field to filter the dropdown menu * Click the **Save** button diff --git a/faqs/galaxy/datasets_change_dbkey.md b/faqs/galaxy/datasets_change_dbkey.md index f93f1422b1e759..ba3a917e91f377 100644 --- a/faqs/galaxy/datasets_change_dbkey.md +++ b/faqs/galaxy/datasets_change_dbkey.md @@ -4,10 +4,14 @@ description: You can tell Galaxy which dbkey (e.g. reference genome) your datase area: datasets box_type: tip layout: faq -contributors: [shiltemann,hexylena] +contributors: [shiltemann,hexylena,nekrut] --- -- Click on the {% icon galaxy-pencil %} **pencil icon** for the dataset to edit its attributes +- Click the desired dataset's name to expand it. +- Click on the "?" next to database indicator: + + ![UI for changing dbkey]({% link shared/images/datasets_dbkey.svg %}) + - In the central panel, change the **Database/Build** field - Select your desired database key from the dropdown list{% if include.dbkey %}: `{{ include.dbkey }}`{% endif %} - Click the **Save** button diff --git a/faqs/galaxy/histories_create_new.md b/faqs/galaxy/histories_create_new.md index 7d8b462b494d79..6fca7a69eb9500 100644 --- a/faqs/galaxy/histories_create_new.md +++ b/faqs/galaxy/histories_create_new.md @@ -4,11 +4,12 @@ description: Histories are an important part of Galaxy, most people use a new hi area: histories box_type: tip layout: faq -contributors: [bebatut,wm75,shiltemann,hexylena,nomadscientist,nsoranzo] +contributors: [bebatut,wm75,shiltemann,hexylena,nomadscientist,nsoranzo,nekrut] --- -Click the {% icon new-history %} icon at the top of the history panel. +Click the {% icon new-history %} icon at the top of the history panel: -If the {% icon new-history %} is missing: -1. Click on the {% icon galaxy-gear %} icon (**History options**) on the top of the history panel -2. Select the option **Create New** from the menu +![UI for creating new history]({% link shared/images/history_create_new.svg %}) + + + \ No newline at end of file diff --git a/faqs/galaxy/histories_list.md b/faqs/galaxy/histories_list.md new file mode 100644 index 00000000000000..2c9316487ccd19 --- /dev/null +++ b/faqs/galaxy/histories_list.md @@ -0,0 +1,35 @@ +--- +title: View a list of all histories +description: This FAQ demonstrates how to list all histories for a given user +area: histories +box_type: tip +layout: faq +contributors: [nekrut, hexylena] +--- + +There are multiple ways in which you can view your histories: + +1. Viewing histories using {% icon switch-histories %} "**Switch to history**" button. This is best for quickly switching between multiple histories. + + Click the "**Switch history**" icon at the top of the history panel to bring up a list of all your histories: + ![Listing histories using the "Switch history" button]({% link shared/images/histories_list.svg %}) + +2. Using the "**Activity Bar**": + + Click the "**Show all histories**" button within the Activity Bar on the left: + ![Listing histories using Activity Bar]({% link shared/images/histories_list_via_activity_bar.svg %}) + +3. Using "**Data**" drop-down: + + Click the "**Data**" link on the top bar of Galaxy interface and select "**Histories**": + ![Listing histories using "Data" menu]({% link shared/images/histories_list_via_masthead.svg %}) + +3. Using the **Multi-view**, which is best for moving datasets between histories: + + Click the {% icon galaxy-history-options %} menu, and select {% icon galaxy-multihistory %} **Show histories side-by-side** + + + + + + diff --git a/faqs/galaxy/histories_sharing.md b/faqs/galaxy/histories_sharing.md index 35fb14b69c101b..a3ec6f0c5ded18 100644 --- a/faqs/galaxy/histories_sharing.md +++ b/faqs/galaxy/histories_sharing.md @@ -12,7 +12,7 @@ Sharing your history allows others to import and access the datasets, parameters Access the history sharing menu via the History Options dropdown ({% icon galaxy-history-options %}), and clicking "{% icon history-share %} Share or Publish" 1. **Share via link** - - Open the **History Options** {% icon galaxy-gear %} menu (gear icon) at the top of your history panel and select **Share or Publish** + - Open the **History Options** {% icon galaxy-history-options %} menu at the top of your history panel and select "{% icon history-share %} Share or Publish" - {% icon galaxy-toggle %} **Make History accessible** - A **Share Link** will appear that you give to others - Anybody who has this link can view and copy your history @@ -31,5 +31,5 @@ Access the history sharing menu via the History Options dropdown ({% icon galaxy - Select **Histories shared with me** - Here you will see all the histories others have shared with you directly -**Note:** If you want to make changes to your history without affecting the shared version, make a copy by going to {% icon galaxy-gear %} *History options* icon in your history and clicking *Copy* +**Note:** If you want to make changes to your history without affecting the shared version, make a copy by going to **History Options** {% icon galaxy-history-options %} icon in your history and clicking *Copy this History* diff --git a/faqs/galaxy/histories_side_by_side_view.md b/faqs/galaxy/histories_side_by_side_view.md new file mode 100644 index 00000000000000..30b2518253b70f --- /dev/null +++ b/faqs/galaxy/histories_side_by_side_view.md @@ -0,0 +1,20 @@ +--- +title: View histories side-by-side +description: This FAQ demonstrates how to view histories side-by-sde +area: histories +box_type: tip +layout: faq +contributors: [nekrut] +--- + +You can view multiple Galaxy histories at once. This allows to better understand your analyses and also makes itv possible to drag datasets between histories. This is called "**History multiview**". The multiview can be enabled either view History menu or via the ACtivity Bar: + +1. Enabling Multiview via History menu is done by first clicking on the {% icon galaxy-history-options %} "**History options**" drop-down and selecting {% icon galaxy-multihistory %} "**Show Histories Side-by-Side option**": + + ![Enabling side-by-side view using History Options menu]({% link shared/images/histories_side_by_side_view.svg %}) + +2. Clicking the {% icon galaxy-multihistory %} "**History Multiview**" button within the Activity Bar: + + ![Enabling side-by-side view using Activity Bar]({% link shared/images/histories_multiview_via_activity_bar.svg %}) + + \ No newline at end of file diff --git a/faqs/galaxy/images/report_table_history_dataset_as_table.png b/faqs/galaxy/images/report_table_history_dataset_as_table.png new file mode 100644 index 00000000000000..a0227bf6e88b8f Binary files /dev/null and b/faqs/galaxy/images/report_table_history_dataset_as_table.png differ diff --git a/faqs/galaxy/images/report_table_history_dataset_compact.png b/faqs/galaxy/images/report_table_history_dataset_compact.png new file mode 100644 index 00000000000000..55bc6975961f2c Binary files /dev/null and b/faqs/galaxy/images/report_table_history_dataset_compact.png differ diff --git a/faqs/galaxy/images/report_table_history_dataset_display.png b/faqs/galaxy/images/report_table_history_dataset_display.png new file mode 100644 index 00000000000000..54a8b5dff99614 Binary files /dev/null and b/faqs/galaxy/images/report_table_history_dataset_display.png differ diff --git a/faqs/galaxy/images/report_table_history_dataset_embedded.png b/faqs/galaxy/images/report_table_history_dataset_embedded.png new file mode 100644 index 00000000000000..8b39e32e1dc19b Binary files /dev/null and b/faqs/galaxy/images/report_table_history_dataset_embedded.png differ diff --git a/faqs/galaxy/images/report_table_history_dataset_title.png b/faqs/galaxy/images/report_table_history_dataset_title.png new file mode 100644 index 00000000000000..13cb738d7e821b Binary files /dev/null and b/faqs/galaxy/images/report_table_history_dataset_title.png differ diff --git a/faqs/galaxy/reports_collapsible_box.md b/faqs/galaxy/reports_collapsible_box.md new file mode 100644 index 00000000000000..62a08036fe7a7c --- /dev/null +++ b/faqs/galaxy/reports_collapsible_box.md @@ -0,0 +1,18 @@ +--- +title: Making an element collapsible in a report +description: If you have extraneous information you might want to let a user collapse it. +area: reports +box_type: tip +layout: faq +contributors: [hexylena, guerler] +--- + +This applies to any GalaxyMarkdown elements, i.e. the things you've clicked in the left panel to embed in your Workflow Report or Page + +By adding a `collapse=""` attribute to a markdown element, you can make it collapsible. Whatever you put in the quotes will be the title of the collapsible box. + +````markdown +``` +history_dataset_type(history_dataset_id=3108c91feeb505da, collapse="[TITLE]") +``` +```` diff --git a/faqs/galaxy/reports_tables.md b/faqs/galaxy/reports_tables.md new file mode 100644 index 00000000000000..c8b6e9b2748af3 --- /dev/null +++ b/faqs/galaxy/reports_tables.md @@ -0,0 +1,92 @@ +--- +title: Enhancing tabular dataset previews in reports/pages +description: There are lots of fun advanced features! +area: reports +box_type: tip +layout: faq +contributors: [jmchilton, hexylena] +--- + +There are a number of options, specifically for tabular data, that can allow it to render more nicely in your workflow reports and pages and anywhere that GalaxyMarkdown is used. + +- `title` to give your table a title +- `footer` allows you to caption your table +- `show_column_headers=false` to hide the column headers +- `compact=true` to make the table show up more inline, hiding that it was embedded from a Galaxy dataset. + +The existing `history_dataset_display` directive displays the dataset name and some useful context at the expense of potentially breaking the flow of the document + +> Galaxy Markdown +> ````markdown +> ```galaxy +> history_dataset_display(history_dataset_id=1e8ab44153008be8) +> ``` +> ```` +{: .code-in} + +> Example Screenshot +> ![a tabular dataset rendered, it has a title and a download button and sortable columns]({% link faqs/galaxy/images/report_table_history_dataset_display.png %}) +{: .code-out} + + +The existing `history_dataset_embedded` directive was implemented to try to inline results more and make the results more readable within a more... curated document. It is dispatches on tabular types and puts the results in a table but the table doesn't have a lot of options. + +> Galaxy Markdown +> ````markdown +> ```galaxy +> history_dataset_embedded(history_dataset_id=1e8ab44153008be8) +> ``` +> ```` +{: .code-in} + +> Example Screenshot +> ![the same as before but no title nor download button. just a rendered table with sortable columns]({% link faqs/galaxy/images/report_table_history_dataset_embedded.png %}) +{: .code-out} + + +The `history_dataset_as_table` directive mirrors the `history_dataset_as_image` directive: it tries harder to coerce the data into a table and provides new table—specific options. The first of these is "show_column_headers` which defaults to `true`. + + + +> Galaxy Markdown +> ````markdown +> ```galaxy +> history_dataset_as_table(history_dataset_id=1e8ab44153008be8,show_column_headers=false) +> ``` +> ```` +{: .code-in} + +> Example Screenshot +> ![the same as before but no title nor download button nor column headers]({% link faqs/galaxy/images/report_table_history_dataset_as_table.png %}) +{: .code-out} + + +There is also a `compact` option. This provides a much more inline experience for tabular datasets: + +> Galaxy Markdown +> ````markdown +> ```galaxy +> history_dataset_as_table(history_dataset_id=1e8ab44153008be8,show_column_headers=false,compact=true) +> ``` +> ```` +{: .code-in} + +> Example Screenshot +> ![again the same screenshot, no table metadata, and now it lacks the small margin around it.]({% link faqs/galaxy/images/report_table_history_dataset_compact.png %}) +{: .code-out} + + +Figures in general should have titles and legends — so there is the "title" and "footer" options also. + +> Galaxy Markdown +> ````markdown +> ```galaxy +> history_dataset_as_table(history_dataset_id=1e8ab44153008be8,show_column_headers=false,title='Binding Site Results',footer='Here is a very good figure caption for this table.') +> ``` +> ```` +{: .code-in} + +> Example Screenshot +> ![the same table with now a tasteful title and small caption below it describing that the author would write a caption if he knew what a binding site was.]({% link faqs/galaxy/images/report_table_history_dataset_title.png %}) +{: .code-out} + diff --git a/metadata/shortlinks.yaml b/metadata/shortlinks.yaml index 479891ecdd3693..16b52821ae17a5 100644 --- a/metadata/shortlinks.yaml +++ b/metadata/shortlinks.yaml @@ -541,6 +541,9 @@ name: ecology/MetaShARK_tutorial: "/topics/ecology/tutorials/MetaShARK_tutorial/tutorial.html" ecology/bacterial-isolate-species-contamination-checking: "/topics/ecology/tutorials/bacterial-isolate-species-contamination-checking/tutorial.html" epigenetics/cut_and_run: "/topics/epigenetics/tutorials/cut_and_run/tutorial.html" + data-science/gnmx-lecture7: "/topics/data-science/tutorials/gnmx-lecture7/tutorial.html" + dev/community-tool-table: "/topics/dev/tutorials/community-tool-table/tutorial.html" + microbiome/qiime2-moving-pictures: "/topics/microbiome/tutorials/qiime2-moving-pictures/tutorial.html" id: T00000: "/topics/admin/tutorials/ansible/tutorial.html" T00001: "/topics/admin/tutorials/ansible-galaxy/tutorial.html" @@ -1571,6 +1574,9 @@ id: N00073: "/news/2024/03/04/gtn-learning-path-highlights.html" P00020: "/learning-pathways/beyond_single_cell.html" P00021: "/learning-pathways/building_tutorials.html" + T00425: "/topics/data-science/tutorials/gnmx-lecture7/tutorial.html" + T00426: "/topics/dev/tutorials/community-tool-table/tutorial.html" + T00427: "/topics/microbiome/tutorials/qiime2-moving-pictures/tutorial.html" misc: ansible-galaxy: "/topics/admin/tutorials/ansible-galaxy/tutorial.html" stats: "/stats.html" diff --git a/metadata/swagger.yaml b/metadata/swagger.yaml index 2156405bc22b7b..5ebb6f74e05487 100644 --- a/metadata/swagger.yaml +++ b/metadata/swagger.yaml @@ -29,7 +29,9 @@ paths: 200: description: successful operation content: - application/csv + application/csv: + schema: + type: string /feedback.json: get: tags: @@ -39,7 +41,9 @@ paths: 200: description: successful operation content: - application/json + application/json: + schema: + type: string /contributors.json: get: tags: @@ -249,7 +253,7 @@ paths: description: Tool ID WITHOUT the version component!! Also when you call it properly you do NOT need to encode the /. required: true schema: - type: string + type: object summary: Get the GTN's public server tool listing for a specific tool ID. It lists all known public servers that are reachable at the time of the GTN's deployment, and which versions of this tool are available. It's very important that you strip the version component! responses: 200: diff --git a/news/_posts/2024-03-18-url-persistence.md b/news/_posts/2024-03-18-url-persistence.md new file mode 100644 index 00000000000000..b4546f5075104b --- /dev/null +++ b/news/_posts/2024-03-18-url-persistence.md @@ -0,0 +1,26 @@ +--- +title: "Cool URLs Don't Change, GTN URLs don't either." +layout: news +tags: +- gtn infrastructure +- new feature +contributions: + authorship: + - hexylena + infrastructure: + - hexylena +--- + +At the Galaxy Training Network we are *really* committed to ensuring our training materials are [Findable, Accessible, Interoperable, and Reusable]({% link faqs/gtn/fair_training.md %}). +This means that we want to make sure that the URLs to our training materials are persistent and don't change. +The GTN wants you to be able to rely on our URLs once you've added them to a poster or training material, without having to worry about them breaking in the future. + +For a long time we relied on contributors ensuring that when files are merged, we add appropriate redirects to each moved file, however this isn't a very reliable system. +We'd recently also introduced [Persistent URLs (PURLs) to our lessons as well]({{ site.baseurl }}/news/2023/04/19/shortlinks.html) but that only helps our users going forward, it doesn't ensure we are meeting our earlier commitments. + +So now we've added a new test to each GTN merge that checks URLs from the last 3 years to ensure that they are *all* still working. +If they aren't, the merge will fail and the contributor will need to fix the URLs before the changes can be accepted. + +We'll be expanding how far back we check URLs in the future, but for now, this will help us ensure that our URLs are completely persistent! + +By implementing this we discovered only 50 pages (out of ~5.3k GTN pages) that had been moved without proper redirections, and we've fixed them all! diff --git a/shared/images/activity_bar_how_to_enable.svg b/shared/images/activity_bar_how_to_enable.svg new file mode 100644 index 00000000000000..11cef7e609db66 --- /dev/null +++ b/shared/images/activity_bar_how_to_enable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/datasets_dbkey.svg b/shared/images/datasets_dbkey.svg new file mode 100644 index 00000000000000..5d5a5c345dd361 --- /dev/null +++ b/shared/images/datasets_dbkey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/histories_list.svg b/shared/images/histories_list.svg new file mode 100644 index 00000000000000..bdcea07365a8b7 --- /dev/null +++ b/shared/images/histories_list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/histories_list_via_activity_bar.svg b/shared/images/histories_list_via_activity_bar.svg new file mode 100644 index 00000000000000..84050a531af369 --- /dev/null +++ b/shared/images/histories_list_via_activity_bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/histories_list_via_masthead.svg b/shared/images/histories_list_via_masthead.svg new file mode 100644 index 00000000000000..b1cca8eb7c701d --- /dev/null +++ b/shared/images/histories_list_via_masthead.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/histories_multiview_via_activity_bar.svg b/shared/images/histories_multiview_via_activity_bar.svg new file mode 100644 index 00000000000000..1a34079734f01c --- /dev/null +++ b/shared/images/histories_multiview_via_activity_bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/histories_side_by_side_view.svg b/shared/images/histories_side_by_side_view.svg new file mode 100644 index 00000000000000..007f947ae9871d --- /dev/null +++ b/shared/images/histories_side_by_side_view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/history_create_new.svg b/shared/images/history_create_new.svg new file mode 100644 index 00000000000000..bec9aba5d8b9d7 --- /dev/null +++ b/shared/images/history_create_new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shared/images/rename_history.svg b/shared/images/rename_history.svg new file mode 100644 index 00000000000000..b9a63f417e02ab --- /dev/null +++ b/shared/images/rename_history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/topics/admin/tutorials/sentry/tutorial.md b/topics/admin/tutorials/sentry/tutorial.md index 3dc4954442316a..5e5ba66dabbae3 100644 --- a/topics/admin/tutorials/sentry/tutorial.md +++ b/topics/admin/tutorials/sentry/tutorial.md @@ -331,7 +331,7 @@ Just visit: [/error](https://my.gat.galaxy.training/?path=/error) > Open the Galaxy Project in Sentry > 1. Go to your Sentry instance and click on issues. You should see a couple of issues, -> one them should be the "Fake error" exception we generated by visiting https://galaxy.example.org/error. +> one them should be the "Fake error" exception we generated by visiting [https://galaxy.example.org/error](https://my.gat.galaxy.training/?path=/error). {: .hands_on } ## Sending tool error reports to Sentry diff --git a/topics/admin/tutorials/upgrading/tutorial.md b/topics/admin/tutorials/upgrading/tutorial.md index 030e25289d300c..88eed7859ddc53 100644 --- a/topics/admin/tutorials/upgrading/tutorial.md +++ b/topics/admin/tutorials/upgrading/tutorial.md @@ -1,5 +1,7 @@ --- layout: tutorial_hands_on +redirect_from: +- /topics/admin/tutorials/upgrading/slides title: "Upgrading Galaxy" zenodo_link: "" diff --git a/topics/assembly/images/vgp_assembly/hic_map_pretext.png b/topics/assembly/images/vgp_assembly/hic_map_pretext.png index 7d30d17480134e..77fb0821bb7e45 100644 Binary files a/topics/assembly/images/vgp_assembly/hic_map_pretext.png and b/topics/assembly/images/vgp_assembly/hic_map_pretext.png differ diff --git a/topics/assembly/images/vgp_assembly/paste_data_to_upload.png b/topics/assembly/images/vgp_assembly/paste_data_to_upload.png new file mode 100644 index 00000000000000..94ddbc4cc9d338 Binary files /dev/null and b/topics/assembly/images/vgp_assembly/paste_data_to_upload.png differ diff --git a/topics/assembly/tutorials/mrsa-illumina/tutorial.md b/topics/assembly/tutorials/mrsa-illumina/tutorial.md index c91300534bc3a4..0f4bdfe0f865b9 100644 --- a/topics/assembly/tutorials/mrsa-illumina/tutorial.md +++ b/topics/assembly/tutorials/mrsa-illumina/tutorial.md @@ -22,7 +22,12 @@ tags: - illumina - assembly - microgalaxy - +edam_ontology: +- topic_0196 # Sequence Assembly +- topic_3673 # Whole genome sequencing +- topic_3305 # Public health and epidemiology +- topic_0622 # Genomics +- topic_3301 # Microbiology contributions: authorship: - bazante1 diff --git a/topics/assembly/tutorials/mrsa-nanopore/tutorial.md b/topics/assembly/tutorials/mrsa-nanopore/tutorial.md index 6ff8353d95ee1c..eb9f2e0b43cc58 100644 --- a/topics/assembly/tutorials/mrsa-nanopore/tutorial.md +++ b/topics/assembly/tutorials/mrsa-nanopore/tutorial.md @@ -25,6 +25,13 @@ tags: - gmod - jbrowse1 - microgalaxy +edam_ontology: +- topic_0196 # Sequence Assembly +- topic_3673 # Whole genome sequencing +- topic_3305 # Public health and epidemiology +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_4013 # Antimicrobial resistance level: Introductory contributions: diff --git a/topics/assembly/tutorials/unicycler-assembly/tutorial.md b/topics/assembly/tutorials/unicycler-assembly/tutorial.md index 88592b88ac291b..2e14d27cec95a8 100644 --- a/topics/assembly/tutorials/unicycler-assembly/tutorial.md +++ b/topics/assembly/tutorials/unicycler-assembly/tutorial.md @@ -7,6 +7,10 @@ level: Introductory tags: - prokaryote - microgalaxy +edam_ontology: + - topic_0196 # Sequence Assembly + - topic_0622 # Genomics + - topic_3301 # Microbiology questions: - "I have short reads and long reads. How do I assemble a genome?" objectives: diff --git a/topics/assembly/tutorials/vgp_genome_assembly/tutorial.md b/topics/assembly/tutorials/vgp_genome_assembly/tutorial.md index 3ee67350a8a897..56c672b3ab3f87 100644 --- a/topics/assembly/tutorials/vgp_genome_assembly/tutorial.md +++ b/topics/assembly/tutorials/vgp_genome_assembly/tutorial.md @@ -913,19 +913,13 @@ Now that we have looked at our primary assembly with multiple {QC} metrics, we k Before proceeding to purging, we need to carry out some text manipulation operations on the output generated by GenomeScope2 to make it compatible with downstream tools. The goal is to extract some parameters which at a later stage will be used by **purge_dups**. -### Parsing **purge_dups** cutoffs from **GenomeScope2** output +### Getting **purge_dups** cutoffs from **GenomeScope2** output The first relevant parameter is the `estimated genome size`. > Get estimated genome size > ->**Step 1**: Open {% tool [Replace parts of text](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_find_and_replace/1.1.4) %} ->
->**Step 2**: Scroll down to find *"+ Insert Find and Replace"* button and click it. ->
->**Step 3**: Scroll down again to find *"+ Insert Find and Replace"* button and click it again. After this you should have *"Find and Replace"* panel repeated three times: *"1: Find and Replace"*, *"2: Find and Replace"*, and *"3: Find and Replace"*. ->
->**Step 4**: In {% icon param-file %} *"File to process"*: Select `GenomeScope summary` output (generated during *k*-mer profiling [step](#genome-profiling-with-genomescope2)). The input file should have content that looks like this (it may not be exactly like this): +>**Step 1**: Look at the `GenomeScope summary` output (generated during *k*-mer profiling [step](#genome-profiling-with-genomescope2)). The file should have content that looks like this (it may not be exactly like this): > ``` > GenomeScope version 2.0 > input file = .... @@ -943,23 +937,22 @@ The first relevant parameter is the `estimated genome size`. > Model Fit 92.5159% 96.5191% > Read Error Rate 0.000943206% 0.000943206% >``` +>
+>**Step 2**: Copy the number value for the maximum Genome Haploid Length to your clipboard (CTRL + C on Windows; CMD + C on MacOS). > ->**Step 5**: In the first Find and Replace panel *"1: Find and Replace"* set the following parameters: -> 1. *"Find pattern"*: `^(?!Genome Haploid Length).*\n` -> 2. *"Find-Pattern is a regular expression"*: Toggle to `Yes` +>**Step 3**: Click on "Upload Data" in the toolbox on the left. > ->
->**Step 6**: In the second Find and Replace panel *"2: Find and Replace"* set the following parameters: -> 1. *"Find pattern"*: `Genome Haploid Length\s+(\d{1,3}(?:,\d{3})*\s+bp)\s+(\d{1,3}(?:,\d{3})*)\s+bp` -> 2. *"Replace with"*: `$2` -> 3. *"Find-Pattern is a regular expression"*: Toggle to `Yes` +>**Step 4**: Click on "Paste/Fetch data". > ->
->**Step 7**: In the third Find and Replace panel *"3: Find and Replace"* set the following parameters: ->*"Find pattern"*: `,` (Yes, just a comma) +>**Step 5**: Change `New File` to `Estimated genome size`. > ->
->**Step 8**: Rename the output as `Estimated genome size`. +>**Step 6**: Paste the maximum Genome Haploid Length into the text box. +> +>**Step 7**: Remove the commas from the number! We only want integers. +> +>**Step 8**: Click "Start". +> +> ![Image showing where to click to upload data as pasted data.](../../images/vgp_assembly/paste_data_to_upload.png "Use the 'paste data' dialog to upload a file with the estimated genome size.") > > > > > diff --git a/topics/computational-chemistry/tutorials/med-chem-data/tutorial.md b/topics/computational-chemistry/tutorials/med-chem-data/tutorial.md index eb77c340d1be35..6e2875dc967c76 100644 --- a/topics/computational-chemistry/tutorials/med-chem-data/tutorial.md +++ b/topics/computational-chemistry/tutorials/med-chem-data/tutorial.md @@ -31,8 +31,11 @@ tags: contributions: authorship: - wee-snufkin + - kkamieniecka + - poterlowicz-lab funding: - - elixir-fair-data + - ELIXIR-UK-DaSH + requirements: - type: "internal" @@ -110,7 +113,7 @@ In ({% cite Veber2002 %}) we read that the commonly applied molecular weight cut Have you ever wondered how new drugs are developed? It is actually quite a long and complex pathway and not only takes lots of time but also resources. The scheme below will help you understand the scale of that process. -![A scheme showing drug discovery pipeline: starting from target identification, hit, lead, lead optimisation, pre-clinical testing, clinical evaluation in phases I - III, and finally regulatory approval. Lead optimisation also includes iterative steps of designing, making, testing and analysing the proposed compounds.](../../images/medchem.png "A scheme showing drug discovery pipeline") +![A scheme showing drug discovery pipeline: starting from target identification, hit, lead, lead optimisation, pre-clinical testing, clinical evaluation in phases I - III, and finally regulatory approval. Lead optimisation also includes iterative steps of designing, making, testing and analysing the proposed compounds.]({% link topics/computational-chemistry/images/medchem.png %} "A scheme showing drug discovery pipeline") As you can see, to get just one drug to the market, often thousands of structures are assessed to find the most effective and safe compound. That's lots of information being generated in the whole process! The information can be stored in repositories and databases so that subsequent drug discovery process in a similar area is easier, faster and cheaper. Managing big data and using machine learning and computational chemistry methods is crucial in the lead optimisation step. By reviewing chemical databases and studying molecular docking simulations, we can save much time and resources to synthesise only those compounds that are the most promising based on *in-silico* methods. Even after synthesising the optimised 'leads', we still get lots of data from tests and analyses. By using appropriate cheminformatic tools and software, we can use the results to drive forward this iterative process of lead optimisation. @@ -267,9 +270,9 @@ Let's start with importing publicly available data. [Protein Data Bank](https:// > > 1. Open [Protein Data Bank](https://www.rcsb.org/) > 2. Type your search term in the box *"Enter search term(s), Entry ID(s), or sequence"*: `MAO B` -> ![A screenshot showing a search box in the upper right corner of the Protein Data Bank website.](../../images/pdb_search.jpg "Search box of the Protein Data Bank") +> ![A screenshot showing a search box in the upper right corner of the Protein Data Bank website.]({% link topics/computational-chemistry/images/pdb_search.jpg %} "Search box of the Protein Data Bank") >3. Choose the structure of interest and copy its accession code: 2BK3 -> ![A screenshot showing some of the resulting structures with their accession codes.](../../images/pdb_results.jpg "How to get accession code of the resulting structures.") +> ![A screenshot showing some of the resulting structures with their accession codes.]({% link topics/computational-chemistry/images/pdb_results.jpg %} "How to get accession code of the resulting structures.") >4. Switch to Galaxy >5. {% tool [Get PDB file](toolshed.g2.bx.psu.edu/repos/bgruening/get_pdb/get_pdb/0.1.0) %} with the following parameters: > - *"PDB accession code"*: `2BK3` @@ -423,7 +426,7 @@ Let's repeat this step, but with Lipinski's Rule of Five which you learned about > > > > If you click on the dataset, you will see a short summary of how many molecules have been found. > > When we didn't apply any filters, the tool found 45 molecules. After applying Lipinski's Rule of Five filter, 36 molecules satisfied the rules. -> > ![Image showing the preview of the output datasets from searching benzenesulfonyl chloride substructures in the ChEMBL database, with and without Lipinski's Rule of Five filter.](../../images/substructures.png "Preview showing the number of molecules found in the ChEMBL database, before and after applying Lipinski's Rule of Five filter") +> > ![Image showing the preview of the output datasets from searching benzenesulfonyl chloride substructures in the ChEMBL database, with and without Lipinski's Rule of Five filter.]({% link topics/computational-chemistry/images/substructures.png %} "Preview showing the number of molecules found in the ChEMBL database, before and after applying Lipinski's Rule of Five filter") > > > {: .solution} > diff --git a/topics/dev/tutorials/community-tool-table/images/galaxy_tool_metadata_extractor_pipeline.png b/topics/dev/tutorials/community-tool-table/images/galaxy_tool_metadata_extractor_pipeline.png new file mode 100644 index 00000000000000..437bd6d3c85b59 Binary files /dev/null and b/topics/dev/tutorials/community-tool-table/images/galaxy_tool_metadata_extractor_pipeline.png differ diff --git a/topics/dev/tutorials/community-tool-table/images/microgalaxy_tools.png b/topics/dev/tutorials/community-tool-table/images/microgalaxy_tools.png new file mode 100644 index 00000000000000..14f3d3a4856e98 Binary files /dev/null and b/topics/dev/tutorials/community-tool-table/images/microgalaxy_tools.png differ diff --git a/topics/dev/tutorials/community-tool-table/tutorial.md b/topics/dev/tutorials/community-tool-table/tutorial.md new file mode 100644 index 00000000000000..cf428ecb4a7dfb --- /dev/null +++ b/topics/dev/tutorials/community-tool-table/tutorial.md @@ -0,0 +1,203 @@ +--- +layout: tutorial_hands_on +title: Creation of an interactive Galaxy tools table for your community +level: Introductory +subtopic: tooldev +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? +objectives: +- Create a community reviewed table for Galaxy tools within a specific scientific domain +- Embed an interactive table in a community page +time_estimation: 1H +key_points: +- The Galaxy Tool Metadata Extractor extracts all Galaxy tools to create interactive tables +- The tool tables can be filtered by ToolShed categories and community-reviewed lists of tools to keep or exclude +- The community interactive Galaxy tools table can be embed into any website +tags: +- Community +- SIG +contributions: + authorship: + - bebatut + +--- + +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). + +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 Tool Metadata Extractor](https://github.com/galaxyproject/galaxy_tool_metadata_extractor) 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 Tool Metadata Extractor pipeline, showcasing the various steps involved in creating a community Galaxy tool table.](./images/galaxy_tool_metadata_extractor_pipeline.png "Workflow of the Galaxy Tool Metadata Extractor 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_tool_metadata_extractor/). 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. + +> +> +> In this tutorial, we will cover: +> +> 1. TOC +> {:toc} +> +{: .agenda} + +# Add your community to the Galaxy Tool Metadata Extractor pipeline + +To create a table for a community, you first need to create a new folder in the `data/community` folder within [Galaxy Tool Metadata Extractor code source](https://github.com/galaxyproject/galaxy_tool_metadata_extractor). + +> Create a folder for your community +> +> 1. If not already done, fork the [Galaxy Tool Metadata Extractor repository](https://github.com/galaxyproject/galaxy_tool_metadata_extractor) +> 2. Go to the `data/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 + `/categories` +> +> This will create a new folder for your community and add a categories file to this folder. +> +{: .hands_on} + +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. + +> Select the ToolShed categories +> +> 1. Go to the [Galaxy ToolShed](https://toolshed.g2.bx.psu.edu/) +> 2. On the main page, pick the most obvious categories that represent tools used by your community +> 3. Add the name of these categories in the `categories` file you started above, with 1 ToolShed category per row +> +> For example: +> ``` +> Assembly +> Metagenomics +> ``` +> +> 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 +{: .hands_on} + +Once you have a list of the ToolShed categories that you wish to keep, you can submit this to Galaxy Tool Metadata Extractor. + +> Submit the new community to Galaxy Tool Metadata Extractor +> +> 1. Click on **Commit changes** at the top +> 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. + +Once the Pull Request is merged, the interactive table will be created and made available online at `https://galaxyproject.github.io/galaxy_tool_metadata_extractor/`. + +# Review the generated interactive table + +The interactive 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 Tool Metadata Extractor provides 2 optional filters for tools: +- A list of tools to exclude +- A list of tools that should definitely be kept. + +## Add a list of tools to exclude + +> Add a list of tools to exclude +> +> 1. Open your interactive table +> 2. Search for some tools to exclude +> 3. Go to your community folder on [Galaxy Tool Metadata Extractor repository](https://github.com/galaxyproject/galaxy_tool_metadata_extractor) +> 4. Click on **Add file** drop-down menu on the top +> 5. Select **Create a new file** +> 6. Fill in `tools_to_exclude` in `Name of your file` +> 7. Add the `Galaxy wrapper id` of the tools to exclude, with 1 tool identifier per row +> 8. Submit your changes as before +> 9. Wait for the Pull Request to be merged +> +{: .hands_on} + +## Add a list of tools to keep + +> Add a list of tools to keep +> +> 1. Open your interactive table +> 2. Search for some tools to keep +> 3. Go to your community folder on [Galaxy Tool Metadata Extractor repository](https://github.com/galaxyproject/galaxy_tool_metadata_extractor) +> 4. Click on **Add file** drop-down menu on the top +> 5. Select **Create a new file** +> 6. Fill in `tools_to_keep` in `Name of your file` +> 7. Add the `Galaxy wrapper id` of the tools to keep, with 1 tool identifier per row +> 8. Submit your changes as before +> 9. Wait for the Pull Request to be merged +> +{: .hands_on} + +## Review all tools in your table + +Once the required filters have been implemented, you can review the full list of tools to ensure that you have created an interactive table reflecting the Galaxy tool landscape for your community. + +> Review all tools in your table +> +> 1. Download the `tools.tsv` file in `results/` +> 2. Open `tools.tsv` with a Spreadsheet Software +> 3. Review each line corresponding to a tool +> 1. Change the value in the `Reviewed` column from `False` to `True` +> 2. Add `True` to the `To keep` column if the tool should be kept, and `False` if not +> 4. Extract the list of tools to keep +> 1. Create a sheet for the list of tools to keep to +> 1. Filter on the `To keep` column to keep value `True` +> 2. Keep only the `Galaxy wrapper id` column +> 2. Add this list of `Galaxy wrapper id` to the `tools_to_keep` file +> 5. Extract the list of tools to exclude +> 1. Create a sheet for the list of tools to keep to +> 1. Filter on the `To keep` column to keep value `False` +> 2. Keep only the `Galaxy wrapper id` column +> 2. Add this list of `Galaxy wrapper id` to the `tools_to_exclude` file +> 6. Submit the changes +> 7. Wait for the Pull Request to be merged +> +{: .hands_on} + +You should have now an interactive table reflecting the Galaxy tool landscape for your community. + +# 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](https://galaxyproject.org/community/sig/microbial/#tools). + +> Embed your table as an iframe +> +> 1. If not already done, fork the repository [Galaxy Hub](https://github.com/galaxyproject/galaxy-hub) +> 2. Open or create your community page: `content/community/sig//index.md` +> 3. Add an iframe to embed the interactive table +> +> ``` +> +> ``` +> +> 4. Replace `` by the name of your community in `src` +> 5. Submit the changes +> 7. Wait for the Pull Request to be merged +> +{: .hands_on} + +# Conclusion + +You now have an interactive table with Galaxy tools available for your community, and this table is embedded in a community page. + diff --git a/topics/ecology/tutorials/bacterial-isolate-species-contamination-checking/tutorial.md b/topics/ecology/tutorials/bacterial-isolate-species-contamination-checking/tutorial.md index 229c867ec480e7..03e058df7cfec4 100644 --- a/topics/ecology/tutorials/bacterial-isolate-species-contamination-checking/tutorial.md +++ b/topics/ecology/tutorials/bacterial-isolate-species-contamination-checking/tutorial.md @@ -18,7 +18,11 @@ tags: - bacteria - microgalaxy level: Introductory - +edam_ontology: +- topic_3673 # Whole genome sequencing +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_3697 # Microbial ecology contributions: authorship: - bebatut diff --git a/topics/ecology/tutorials/obisindicators/tutorial.md b/topics/ecology/tutorials/obisindicators/tutorial.md index 9a4d846b3163c3..7981c33ac45a97 100644 --- a/topics/ecology/tutorials/obisindicators/tutorial.md +++ b/topics/ecology/tutorials/obisindicators/tutorial.md @@ -137,11 +137,13 @@ In the downloaded folder you should have your data either csv format (Occurence. > Clean your data > -> 1. {% tool [Advanced Cut](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/1.1.0) %} with the following parameters: +> 1. {% tool [Advanced Cut](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/9.3+galaxy0) %} with the following parameters: > -*"File to cut"*: `obis data` > - *"Cut by"*: `fields` -> - *"List of Fields"*: `c['1', '3', '4', '9', '95']` -> You should have the 5 folowing columns: basisOfRecord, decimalLatitude, decimalLongitude, species and individualCount +> - *"Delimited by"*: `Tab` +> -*"Is there a header for the data's columns ?"*: `Yes` +> - *"List of Fields"*: `c1: basisOfRecord c7: decimalLatitude c8: decimalLongitude c44: species c78: individualCount` +> You should always have at least the 4 folowing columns: decimalLatitude, decimalLongitude, species and individualCount {: .hands_on} diff --git a/topics/ecology/tutorials/obisindicators/workflows/Obis-indicators.ga b/topics/ecology/tutorials/obisindicators/workflows/Obis-indicators.ga index e0743c3396b497..d6061114722f3f 100644 --- a/topics/ecology/tutorials/obisindicators/workflows/Obis-indicators.ga +++ b/topics/ecology/tutorials/obisindicators/workflows/Obis-indicators.ga @@ -1,90 +1,69 @@ { "a_galaxy_workflow": "true", - "annotation": "", + "annotation": "From Obis data to Biodiversity indicators", "creator": [ { "class": "Person", - "email": "mailto:marie14.josse@gmail.com", - "identifier": "Marie59", - "name": "Marie Josse" + "identifier": "0009-0008-0622-604X", + "name": "Marie Joss\u00e9", + "url": "https://github.com/Marie59" } ], "format-version": "0.1", - "license": "CC-BY-SA-4.0", - "name": "Obis indicators", + "license": "CC-BY-4.0", + "name": "Marine Omics visualisation", "steps": { "0": { "annotation": "", - "content_id": null, + "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/obis_data/obis_data/0.0.2", "errors": null, "id": 0, "input_connections": {}, - "inputs": [ + "inputs": [], + "label": null, + "name": "OBIS occurences", + "outputs": [ { - "description": "", - "name": "Occurrence.csv" + "name": "output", + "type": "tabular" } ], - "label": "Occurrence.csv", - "name": "Input dataset", - "outputs": [], "position": { "left": 0, "top": 0 }, - "tool_id": null, - "tool_state": "{\"optional\": false, \"tag\": null}", - "tool_version": null, - "type": "data_input", - "uuid": "cf8be611-fbf7-428b-b1f6-113c1c2e1eae", + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/obis_data/obis_data/0.0.2", + "tool_shed_repository": { + "changeset_revision": "1fcd81d65467", + "name": "obis_data", + "owner": "ecology", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"lat_max\": \"45.0\", \"lat_min\": \"41.5\", \"long_max\": \"10.0\", \"long_min\": \"7.5\", \"species\": null, \"taxon\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.0.2", + "type": "tool", + "uuid": "1336aa8b-cc83-4568-89dc-8509e1810d83", "when": null, "workflow_outputs": [] }, "1": { "annotation": "", - "content_id": "csv_to_tabular", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/9.3+galaxy0", "errors": null, "id": 1, "input_connections": { - "csv": { + "input": { "id": 0, "output_name": "output" } }, - "inputs": [], - "label": null, - "name": "Convert CSV to tabular", - "outputs": [ + "inputs": [ { - "name": "tabular", - "type": "tabular" + "description": "runtime parameter for tool Advanced Cut", + "name": "input" } ], - "position": { - "left": 220, - "top": 0 - }, - "post_job_actions": {}, - "tool_id": "csv_to_tabular", - "tool_state": "{\"__input_ext\": \"input\", \"__target_datatype__\": \"tabular\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"csv\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "1.0.0", - "type": "tool", - "uuid": "68d37ef8-8a10-46ba-8bce-4cda1bdab0e1", - "when": null, - "workflow_outputs": [] - }, - "2": { - "annotation": "", - "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/1.1.0", - "errors": null, - "id": 2, - "input_connections": { - "input": { - "id": 1, - "output_name": "tabular" - } - }, - "inputs": [], "label": null, "name": "Advanced Cut", "outputs": [ @@ -94,32 +73,32 @@ } ], "position": { - "left": 440, + "left": 220, "top": 0 }, "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/1.1.0", + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/9.3+galaxy0", "tool_shed_repository": { - "changeset_revision": "ddf54b12c295", + "changeset_revision": "12615d397df7", "name": "text_processing", "owner": "bgruening", "tool_shed": "toolshed.g2.bx.psu.edu" }, - "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"complement\": \"\", \"cut_type_options\": {\"cut_element\": \"-f\", \"__current_case__\": 0, \"list\": [\"1\", \"3\", \"4\", \"9\", \"95\"]}, \"delimiter\": \"\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "1.1.0", + "tool_state": "{\"complement\": \"\", \"cut_type_options\": {\"cut_element\": \"-f\", \"__current_case__\": 0, \"delimiter\": \"\", \"colnames_option\": {\"header\": \"Y\", \"__current_case__\": 0, \"list\": \"1\\n9\\n10\\n61\\n113\"}}, \"input\": {\"__class__\": \"RuntimeValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "9.3+galaxy0", "type": "tool", - "uuid": "f268a9c2-c603-4746-8f7c-9e06742934b5", + "uuid": "6a3e63db-52ee-48d9-a3fe-88f9b665531f", "when": null, "workflow_outputs": [] }, - "3": { + "2": { "annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/obisindicators/obisindicators/0.0.2", "errors": null, - "id": 3, + "id": 2, "input_connections": { "input": { - "id": 2, + "id": 1, "output_name": "output" } }, @@ -137,26 +116,30 @@ } ], "position": { - "left": 660, + "left": 440, "top": 0 }, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/obisindicators/obisindicators/0.0.2", "tool_shed_repository": { - "changeset_revision": "4e7c1fb5e894", + "changeset_revision": "393957ecc97d", "name": "obisindicators", "owner": "ecology", "tool_shed": "toolshed.g2.bx.psu.edu" }, - "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"colnames\": true, \"input\": {\"__class__\": \"ConnectedValue\"}, \"latitude\": \"3\", \"longitude\": \"2\", \"records\": \"5\", \"resolution\": \"10\", \"separator\": \"t\", \"species\": \"4\", \"type\": \"0\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"colnames\": true, \"input\": {\"__class__\": \"ConnectedValue\"}, \"latitude\": \"2\", \"longitude\": \"3\", \"records\": \"5\", \"resolution\": \"9\", \"separator\": \"t\", \"species\": \"4\", \"type\": \"0\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.0.2", "type": "tool", - "uuid": "86cf1452-ed27-4ba0-b8cb-e1aa5c5584a5", + "uuid": "e0aec8cb-4135-44f7-9cd7-08556c54c6f6", "when": null, "workflow_outputs": [] } }, - "tags": [], - "uuid": "4c19d284-8319-4c83-8334-1d14be073f65", - "version": 2 + "tags": [ + "Ocean", + "Marineomics", + "earth-system" + ], + "uuid": "6dd5b232-ee1a-4cc3-8d30-8ec29d8473c3", + "version": 3 } \ No newline at end of file diff --git a/topics/evolution/tutorials/mtb_phylogeny/tutorial.md b/topics/evolution/tutorials/mtb_phylogeny/tutorial.md index 157bca179765df..a09b2ffc114dc0 100644 --- a/topics/evolution/tutorials/mtb_phylogeny/tutorial.md +++ b/topics/evolution/tutorials/mtb_phylogeny/tutorial.md @@ -33,6 +33,11 @@ tags: - one-health - phylogenetics - microgalaxy +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0084 # Phylogeny +- topic_3324 # Infectious disease --- diff --git a/topics/evolution/tutorials/mtb_transmission/tutorial.md b/topics/evolution/tutorials/mtb_transmission/tutorial.md index 9778b0db950f6c..dae3149831e182 100644 --- a/topics/evolution/tutorials/mtb_transmission/tutorial.md +++ b/topics/evolution/tutorials/mtb_transmission/tutorial.md @@ -37,6 +37,11 @@ tags: - prokaryote - one-health - microgalaxy +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_3324 # Infectious disease +- topic_2885 # DNA polymorphism --- diff --git a/topics/fair/tutorials/med-chem-data b/topics/fair/tutorials/med-chem-data new file mode 120000 index 00000000000000..5f0a59323b91e9 --- /dev/null +++ b/topics/fair/tutorials/med-chem-data @@ -0,0 +1 @@ +../../computational-chemistry/tutorials/med-chem-data \ No newline at end of file diff --git a/topics/fair/tutorials/ro-crate-in-python/tutorial.md b/topics/fair/tutorials/ro-crate-in-python/tutorial.md index 705aa18140c303..38c3b0e32b2c98 100644 --- a/topics/fair/tutorials/ro-crate-in-python/tutorial.md +++ b/topics/fair/tutorials/ro-crate-in-python/tutorial.md @@ -20,6 +20,9 @@ contributions: - kinow editing: - hexylena + - elichad + testing: + - elichad funding: - by-covid license: Apache-2.0 @@ -32,32 +35,34 @@ This tutorial will show you how to manipulate [RO-Crates](https://w3id.org/ro/cr > > -> In this tutorial, you will learn how to create a git repo, and begin working with it. +> In this tutorial, we will cover: > > 1. TOC > {:toc} > {: .agenda} - Let's start by installing the library via [pip](https://docs.python.org/3/installing/). Note that the name of the package is `rocrate`. ```bash pip install rocrate ``` - -## Creating an RO-Crate +# Creating an RO-Crate In its simplest form, an RO-Crate is a directory tree with an `ro-crate-metadata.json` file at the top level. This file contains metadata about the other files and directories, represented by [data entities](https://www.researchobject.org/ro-crate/1.1/data-entities.html). These metadata consist both of properties of the data entities themselves and of other, non-digital entities called [contextual entities](https://www.researchobject.org/ro-crate/1.1/contextual-entities.html). A contextual entity can represent, for instance, a person, an organization or an event. -Suppose Alice and Bob worked on a research project together, and then wrote a paper about it; additionally, Alice prepared a spreadsheet containing experimental data, which Bob then used to generate a diagram. For the purpose of this tutorial, you can just create dummy files for the documents: +Suppose Alice and Bob worked on a research project together, and then wrote a paper about it; additionally, Alice prepared a spreadsheet containing experimental data, which Bob then used to generate a diagram. For the purpose of this tutorial, you can just create placeholder files for the documents: -```bash -mkdir exp -touch exp/paper.pdf -touch exp/results.csv -touch exp/diagram.svg +```python +import os + +data_dir = "exp" +os.mkdir(data_dir) + +for filename in ["paper.pdf", "results.csv", "diagram.svg"]: + with open(os.path.join(data_dir, filename), "w") as file: + pass ``` Let's make an RO-Crate to represent this information: @@ -105,15 +110,16 @@ table["author"] = alice diagram["author"] = bob ``` -You can also add whole directories together with their contents. In RO-Crate, a directory is represented by the `Dataset` entity: - -```bash -mkdir exp/logs -touch exp/logs/log1.txt -touch exp/logs/log2.txt -``` +You can also add whole directories together with their contents. In an RO-Crate, a directory is represented by the `Dataset` entity: ```python +logs_dir = os.path.join(data_dir, "logs") +os.mkdir(logs_dir) + +for filename in ["log1.txt", "log2.txt"]: + with open(os.path.join(logs_dir, filename), "w") as file: + pass + logs = crate.add_dataset("exp/logs") ``` @@ -123,7 +129,7 @@ Finally, we serialize the crate to disk: crate.write("exp_crate") ``` -This should generate an `exp_crate` directory containing copies of all the files we added and an `ro-crate-metadata.json` file containing a JSON-LD representation of the metadata. Note that we have chosen a different destination path for the diagram, while the paper and the spreadsheet have been placed at the top level with their names unchanged (the default). +This should generate an `exp_crate` directory containing copies of all the files we added and an `ro-crate-metadata.json` file containing a [JSON-LD](https://json-ld.org) representation of the metadata. Note that we have chosen a different destination path for the diagram, while the paper and the spreadsheet have been placed at the top level with their names unchanged (the default). Some applications and services support RO-Crates stored as archives. To save the crate in zip format, you can use `write_zip`: @@ -131,7 +137,14 @@ Some applications and services support RO-Crates stored as archives. To save the crate.write_zip("exp_crate.zip") ``` -### Appending elements to property values +> How `rocrate` handles the contents of `exp/logs` +> +> Exploring the `exp_crate` directory, we see that all files and directories contained in `exp/logs` have been added recursively to the crate. However, in the `ro-crate-metadata.json` file, only the top level Dataset with `@id` `"exp/logs"` is listed. This is because we used `crate.add_dataset("exp/logs")` rather than adding every file individually. There is no requirement to represent every file and folder within the crate in the `ro-crate-metadata.json` file - in fact, if there were many files in the crate it would be impractical to do so. +> +> If you do want to add files and directories recursively to the metadata, use `crate.add_tree` instead of `crate.add_dataset` (but note that it only works on local directory trees). +{: .comment} + +## Appending elements to property values What ro-crate-py entities actually store is their JSON representation: @@ -155,7 +168,9 @@ paper.properties() When `paper["author"]` is accessed, a new list containing the `alice` and `bob` entities is generated on the fly. For this reason, calling `append` on `paper["author"]` won't actually modify the `paper` entity in any way. To add an author, use the `append_to` method instead: ```python -donald = crate.add(Person(crate, "https://en.wikipedia.org/wiki/Donald_Duck")) +donald = crate.add(Person(crate, "https://en.wikipedia.org/wiki/Donald_Duck", properties={ + "name": "Donald Duck" +})) paper.append_to("author", donald) ``` @@ -167,7 +182,7 @@ for n in "Mickey_Mouse", "Scrooge_McDuck": donald.append_to("follows", p) ``` -### Adding remote entities +## Adding remote entities Data entities can also be remote: @@ -188,7 +203,7 @@ If you add `fetch_remote=True` to the `add_file` call, however, the library (whe Another option that influences the behavior when dealing with remote entities is `validate_url`, also `False` by default: if it's set to `True`, when the crate is serialized, the library will try to open the URL to add / update metadata such as the content's length and format. -### Adding entities with an arbitrary type +## Adding entities with an arbitrary type An entity can be of any type listed in the [RO-Crate context](https://www.researchobject.org/ro-crate/1.1/context.jsonld). However, only a few of them have a counterpart (e.g., `File`) in the library's class hierarchy, either because they are very common or because they are associated with specific functionality that can be conveniently embedded in the class implementation. In other cases, you can explicitly pass the type via the `properties` argument: @@ -210,7 +225,7 @@ Note that entities can have multiple types, e.g.: "@type" = ["File", "SoftwareSourceCode"] ``` -## Consuming an RO-Crate +# Consuming an RO-Crate An existing RO-Crate package can be loaded from a directory or zip file: @@ -221,8 +236,8 @@ for e in crate.get_entities(): ``` ``` -ro-crate-metadata.json CreativeWork ./ Dataset +ro-crate-metadata.json CreativeWork paper.pdf File results.csv File images/figure.svg File @@ -231,7 +246,7 @@ https://orcid.org/0000-0000-0000-0001 Person ... ``` -The first two entities shown in the output are the [metadata file descriptor](https://www.researchobject.org/ro-crate/1.1/metadata.html) and the [root data entity](https://www.researchobject.org/ro-crate/1.1/root-data-entity.html), respectively. The former represents the metadata file, while the latter represents the whole crate. These are special entities managed by the `ROCrate` object, and are always present. The other entities are the ones we added in the [section on RO-Crate creation](#creating-an-ro-crate). As shown above, `get_entities` allows to iterate over all entities in the crate. You can also access only data entities with `crate.data_entities` and only contextual entities with `crate.contextual_entities`. For instance: +The first two entities shown in the output are the [root data entity](https://www.researchobject.org/ro-crate/1.1/root-data-entity.html) and the [metadata file descriptor](https://www.researchobject.org/ro-crate/1.1/metadata.html), respectively. The former represents the whole crate, while the latter represents the metadata file. These are special entities managed by the `ROCrate` object, and are always present. The other entities are the ones we added in the [section on RO-Crate creation](#creating-an-ro-crate). As shown above, `get_entities` allows to iterate over all entities in the crate. You can also access only data entities with `crate.data_entities` and only contextual entities with `crate.contextual_entities`. For instance: ```python for e in crate.data_entities: @@ -256,8 +271,11 @@ You can fetch an entity by its `@id` as follows: article = crate.dereference("paper.pdf") # or crate.get("paper.pdf") ``` +# Command Line Interface -## Command Line Interface +> Jupyter Notebook users: switch to a terminal +> The code cells in this section use Unix shell commands, which can't be run within a notebook. Open a Unix/Linux terminal to follow along. +{: .comment} `ro-crate-py` includes a hierarchical command line interface: the `rocrate` tool. `rocrate` is the top-level command, while specific functionalities are provided via sub-commands. Currently, the tool allows to initialize a directory tree as an RO-Crate (`rocrate init`) and to modify the metadata of an existing RO-Crate (`rocrate add`). @@ -274,7 +292,7 @@ Commands: write-zip ``` -### Crate initialization +## Crate initialization The `rocrate init` command explores a directory tree and generates an RO-Crate metadata file (`ro-crate-metadata.json`) listing all files and directories as `File` and `Dataset` entities, respectively. @@ -291,9 +309,9 @@ Options: The command acts on the current directory, unless the `-c` option is specified. The metadata file is added (overwritten if present) to the directory at the top level, turning it into an RO-Crate. -### Adding items to the crate +## Adding items to the crate -The `rocrate add` command allows to add workflows and other entity types (currently [testing-related metadata](https://crs4.github.io/life_monitor/workflow_testing_ro_crate)) to an RO-Crate: +The `rocrate add` command allows to add files, datasets (directories), workflows, and other entity types (currently [testing-related metadata](https://crs4.github.io/life_monitor/workflow_testing_ro_crate)) to an RO-Crate: ```console $ rocrate add --help @@ -303,6 +321,8 @@ Options: --help Show this message and exit. Commands: + dataset + file test-definition test-instance test-suite @@ -311,7 +331,7 @@ Commands: Note that data entities (e.g., workflows) must already be present in the directory tree: the effect of the command is to register them in the metadata file. -### Example +## Example To run the following commands, we need a copy of the ro-crate-py repository: diff --git a/topics/galaxy-interface/tutorials/workflow-reports/tutorial.md b/topics/galaxy-interface/tutorials/workflow-reports/tutorial.md index 42fa00f18eb036..5dfdd4f35f5664 100644 --- a/topics/galaxy-interface/tutorials/workflow-reports/tutorial.md +++ b/topics/galaxy-interface/tutorials/workflow-reports/tutorial.md @@ -319,7 +319,11 @@ Well done! You have created a customized workflow report with text and workflow - peeks into dataset (useful for large files that cannot be included in their entirety in the report) - ..and more! +## Make your reports nicer! +{% snippet faqs/galaxy/reports_tables.md %} + +{% snippet faqs/galaxy/reports_collapsible_box.md %} # Share or publish your workflow report diff --git a/topics/genome-annotation/tutorials/amr-gene-detection/tutorial.md b/topics/genome-annotation/tutorials/amr-gene-detection/tutorial.md index 22d65caa972347..5f3008d169f6c2 100644 --- a/topics/genome-annotation/tutorials/amr-gene-detection/tutorial.md +++ b/topics/genome-annotation/tutorials/amr-gene-detection/tutorial.md @@ -20,7 +20,16 @@ tags: - amr - one-health - jbrowse1 +- microgalaxy subtopic: prokaryote +edam_ontology: +- topic_3673 # Whole genome sequencing +- topic_3305 # Public health and epidemiology +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0080 # Sequence analysis +- topic_3324 # Infectious disease +- topic_4013 # Antimicrobial resistance level: Introductory contributions: diff --git a/topics/genome-annotation/tutorials/annotation-with-prokka/tutorial.md b/topics/genome-annotation/tutorials/annotation-with-prokka/tutorial.md index 632af071ada5a9..4a3095239a64eb 100644 --- a/topics/genome-annotation/tutorials/annotation-with-prokka/tutorial.md +++ b/topics/genome-annotation/tutorials/annotation-with-prokka/tutorial.md @@ -25,6 +25,11 @@ contributors: - tseemann - slugger70 subtopic: prokaryote +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0623 # Gene and protein families +- topic_0080 # Sequence analysis follow_up_training: - type: "internal" topic_name: genome-annotation diff --git a/topics/genome-annotation/tutorials/apollo/tutorial.md b/topics/genome-annotation/tutorials/apollo/tutorial.md index 8dfd81e1955dc9..450c87d327587f 100644 --- a/topics/genome-annotation/tutorials/apollo/tutorial.md +++ b/topics/genome-annotation/tutorials/apollo/tutorial.md @@ -48,6 +48,11 @@ requirements: - annotation-with-prokka subtopic: prokaryote +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0623 # Gene and protein families +- topic_0080 # Sequence analysis abbreviations: OGS: Official Gene Set --- diff --git a/topics/genome-annotation/tutorials/bacterial-genome-annotation/tutorial.md b/topics/genome-annotation/tutorials/bacterial-genome-annotation/tutorial.md index 191fe6af0bc4d2..bed7dff2d51053 100644 --- a/topics/genome-annotation/tutorials/bacterial-genome-annotation/tutorial.md +++ b/topics/genome-annotation/tutorials/bacterial-genome-annotation/tutorial.md @@ -22,14 +22,20 @@ tags: - microgalaxy - jbrowse1 subtopic: prokaryote +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0623 # Gene and protein families +- topic_0080 # Sequence analysis +- topic_3673 # Whole genome sequencing +- topic_0085 # Functional genomics +- topic_0798 # Mobile genetic elements level: Introductory - contributions: authorship: - bebatut funding: - abromics - follow_up_training: - type: "internal" topic_name: genome-annotation @@ -44,7 +50,6 @@ follow_up_training: topic_name: galaxy-interface tutorials: - history-to-workflow - --- After sequencing and assembly, a genome can be annotated. It is an essential step to describe the genome. diff --git a/topics/genome-annotation/tutorials/gene-centric/tutorial.md b/topics/genome-annotation/tutorials/gene-centric/tutorial.md index 65c28b066fe24f..1404e11768674c 100644 --- a/topics/genome-annotation/tutorials/gene-centric/tutorial.md +++ b/topics/genome-annotation/tutorials/gene-centric/tutorial.md @@ -35,6 +35,11 @@ requirements: abbreviations: ORF: Open Reading Frame priority: 2 +edam_ontology: +- topic_0622 # Genomics +- topic_0623 # Gene and protein families +- topic_0080 # Sequence analysis +- topic_0084 # Phylogeny --- Despite the rapidly increasing number of fully assembled genomes few genomes are well annotated. This is especially true for large eukaryotic genomes with their complex gene structure and abundance of pseudogenes. And of course do not forget about the [Murthy's law](https://en.wikipedia.org/wiki/Murphy%27s_law): if you are interested in a particular gene the chances are that it will not be annotated in your genome of interest. In this tutorial we will demonstrate how to compare gene structures across a set of vertebrate genomes. So ... diff --git a/topics/genome-annotation/tutorials/tnseq/tutorial.md b/topics/genome-annotation/tutorials/tnseq/tutorial.md index 44c4c4a8adc84d..80cdbd18124092 100644 --- a/topics/genome-annotation/tutorials/tnseq/tutorial.md +++ b/topics/genome-annotation/tutorials/tnseq/tutorial.md @@ -7,6 +7,7 @@ tags: - bacteria - tnseq - essential genes + - microgalaxy questions: - "What is Transposon insertion Sequencing?" - "How to get TA sites Coverage ? " @@ -25,6 +26,11 @@ contributors: - delphine-l - bebatut subtopic: prokaryote +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0080 # Sequence analysis +- topic_0798 # Mobile genetic elements priority: 4 --- @@ -32,7 +38,6 @@ In microbiology, identifying links between genotype and phenotype is key to unde ## Transposon insertion Sequencing - Transposon insertion sequencing is a technique used to functionally annotate bacterial genomes. In this technique, the genome is saturated by insertions of transposons. Transposons are highly regulated, discrete DNA segments that can relocate within the genome. They have a large influence on gene expression and can be used to determine the function of genes. When a transposon inserts itself in a gene, the gene's function will be disrupted, affecting the fitness (growth) of the bacteria. We can then manipulate transposons for use in insertional mutagenesis, *i.e.* creation of mutations of DNA by the addition of transposons. The genomes can be then sequenced to locate the transposon insertion site and the function affected by a transposon insertion can be linked to the disrupted gene. @@ -591,9 +596,10 @@ Now that we have the counts of insertions per TA site, we can use them to predic To predict the essential genes in our datasets, we will use the Transit tool {% cite dejesus2015transit %}. ## Transit + Transit is a software that can be used to analyse TnSeq Data. It is compatible with Mariner and Tn5 transposon. In total, 3 methods are available to assess gene essentiality in one sample. -#### Gumbel method +### Gumbel method The Gumbel method performs a gene by gene analysis of essentiality for Mariner data based on the longest consecutive sequence of TA site without insertions in a gene. This allows to identify essential domains regardless of insertion at other location of the gene. @@ -603,13 +609,13 @@ The total distribution of the maximum run of non-insertion per gene is therefore Using these two distribution, the posterior probability of each distribution is calculated for each gene. Some genes can be classified as "Unclear" if one probability is not winning over the other. Some other can be classified as "Small" if the space of TA sites covered by the gene is insufficient to categorize it (See the [Transit Manual for the Gumbel method](https://transit.readthedocs.io/en/latest/transit_methods.html#gumbel)). -#### HMM method +### HMM method The HMM method performs a whole genome essentiality analysis for Mariner data. This approach uses the clustering of TA sites along the genome to identify essential regions, and then apply results to the annotation to identify genes containing essential regions. The HMM method provides a classification for each TA site into 4 states : Essential, Non-Essential, Growth Advantage, and Growth Defect. This method require a well-saturated library and is sensitive to sparse datasets {% cite dejesus2013hidden %}. -#### Tn5Gaps method +### Tn5Gaps method The Tn5Gaps method is a method dedicated to the identification of essential genes in studies using Tn5 transposons. The analysis is performed on the whole genome to identify regions of non insertion overlapping with genes. It is based on a Gumbel analysis method {% cite griffin2011high %} and adapted to Tn5 transposon specificity. The main difference comes from the fact that Tn5 transposon can insert everywhere, thus creating libraries with lower insertion rates. The difference from the Gumbel method described above is that the run of non insertion are computer on the whole genome instead of individual genes. The longest run of non insertion considered is not the longest within the gene, but the longest one overlapping the gene. diff --git a/topics/introduction/images/101_26.png b/topics/introduction/images/101_26.png deleted file mode 100644 index 37a78bc8ef6446..00000000000000 Binary files a/topics/introduction/images/101_26.png and /dev/null differ diff --git a/topics/introduction/images/configure_wf_output.png b/topics/introduction/images/configure_wf_output.png new file mode 100644 index 00000000000000..c2852de5964dc4 Binary files /dev/null and b/topics/introduction/images/configure_wf_output.png differ diff --git a/topics/introduction/images/drag_n_drop_dataset.gif b/topics/introduction/images/drag_n_drop_dataset.gif new file mode 100644 index 00000000000000..94e9aa885ad943 Binary files /dev/null and b/topics/introduction/images/drag_n_drop_dataset.gif differ diff --git a/topics/introduction/images/galaxy_interface.svg b/topics/introduction/images/galaxy_interface.svg index 3a8438d1d27ef2..cdc7f8f7284767 100644 --- a/topics/introduction/images/galaxy_interface.svg +++ b/topics/introduction/images/galaxy_interface.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/topics/introduction/images/histories_side_by_side_view.png b/topics/introduction/images/histories_side_by_side_view.png new file mode 100644 index 00000000000000..220c2ab82921fb Binary files /dev/null and b/topics/introduction/images/histories_side_by_side_view.png differ diff --git a/topics/introduction/images/history_menu_extract_workflow.png b/topics/introduction/images/history_menu_extract_workflow.png index a8d610fe381de2..55e24730b67fc2 100644 Binary files a/topics/introduction/images/history_menu_extract_workflow.png and b/topics/introduction/images/history_menu_extract_workflow.png differ diff --git a/topics/introduction/images/history_options_menu.png b/topics/introduction/images/history_options_menu.png index d688ffbf6e4bfc..a80815cfcb587b 100644 Binary files a/topics/introduction/images/history_options_menu.png and b/topics/introduction/images/history_options_menu.png differ diff --git a/topics/introduction/images/open_in_center_pane_button.png b/topics/introduction/images/open_in_center_pane_button.png new file mode 100644 index 00000000000000..08b869acb503e9 Binary files /dev/null and b/topics/introduction/images/open_in_center_pane_button.png differ diff --git a/topics/introduction/images/open_wf_editor.png b/topics/introduction/images/open_wf_editor.png new file mode 100644 index 00000000000000..d35c873b6bdeaa Binary files /dev/null and b/topics/introduction/images/open_wf_editor.png differ diff --git a/topics/introduction/images/run_workflow_button.png b/topics/introduction/images/run_workflow_button.png new file mode 100644 index 00000000000000..9427d6d574065f Binary files /dev/null and b/topics/introduction/images/run_workflow_button.png differ diff --git a/topics/introduction/images/wf_editor_open.png b/topics/introduction/images/wf_editor_open.png new file mode 100644 index 00000000000000..2c75438fcadac7 Binary files /dev/null and b/topics/introduction/images/wf_editor_open.png differ diff --git a/topics/introduction/images/workflow_cards.png b/topics/introduction/images/workflow_cards.png new file mode 100644 index 00000000000000..e950e9219fcfcf Binary files /dev/null and b/topics/introduction/images/workflow_cards.png differ diff --git a/topics/introduction/images/workflow_running.png b/topics/introduction/images/workflow_running.png new file mode 100644 index 00000000000000..5f161d883eb41f Binary files /dev/null and b/topics/introduction/images/workflow_running.png differ diff --git a/topics/introduction/images/workflow_setting_inputs.png b/topics/introduction/images/workflow_setting_inputs.png new file mode 100644 index 00000000000000..6ada8881ed336a Binary files /dev/null and b/topics/introduction/images/workflow_setting_inputs.png differ diff --git a/topics/introduction/tutorials/galaxy-intro-101/tutorial.md b/topics/introduction/tutorials/galaxy-intro-101/tutorial.md index aeecc6cae4f6c5..f8ccf7769dfc7b 100644 --- a/topics/introduction/tutorials/galaxy-intro-101/tutorial.md +++ b/topics/introduction/tutorials/galaxy-intro-101/tutorial.md @@ -66,6 +66,8 @@ We start with the question: In human chromosome 22, which exon has the highest n You may be familiar with the [UCSC Genome Browser](https://genome.ucsc.edu/) or another resource like it, and know that you can find the data there. But even with your data in hand, you still have the question: "how do I actually compute this?" There is really a straightforward answer: **Galaxy**. So let's try it... +# Get your workspace ready + Browse to your favorite [Galaxy instance](https://galaxyproject.org/use/) and log in or register. {% snippet faqs/galaxy/account_create.md %} @@ -77,9 +79,13 @@ The Galaxy interface consists of three main parts: 3. Your analysis **History** is recorded on the right -> ![Galaxy interface screenshot showing History panel on the right, tools panel on the left, and main panel in the center](../../images/galaxy_interface.svg "Galactic triptych: the three panels of Galaxy interface: Tools, Center Panel, and History") +![Galaxy interface screenshot showing History panel on the right, tools panel on the left, and main panel in the center](../../images/galaxy_interface.svg "Galactic triptych: the three panels of Galaxy interface: Tools, Center Panel, and History. Here you also see the 'Activity bar' that can be turned on and off (Don't see the Activity Bar? See a Tip below).") {: .comment} + +{% snippet faqs/galaxy/activity_bar_how_to_enable.md %} + + When you start Galaxy for very first time, your history will be empty. Let's add some data to it. > Create history @@ -90,11 +96,13 @@ When you start Galaxy for very first time, your history will be empty. Let's add > > 2. **Rename your history** to be meaningful and easy to find. You can do this by clicking on the title of the history (which by default is *Unnamed history*) and typing **Galaxy 101** as the name. Do not forget to hit the Enter key on your keyboard to save it. > -> ![Rename the history](../../../../shared/images/rename_history.png) +> ![Rename the history](../../../../shared/images/rename_history.svg) > {: .hands_on} -## Locating Exons +# Analysis + +## Locate Exons First we need to get some data into our history. You can upload files from your computer, or Galaxy can also fetch data directly from external sources. We know UCSC has exon locations for humans and we can use Galaxy to import the data for chromosome 22, directly from the UCSC table browser. @@ -103,7 +111,7 @@ First we need to get some data into our history. You can upload files from your > > ![upload data button](../../images/upload-data.png) > -> This brings up a box: +> This brings up the upload interface: > > ![filebox](../../images/upload-box.png) > @@ -218,8 +226,6 @@ Below we describe how you can do this, but it is not necessary for this tutorial > {: .tip} -# Analysis - ## Find exons with the most SNPs Our objective is to find which exon contains the most SNPs. Therefore we have to intersect the file with the exon locations with the file containing the SNP locations (here "intersect" is just a fancy word for printing SNPs and exons that overlap side-by-side). @@ -236,7 +242,7 @@ Our objective is to find which exon contains the most SNPs. Therefore we have to > > To find intersection we will be using `intersect intervals` tool from [BEDTools](https://bedtools.readthedocs.io/en/latest/content/overview.html) package. > -> 1. {% tool [bedtools intersect intervals](toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_intersectbed/2.30.0) %} the intervals of two datasets side-by-side: +> 1. {% tool [bedtools intersect intervals](toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_intersectbed/2.30.0+galaxy1) %} the intervals of two datasets side-by-side: > > Enter the word `intersect` in the search bar of the tool panel, and select the > tool named `bedtools Intersect intervals` @@ -246,15 +252,9 @@ Our objective is to find which exon contains the most SNPs. Therefore we have to > - *"File B to intersect with A"*: `SNPs` > - *"What should be written to the output file?"*: `Write the original entry in B for each overlap...`, which means that only matches are included in the output (i.e. only exons with SNPs in it and only SNPs that fall in exons) > -> The interface of the tool should look like this: -> +> The interface of the tool should look like this: > ![Bedtool intersect interval interface](../../images/101_bed_intersect_interface.png) > -> > How do I use this tool? -> > All Galaxy tools include documentation. If you scroll down on this page, you will find the help of the tool. -> {: .tip} -> -> > 2. Click **Run Tool** > 3. Wait for the job to finish > 4. View the resulting file (with the {% icon galaxy-eye %} (eye) icon). If everything went okay, you should see a file that looks similar to this: @@ -262,15 +262,18 @@ Our objective is to find which exon contains the most SNPs. Therefore we have to > ![Contents of the `Join` output dataset](../../images/101_joined.png) > > Here column 4 contains exon IDs (e.g., `ENST00000252835.5_cds_0_0_chr22_15528159_f`) and column 10 lists SNP IDs (e.g., `rs9617249`) Remember that variations are possible due to using different versions of UCSC databases: as long as you have similar looking columns you did everything right! +> > Where do I find tool documentation? +> > All Galaxy tools include documentation. If you scroll down on this page, you will find the help of the tool. +> {: .tip} > -> > If things didn't work... -> > -> > Did the Intersect tool error with a memory failure? Or is this step executing for a long time? Most likely a setting was missed when extracting the data from the UCSC Table Browser. Try again, double checking that: -> > -> > * For both SNP and EXON: *"region"* is actually changed to `position` with value `chr22` -> > * For EXON: *"Create one BED record per"* `Coding Exons` is selected (*not* `Whole Gene` as for the SNP data) -> > * Carefully inspect the remaining Table Browser settings if these two most common reasons for problems were correct in your tool executions -> {: .comment} +> > If things didn't work... +> > +> > Did the Intersect tool error with a memory failure? Or is this step executing for a long time? Most likely a setting was missed when extracting the data from the UCSC Table Browser. Try again, double checking that: +> > +> > * For both SNP and EXON: *"region"* is actually changed to `position` with value `chr22` +> > * For EXON: *"Create one BED record per"* `Coding Exons` is selected (*not* `Whole Gene` as for the SNP data) +> > * Carefully inspect the remaining Table Browser settings if these two most common reasons for problems were correct in your tool executions +> {: .comment} > {: .hands_on} @@ -297,7 +300,7 @@ Since each line in our file represents a single overlap between SNP and exon, we > Counting SNPs > -> 1. {% tool [Datamash](toolshed.g2.bx.psu.edu/repos/iuc/datamash_ops/datamash_ops/1.1.0) %} (operations on tabular data): +> 1. {% tool [Datamash](toolshed.g2.bx.psu.edu/repos/iuc/datamash_ops/datamash_ops/1.8+galaxy0) %} (operations on tabular data): > > - *"Input tabular dataset"*: select the output dataset from **bedtools intersect intervals** {% icon tool %} > - *"Group by fields"*: `Column: 4` (the column with the exon IDs) @@ -322,7 +325,7 @@ This file contains only two columns. The first contains the exon IDs, and the se > How many exons are there in total in your file? > > > -> > Each line now represents a different exon, so you can see the answer to this when you expand the history item, as in the image above. The exact number you see for your dataset may be slightly different due to the updates to the exon and SNPs information in UCSC. In our case the dataset contains 4,242 lines, which is equal to the number of exons overlapped by at least one SNP. +> > Each line now represents a different exon, so you can see the answer to this when you expand the history item, as in the image above. The exact number you see for your dataset may be slightly different due to the updates to the exon and SNPs information in UCSC. In our case the dataset contains 4,241 lines, which is equal to the number of exons overlapped by at least one SNP. > > > {: .solution } {: .question} @@ -333,12 +336,13 @@ Now that we have a list of all exons, and the number of SNPs they contain, we wo > Sorting > -> 1. {% tool [Sort](sort1) %} data in ascending or descending order: +> 1. {% tool [Sort](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/1.1.1sort1) %} data in ascending or descending order: > -> - *"Sort Dataset"*: Output from **Datamash** {% icon tool %} -> - *"on column"*: `Column: 2` -> - *"with flavor"*: `Numerical sort` -> - *"everything in"*: `Descending order` +> - *"Sort Query"*: Output from **Datamash** {% icon tool %} +> - In *"Column selections"* set the following: +> - *"on column"*: `Column: 2` +> - *"in"*: `Descending order` +> - *"Flavor"*: `Fast numeric sort` > > 2. Click **Run Tool** > @@ -359,7 +363,7 @@ Now that we have a list of all exons, and the number of SNPs they contain, we wo > {: .solution} {: .question} -## Select the top five exons +## Select top five exons Let's say we want a list with just the top-5 exons with highest number of SNPs. @@ -367,7 +371,7 @@ Let's say we want a list with just the top-5 exons with highest number of SNPs. > > 1. {% tool [Select first](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_head_tool/1.1.0) %} lines from a dataset (head): > -> - *"File to select"*: The output from **Sort** {% icon tool %} +> - *"File to select"*: The output from **Sort** {% icon tool %} (previous step of the analysis) > - "*Operation*": `Keep first lines` > - *"Number of lines"*: `5` > @@ -377,7 +381,7 @@ Let's say we want a list with just the top-5 exons with highest number of SNPs. > {: .hands_on} -## Recovering exon info +## Recover exon info Congratulations! You have now determined which exons on chromosome 22 have the highest number of SNPs, but what else can we learn about them? One way to learn more about a genetic location is to view it in a genome browser. However, in the process of getting our answer, we have lost information about the location of these exons on the chromosome. But fear not, Galaxy saves all of your data, so we can recover this information quite easily. @@ -387,7 +391,7 @@ Congratulations! You have now determined which exons on chromosome 22 have the h > > - *"Compare"*: `Exons` > - *"Using column"*: `Column: 4` -> - *"against"*: the output from **Select first** {% icon tool %} +> - *"against"*: the output from **Select first** {% icon tool %} (previous step of the analysis) > - *"and column"*: `Column: 1` > - *"to find"*: `Matching rows of 1st dataset` > @@ -397,7 +401,7 @@ Congratulations! You have now determined which exons on chromosome 22 have the h > ![Contents of the `Compare two Datasets` output dataset](../../images/101_19.png) {: .hands_on} -## Displaying data in UCSC genome browser +## Display data in UCSC genome browser A good way to learn about these exons is to look at their genomic surrounding. This can be done by using genome browsers. Galaxy can launch a genome browser such as IGV on your local machine, and it can connect to online genome browsers as well. An example of such an online genome browser is the UCSC genome browser. @@ -405,7 +409,7 @@ A good way to learn about these exons is to look at their genomic surrounding. T > > 1. First, check that the **database** of your latest history dataset is `hg38`. If not, click on the {% icon galaxy-pencil %} pencil icon and modify the **Database/Build:** field to `Human Dec. 2013 (GRCh38/hg38) (hg38)`. > -> {% snippet faqs/galaxy/datasets_change_dbkey.md dbkey="hg38" %} +> {% snippet faqs/galaxy/datasets_change_dbkey.md dbkey="Human Dec. 2013 (GRCh38/hg38) (hg38)" %} > > 2. Second, check that the **format** of your latest history dataset is `bed`. If not, click on the {% icon galaxy-pencil %} pencil icon and modify the **Datatype** field to `bed`. > @@ -426,22 +430,22 @@ A good way to learn about these exons is to look at their genomic surrounding. T UCSC provides a large number of tracks that can help you get a sense of your genomic area, it contains common SNPs, repeats, genes, and much more (scroll down to find all possible tracks). -# Galaxy management +# Histories and workflows: A brief introduction -In Galaxy your analyses live in histories such as your current one. Histories can be very large, and you can have as many histories as you want. You can control your histories (switching, copying, sharing, creating a fresh history, etc.) in the {% icon galaxy-gear %} **History Options** menu on the top of the history panel: +In Galaxy your analyses live in histories such as your current one. Histories can be very large, and you can have as many histories as you want. You can control your histories (switching, copying, sharing, creating a fresh history, etc.) in the {% icon galaxy-history-options %} **History Options** menu on the top of the history panel: -![History options menu](../../images/history_options_menu.png) +![History options menu](../../images/history_options_menu.png "'History options' allows for a variety of history operations") -If you create a new history, your current history does not disappear. If you would like to list all of your histories just use the {% icon galaxy-columns %} Multi-history view: +## List your histories -![Overview of histories with their datasets](../../images/101_history-overview.png) +You can create as many histories as you want. If you create a new history, your current history does not disappear. You can view your histories in two ways: (1) as a list or (2) side by side (also known as "Multiview"). Two Tip boxes below explain both of these approaches: -Here you can: -- switch between different histories, -- delete a history, -- purge it (i.e. permanently delete it, this action cannot be reversed) -- copy histories -- copy datasets between histories (by dragging and dropping) +{% snippet faqs/galaxy/histories_list.md %} + +{% snippet faqs/galaxy/histories_side_by_side_view.md %} + + +![Overview of histories with their datasets](../../images/histories_side_by_side_view.png "Histories side-by-side view: in this view you drag datasets between histories, switch between histories, create new histories etc.") You can always return to your analysis view by clicking on Home icon {% icon galaxy-home %} (**Analyze Data** on older versions of Galaxy) in the top menu bar. @@ -457,7 +461,7 @@ Galaxy makes this very easy with the `Extract workflow` option. This means any t > > This will make the creation of the workflow easier. > -> 2. Click on {% icon galaxy-gear %} (**History options**) at the top of your history panel and select **Extract workflow**. +> 2. Click on "**History options**" dropdown at the top of your history panel and select **Extract workflow**. > > ![`Extract Workflow` entry in the history options menu](../../images/history_menu_extract_workflow.png) > @@ -477,7 +481,7 @@ Galaxy makes this very easy with the `Extract workflow` option. This means any t > > 6. Click on **Workflow** in the top menu of Galaxy. Here you have a list of all your workflows. Your newly created workflow should be listed at the top: > -> ![`Your workflows` list](../../images/101_26.png) +> ![`Your workflows` list](../../images/workflow_cards.png "Workflow are listed in the center pane of the Galaxy interface as cards.") {: .hands_on} ## The workflow editor @@ -488,16 +492,14 @@ We can examine the workflow in Galaxy's workflow editor. Here you can view/chang > > 1. Click on the triangle to the right of your workflow name. > -> ![`Edit` option in the menu for the latest workflow](../../images/101_27.png) +> ![`Edit` option in the menu for the latest workflow](../../images/open_wf_editor.png "To open the interactive workflow editor click the 'Edit' button.") > > 2. Select **Edit** to launch the workflow editor. You should see something like this: > -> ![Workflow editor](../../images/101_28.png) +> ![Workflow editor](../../images/wf_editor_open.png "Workflow editor interface. It can be used for creation and editing of workflows of any complexity.") > > When you click on a workflow step, you will get a view of all the parameter settings for that tool on the right-hand side of your screen. > -> {% snippet faqs/galaxy/workflows_hide_intermediate_steps.md %} -> > 3. Re-arrange the boxes so you can clearly see the data flow. The default automatic layout hides some of the connections due to overlapping and box placement. > > 4. Make sure the **check boxes** for `out_file1` in the `Select First` and `Compare two Datasets` tools are selected. Make sure that everything else is not selected. @@ -515,7 +517,7 @@ We can examine the workflow in Galaxy's workflow editor. Here you can view/chang > - In the menu on the right click on `Configure Output: 'out_file1'` > - Under `Rename dataset`, and enter a descriptive name for the output dataset like `Top 5 exon IDs` > -> ![Rename the output of the `Select first` tool step](../../images/101_34.png) +> ![Rename the output of the `Select first` tool step](../../images/configure_wf_output.png "The datasets generated by the workflow execution can be automatically renamed using the 'Rename dataset' option") > > 7. **Repeat** this for the output of the `Compare two Datasets` tool, naming it `Top 5 exons` > @@ -539,10 +541,17 @@ Now that we have built our workflow, let's use it on some different data. For ex > > {% snippet faqs/galaxy/histories_create_new.md %} > -> 2. We will need the list of exons again. We don't have to get this from UCSC again, we can just **copy** it from our previous history. The easiest way to do this is to go to the {% icon galaxy-columns %} history overview. Here you can just drag and drop datasets from one history to another. +> 2. We will need the list of exons again. We don't have to get this from UCSC again, we can just **copy** it from our previous history. To do this: +> +> - Bring up a list of all you histories: +> +> {% snippet faqs/galaxy/histories_list.md %} > -> ![Drag and drop of `Exons` dataset in the history overview](../../images/copying_data.gif) +> - Display the "Galaxy 101" history in the Center pane by clicking "Open in Center pane" button: +> ![Opening a history in the center pane](../../images/open_in_center_pane_button.png) > +> - Drag an drop `Exons` dataset into the empty history created at step 1 +> ![Drag and drop of `Exons` dataset in the history overview](../../images/drag_n_drop_dataset.gif) > 3. Click the Home icon {% icon galaxy-home %} (or **Analyze Data** on older Galaxy versions) at the top to return to the main analysis window > > 4. {% tool [Upload Data](upload1) %} the Repeats file from [Zenodo](https://doi.org/10.5281/zenodo.4104428) @@ -580,7 +589,7 @@ Now that we have built our workflow, let's use it on some different data. For ex > > 6. Open the **workflow menu** (top menu bar). Find the workflow you made in the previous section, and select the option `Run`. > -> ![`Run` option in the workflow menu](../../images/101_37.png) +> ![`Run` option in the workflow menu](../../images/run_workflow_button.png) > > {% snippet faqs/galaxy/workflows_run.md %} > @@ -591,7 +600,7 @@ Now that we have built our workflow, let's use it on some different data. For ex > - {% icon param-file %} *"Exons"*: the `Exons` file you copied from our previous history > - {% icon param-file %} *"Features"*: the `Repeats` file we downloaded from UCSC > -> ![Settings for running the workflow](../../images/101_38.png) +> ![Settings for running the workflow](../../images/workflow_setting_inputs.png) > > > Potential workflow issues > > @@ -601,7 +610,7 @@ Now that we have built our workflow, let's use it on some different data. For ex > > 8. Once the workflow has started, you will initially be able to see all its steps, but the unimportant intermediates will disappear after they complete successfully: > -> ![Datasets appearing in the history](../../images/101_39.png) +> ![Datasets appearing in the history](../../images/workflow_running.png) {: .hands_on} > Unhiding hidden datasets @@ -612,7 +621,7 @@ Now that we have built our workflow, let's use it on some different data. For ex > Which exon had the highest number of repeats? How many repeats were there? {: .question} -## Share your work +# Share your work One of the most important features of Galaxy comes at the end of an analysis. When you have published striking findings, it is important that other researchers are able to reproduce your in-silico experiment. Galaxy enables users to easily share their workflows and histories with others. diff --git a/topics/introduction/tutorials/galaxy-intro-101/workflows/galaxy-intro-101-workflow.ga b/topics/introduction/tutorials/galaxy-intro-101/workflows/galaxy-intro-101-workflow.ga index 539b78db911047..36b781bae14c16 100644 --- a/topics/introduction/tutorials/galaxy-intro-101/workflows/galaxy-intro-101-workflow.ga +++ b/topics/introduction/tutorials/galaxy-intro-101/workflows/galaxy-intro-101-workflow.ga @@ -1,285 +1,306 @@ { - "a_galaxy_workflow": "true", - "annotation": "Galaxy 101", - "creator": [ - { - "class": "Person", - "identifier": "0000-0002-5987-8032", - "name": "Anton Nekrutenko" - }, - { - "class": "Person", - "identifier": "0000-0001-9760-8992", - "name": "Helena Rasche" - } - ], - "format-version": "0.1", - "license": "CC-BY-4.0", - "name": "Find exons with the highest number of features", - "steps": { - "0": { - "annotation": "Input exons file", - "content_id": null, - "errors": null, - "id": 0, - "input_connections": {}, - "inputs": [ - { - "description": "Input exons file", - "name": "Exons" - } - ], - "label": "Exons", - "name": "Input dataset", - "outputs": [], - "position": { - "left": 0, - "top": 162.5 - }, - "tool_id": null, - "tool_state": "{\"optional\": false, \"tag\": null}", - "tool_version": null, - "type": "data_input", - "uuid": "bd3df190-bc2c-4432-a534-7b1b21cd58c9", - "when": null, - "workflow_outputs": [] - }, - "1": { - "annotation": "Input features file", - "content_id": null, - "errors": null, - "id": 1, - "input_connections": {}, - "inputs": [ + "a_galaxy_workflow": "true", + "annotation": "Galaxy 101", + "comments": [], + "creator": [ { - "description": "Input features file", - "name": "Features" - } - ], - "label": "Features", - "name": "Input dataset", - "outputs": [], - "position": { - "left": 49, - "top": 405.5 - }, - "tool_id": null, - "tool_state": "{\"optional\": false, \"tag\": null}", - "tool_version": null, - "type": "data_input", - "uuid": "b7b8e25f-8db4-4707-bfb9-9e5a527e28c3", - "when": null, - "workflow_outputs": [] - }, - "2": { - "annotation": "", - "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_intersectbed/2.30.0", - "errors": null, - "id": 2, - "input_connections": { - "inputA": { - "id": 0, - "output_name": "output" + "class": "Person", + "identifier": "0000-0002-5987-8032", + "name": "Anton Nekrutenko" }, - "reduce_or_iterate|inputB": { - "id": 1, - "output_name": "output" - } - }, - "inputs": [], - "label": null, - "name": "bedtools Intersect intervals", - "outputs": [ - { - "name": "output", - "type": "input" - } - ], - "position": { - "left": 323, - "top": 359.5 - }, - "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_intersectbed/2.30.0", - "tool_shed_repository": { - "changeset_revision": "07e8b80f278c", - "name": "bedtools", - "owner": "iuc", - "tool_shed": "toolshed.g2.bx.psu.edu" - }, - "tool_state": "{\"__input_ext\": \"bed\", \"bed\": false, \"chromInfo\": \"/cvmfs/data.galaxyproject.org/managed/len/ucsc/?.len\", \"count\": false, \"fraction_cond\": {\"fraction_select\": \"default\", \"__current_case__\": 0}, \"genome_file_opts\": {\"genome_file_opts_selector\": \"loc\", \"__current_case__\": 0, \"genome\": null}, \"header\": false, \"inputA\": {\"__class__\": \"ConnectedValue\"}, \"invert\": false, \"once\": false, \"overlap_mode\": [\"-wb\"], \"reduce_or_iterate\": {\"reduce_or_iterate_selector\": \"iterate\", \"__current_case__\": 0, \"inputB\": {\"__class__\": \"ConnectedValue\"}}, \"sorted\": false, \"split\": false, \"strand\": \"\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "2.30.0", - "type": "tool", - "uuid": "4fc2b17c-64d8-4c1c-a2d3-743f2ea9bcaf", - "when": null, - "workflow_outputs": [] - }, - "3": { - "annotation": "", - "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/datamash_ops/datamash_ops/1.1.0", - "errors": null, - "id": 3, - "input_connections": { - "in_file": { - "id": 2, - "output_name": "output" - } - }, - "inputs": [], - "label": null, - "name": "Datamash", - "outputs": [ - { - "name": "out_file", - "type": "tabular" - } - ], - "position": { - "left": 618, - "top": 419.5 - }, - "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/datamash_ops/datamash_ops/1.1.0", - "tool_shed_repository": { - "changeset_revision": "562f3c677828", - "name": "datamash_ops", - "owner": "iuc", - "tool_shed": "toolshed.g2.bx.psu.edu" - }, - "tool_state": "{\"__input_ext\": \"bed\", \"chromInfo\": \"/cvmfs/data.galaxyproject.org/managed/len/ucsc/?.len\", \"grouping\": \"4\", \"header_in\": false, \"header_out\": false, \"ignore_case\": false, \"in_file\": {\"__class__\": \"ConnectedValue\"}, \"need_sort\": false, \"operations\": [{\"__index__\": 0, \"op_name\": \"countunique\", \"op_column\": \"10\"}], \"print_full_line\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "1.1.0", - "type": "tool", - "uuid": "d6710e24-dbfb-4aef-8a63-2836cdc831e4", - "when": null, - "workflow_outputs": [] - }, - "4": { - "annotation": "", - "content_id": "sort1", - "errors": null, - "id": 4, - "input_connections": { - "input": { - "id": 3, - "output_name": "out_file" - } - }, - "inputs": [], - "label": null, - "name": "Sort", - "outputs": [ { - "name": "out_file1", - "type": "input" + "class": "Person", + "identifier": "0000-0001-9760-8992", + "name": "Helena Rasche" } - ], - "position": { - "left": 612, - "top": 107.5 - }, - "post_job_actions": {}, - "tool_id": "sort1", - "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/cvmfs/data.galaxyproject.org/managed/len/ucsc/?.len\", \"column\": \"2\", \"column_set\": [], \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"order\": \"DESC\", \"style\": \"num\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "1.2.0", - "type": "tool", - "uuid": "4dd35991-4996-4f7d-8690-bde783f6fa6a", - "when": null, - "workflow_outputs": [] - }, - "5": { - "annotation": "", - "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_head_tool/1.1.0", - "errors": null, - "id": 5, - "input_connections": { - "infile": { - "id": 4, - "output_name": "out_file1" - } - }, - "inputs": [], - "label": null, - "name": "Select first", - "outputs": [ - { - "name": "outfile", - "type": "input" - } - ], - "position": { - "left": 910, - "top": 0 - }, - "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_head_tool/1.1.0", - "tool_shed_repository": { - "changeset_revision": "ddf54b12c295", - "name": "text_processing", - "owner": "bgruening", - "tool_shed": "toolshed.g2.bx.psu.edu" - }, - "tool_state": "{\"complement\": \"\", \"count\": \"5\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "1.1.0", - "type": "tool", - "uuid": "820fd964-2460-4b50-8491-968d796500fc", - "when": null, - "workflow_outputs": [] - }, - "6": { - "annotation": "", - "content_id": "comp1", - "errors": null, - "id": 6, - "input_connections": { - "input1": { - "id": 0, - "output_name": "output" + ], + "format-version": "0.1", + "license": "CC-BY-4.0", + "name": "Find exons with the highest number of features", + "steps": { + "0": { + "annotation": "Input exons file", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Input exons file", + "name": "Exons" + } + ], + "label": "Exons", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 187.2359999999986 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "bd3df190-bc2c-4432-a534-7b1b21cd58c9", + "when": null, + "workflow_outputs": [] }, - "input2": { - "id": 5, - "output_name": "outfile" - } - }, - "inputs": [], - "label": null, - "name": "Compare two Datasets", - "outputs": [ - { - "name": "out_file1", - "type": "input" - } - ], - "position": { - "left": 1133, - "top": 183.5 - }, - "post_job_actions": { - "RenameDatasetActionout_file1": { - "action_arguments": { - "newname": "Top 5 exon IDs" - }, - "action_type": "RenameDatasetAction", - "output_name": "out_file1" - } - }, - "tool_id": "comp1", - "tool_state": "{\"field1\": \"4\", \"field2\": \"1\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"mode\": \"N\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", - "tool_version": "1.0.2", - "type": "tool", - "uuid": "52698c72-b6cc-4ca4-84b0-c84dd018e389", - "when": null, - "workflow_outputs": [ - { - "label": "top_5_exons", - "output_name": "out_file1", - "uuid": "565e3d76-0230-4a5e-87c1-9c36ce0b7df8" + "1": { + "annotation": "Input features file", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "Input features file", + "name": "Features" + } + ], + "label": "Features", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 49, + "top": 430.2359999999986 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "b7b8e25f-8db4-4707-bfb9-9e5a527e28c3", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_intersectbed/2.30.0+galaxy1", + "errors": null, + "id": 2, + "input_connections": { + "inputA": { + "id": 0, + "output_name": "output" + }, + "reduce_or_iterate|inputB": { + "id": 1, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool bedtools Intersect intervals", + "name": "inputA" + }, + { + "description": "runtime parameter for tool bedtools Intersect intervals", + "name": "reduce_or_iterate" + } + ], + "label": null, + "name": "bedtools Intersect intervals", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 323, + "top": 384.2359999999986 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_intersectbed/2.30.0+galaxy1", + "tool_shed_repository": { + "changeset_revision": "a1a923cd89e8", + "name": "bedtools", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"bed\": false, \"count\": false, \"fraction_cond\": {\"fraction_select\": \"default\", \"__current_case__\": 0}, \"genome_file_opts\": {\"genome_file_opts_selector\": \"loc\", \"__current_case__\": 0, \"genome\": null}, \"header\": false, \"inputA\": {\"__class__\": \"RuntimeValue\"}, \"invert\": false, \"once\": false, \"overlap_mode\": [\"-wb\"], \"reduce_or_iterate\": {\"reduce_or_iterate_selector\": \"iterate\", \"__current_case__\": 0, \"inputB\": {\"__class__\": \"RuntimeValue\"}}, \"sorted\": false, \"split\": false, \"strand\": \"\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.30.0+galaxy1", + "type": "tool", + "uuid": "4fc2b17c-64d8-4c1c-a2d3-743f2ea9bcaf", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/datamash_ops/datamash_ops/1.1.0", + "errors": null, + "id": 3, + "input_connections": { + "in_file": { + "id": 2, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Datamash", + "outputs": [ + { + "name": "out_file", + "type": "tabular" + } + ], + "position": { + "left": 618, + "top": 444.2359999999986 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/datamash_ops/datamash_ops/1.1.0", + "tool_shed_repository": { + "changeset_revision": "562f3c677828", + "name": "datamash_ops", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"bed\", \"chromInfo\": \"/cvmfs/data.galaxyproject.org/managed/len/ucsc/?.len\", \"grouping\": \"4\", \"header_in\": false, \"header_out\": false, \"ignore_case\": false, \"in_file\": {\"__class__\": \"ConnectedValue\"}, \"need_sort\": false, \"operations\": [{\"__index__\": 0, \"op_name\": \"countunique\", \"op_column\": \"10\"}], \"print_full_line\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.0", + "type": "tool", + "uuid": "d6710e24-dbfb-4aef-8a63-2836cdc831e4", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/1.1.1", + "errors": null, + "id": 4, + "input_connections": { + "infile": { + "id": 3, + "output_name": "out_file" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Sort", + "name": "infile" + } + ], + "label": null, + "name": "Sort", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 663.5, + "top": 0.0 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/1.1.1", + "tool_shed_repository": { + "changeset_revision": "ddf54b12c295", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"header\": \"0\", \"ignore_case\": false, \"infile\": {\"__class__\": \"RuntimeValue\"}, \"sortkeys\": [{\"__index__\": 0, \"column\": \"2\", \"order\": \"r\", \"style\": \"n\"}], \"unique\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "9311b83d-8ff6-4398-be37-9416281ccfac", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_head_tool/1.1.0", + "errors": null, + "id": 5, + "input_connections": { + "infile": { + "id": 4, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Select first", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 896, + "top": 29.735999999998604 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_head_tool/1.1.0", + "tool_shed_repository": { + "changeset_revision": "ddf54b12c295", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"complement\": \"\", \"count\": \"5\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.0", + "type": "tool", + "uuid": "820fd964-2460-4b50-8491-968d796500fc", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "", + "content_id": "comp1", + "errors": null, + "id": 6, + "input_connections": { + "input1": { + "id": 0, + "output_name": "output" + }, + "input2": { + "id": 5, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Compare two Datasets", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 1133, + "top": 208.2359999999986 + }, + "post_job_actions": { + "RenameDatasetActionout_file1": { + "action_arguments": { + "newname": "Top 5 exon IDs" + }, + "action_type": "RenameDatasetAction", + "output_name": "out_file1" + } + }, + "tool_id": "comp1", + "tool_state": "{\"field1\": \"4\", \"field2\": \"1\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"mode\": \"N\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "52698c72-b6cc-4ca4-84b0-c84dd018e389", + "when": null, + "workflow_outputs": [ + { + "label": "top_5_exons", + "output_name": "out_file1", + "uuid": "565e3d76-0230-4a5e-87c1-9c36ce0b7df8" + } + ] } - ] - } - }, - "tags": [ - "introduction" - ], - "uuid": "7e91dbde-2461-4786-b78f-e87f9e7de6d9", - "version": 5 -} + }, + "tags": [ + "introduction" + ], + "uuid": "274102ef-c8cf-47eb-933e-a1afd5b46891", + "version": 1 +} \ No newline at end of file diff --git a/topics/microbiome/metadata.yaml b/topics/microbiome/metadata.yaml index 39a6b0bb4458c4..5d30a8b8693bf2 100644 --- a/topics/microbiome/metadata.yaml +++ b/topics/microbiome/metadata.yaml @@ -29,3 +29,17 @@ references: title: "Uniting the classification of cultured and uncultured bacteria and archaea using 16S rRNA gene sequences." link: "https://www.ncbi.nlm.nih.gov/pubmed/25118885" summary: "" + +subtopics: + - id: intro + title: "Introduction" + description: "Start here if you are new to microbiome analyses in Galaxy." + - id: metabarcoding + title: "Metabarcoding / Amplicon analyses" + description: "Taxonomic characterisation of mixed samples using a single gene region." + - id: metagenomics + title: "Metagenomics" + description: "Taxonomic and functional characterisation and assembly of mixed samples using whole genome data." + - id: metatranscriptomics + title: "Metatranscriptomics" + description: "Taxonomic and functional characterisation of mixed samples using transcriptome data." \ No newline at end of file diff --git a/topics/microbiome/tutorials/beer-data-analysis/tutorial.md b/topics/microbiome/tutorials/beer-data-analysis/tutorial.md index 52cc0fce2b746c..1fc5db1ef21a00 100644 --- a/topics/microbiome/tutorials/beer-data-analysis/tutorial.md +++ b/topics/microbiome/tutorials/beer-data-analysis/tutorial.md @@ -18,6 +18,7 @@ key_points: - Yeast species but also contamination can be identified and visualized directly from the sequences using several bioinformatics tools - With its graphical interface, Galaxy makes it easy to use the needed bioinformatics tools - Beer microbiome is not just made of yeast and can be quite complex +subtopic: metagenomics tags: - nanopore - beer @@ -34,6 +35,11 @@ contributions: - gallantries redirect_from: - /topics/metagenomics/tutorials/beer-data-analysis/tutorial +edam_ontology: +- topic_3174 # Metagenomics +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis --- diff --git a/topics/microbiome/tutorials/general-tutorial/tutorial.md b/topics/microbiome/tutorials/general-tutorial/tutorial.md index 82f8fec7a8ec7f..5e8ea1bb2a4917 100644 --- a/topics/microbiome/tutorials/general-tutorial/tutorial.md +++ b/topics/microbiome/tutorials/general-tutorial/tutorial.md @@ -21,10 +21,17 @@ key_points: contributors: - shiltemann - bebatut +subtopic: intro tags: - microgalaxy redirect_from: - /topics/metagenomics/tutorials/general-tutorial/tutorial +edam_ontology: +- topic_3174 # Metagenomics +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis +- topic_4038 # Metabarcoding --- diff --git a/topics/microbiome/tutorials/metagenomics-assembly/tutorial.md b/topics/microbiome/tutorials/metagenomics-assembly/tutorial.md index 8865152585c7c7..aefbd8d0df2b9d 100644 --- a/topics/microbiome/tutorials/metagenomics-assembly/tutorial.md +++ b/topics/microbiome/tutorials/metagenomics-assembly/tutorial.md @@ -35,6 +35,7 @@ contributions: - bebatut funding: - gallantries +subtopic: metagenomics tags: - assembly - metagenomics diff --git a/topics/microbiome/tutorials/metagenomics-binning/tutorial.md b/topics/microbiome/tutorials/metagenomics-binning/tutorial.md index d4e45992fa9fe4..f8f9160b4736a1 100644 --- a/topics/microbiome/tutorials/metagenomics-binning/tutorial.md +++ b/topics/microbiome/tutorials/metagenomics-binning/tutorial.md @@ -26,12 +26,16 @@ contributions: authorship: - npechl - fpsom +subtopic: metagenomics tags: - binning - metagenomics - microgalaxy redirect_from: - /topics/metagenomics/tutorials/metagenomics-binning/tutorial +edam_ontology: +- topic_3174 # Metagenomics +- topic_0196 # Sequence assembly --- Metagenomics is the study of genetic material recovered directly from environmental samples, such as soil, water, or gut contents, without the need for isolation or cultivation of individual organisms. Metagenomics binning is a process used to classify DNA sequences obtained from metagenomic sequencing into discrete groups, or bins, based on their similarity to each other. diff --git a/topics/microbiome/tutorials/metatranscriptomics-short/tutorial.md b/topics/microbiome/tutorials/metatranscriptomics-short/tutorial.md index 5502b28ab51788..e53875a80df35b 100644 --- a/topics/microbiome/tutorials/metatranscriptomics-short/tutorial.md +++ b/topics/microbiome/tutorials/metatranscriptomics-short/tutorial.md @@ -13,6 +13,7 @@ objectives: - Understand where metatranscriptomics fits in 'multi-omic' analysis of microbiomes - Visualise a community structure level: Introductory +subtopic: metatranscriptomics tags: - metatranscriptomics - microgalaxy @@ -34,6 +35,12 @@ contributors: - EngyNasr redirect_from: - /topics/metagenomics/tutorials/metatranscriptomics-short/tutorial +edam_ontology: +- topic_3941 # Metatranscriptomics +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_1775 # Function analysis +- topic_0080 # Sequence analysis --- diff --git a/topics/microbiome/tutorials/metatranscriptomics/tutorial.md b/topics/microbiome/tutorials/metatranscriptomics/tutorial.md index cd6fc154e5cdc8..5e2d3e99f2b572 100644 --- a/topics/microbiome/tutorials/metatranscriptomics/tutorial.md +++ b/topics/microbiome/tutorials/metatranscriptomics/tutorial.md @@ -13,6 +13,7 @@ objectives: - Understand where metatranscriptomics fits in 'multi-omic' analysis of microbiomes - Visualise a community structure level: Introductory +subtopic: metatranscriptomics tags: - metatranscriptomics - microgalaxy @@ -36,6 +37,12 @@ contributors: - EngyNasr redirect_from: - /topics/metagenomics/tutorials/metatranscriptomics/tutorial +edam_ontology: +- topic_3941 # Metatranscriptomics +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_1775 # Function analysis +- topic_0080 # Sequence analysis --- {% include topics/microbiome/tutorials/metatranscriptomics/content.md short=false %} diff --git a/topics/microbiome/tutorials/mothur-miseq-sop-short/tutorial.md b/topics/microbiome/tutorials/mothur-miseq-sop-short/tutorial.md index 681cd553d8e76b..480d93b3c8fc81 100644 --- a/topics/microbiome/tutorials/mothur-miseq-sop-short/tutorial.md +++ b/topics/microbiome/tutorials/mothur-miseq-sop-short/tutorial.md @@ -3,6 +3,7 @@ layout: tutorial_hands_on title: "16S Microbial Analysis with mothur (short)" zenodo_link: "https://doi.org/10.5281/zenodo.800651" +priority: 1000 questions: - "What is the effect of normal variation in the gut microbiome on host health?" objectives: @@ -19,10 +20,18 @@ contributors: - shiltemann - bebatut - tnabtaf +subtopic: metabarcoding tags: + - metabarcoding + - 16S - microgalaxy redirect_from: - /topics/metagenomics/tutorials/mothur-miseq-sop-short/tutorial +edam_ontology: +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis +- topic_4038 # Metabarcoding --- {% include topics/microbiome/tutorials/mothur-miseq-sop/content.md short=true %} diff --git a/topics/microbiome/tutorials/mothur-miseq-sop/tutorial.md b/topics/microbiome/tutorials/mothur-miseq-sop/tutorial.md index fbb55b49834d84..43356a66d70c81 100644 --- a/topics/microbiome/tutorials/mothur-miseq-sop/tutorial.md +++ b/topics/microbiome/tutorials/mothur-miseq-sop/tutorial.md @@ -3,6 +3,7 @@ layout: tutorial_hands_on title: "16S Microbial Analysis with mothur (extended)" zenodo_link: "https://doi.org/10.5281/zenodo.800651" +priority: 1000 questions: - "What is the effect of normal variation in the gut microbiome on host health?" objectives: @@ -19,10 +20,18 @@ contributors: - shiltemann - bebatut - tnabtaf +subtopic: metabarcoding tags: + - metabarcoding + - 16S - microgalaxy redirect_from: - /topics/metagenomics/tutorials/mothur-miseq-sop/tutorial +edam_ontology: +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis +- topic_4038 # Metabarcoding --- {% include topics/microbiome/tutorials/mothur-miseq-sop/content.md short=false %} diff --git a/topics/microbiome/tutorials/nanopore-16S-metagenomics/tutorial.md b/topics/microbiome/tutorials/nanopore-16S-metagenomics/tutorial.md index a4315f4a981dfe..83c074bf168172 100644 --- a/topics/microbiome/tutorials/nanopore-16S-metagenomics/tutorial.md +++ b/topics/microbiome/tutorials/nanopore-16S-metagenomics/tutorial.md @@ -16,11 +16,19 @@ key_points: - We preprocessed Nanopore sequences in order to improve their quality contributors: - gallardoalba +subtopic: metabarcoding tags: + - metabarcoding + - 16S - nanopore - microgalaxy redirect_from: - /topics/metagenomics/tutorials/nanopore-16S-metagenomics/tutorial +edam_ontology: +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis +- topic_4038 # Metabarcoding --- diff --git a/topics/microbiome/tutorials/pathogen-detection-from-nanopore-foodborne-data/tutorial.md b/topics/microbiome/tutorials/pathogen-detection-from-nanopore-foodborne-data/tutorial.md index ed825dbde17410..e373a2ace85b8a 100644 --- a/topics/microbiome/tutorials/pathogen-detection-from-nanopore-foodborne-data/tutorial.md +++ b/topics/microbiome/tutorials/pathogen-detection-from-nanopore-foodborne-data/tutorial.md @@ -2,6 +2,7 @@ layout: tutorial_hands_on title: "Pathogen detection from (direct Nanopore) sequencing data using Galaxy - Foodborne Edition" +subtopic: metagenomics tags: - microgalaxy - Nanopore data analysis @@ -36,6 +37,13 @@ contributions: - eosc-life redirect_from: - /topics/metagenomics/tutorials/pathogen-detection-from-nanopore-foodborne-data/tutorial +edam_ontology: +- topic_3174 # Metagenomics +- topic_3305 # Public health and epidemiology +- topic_0637 # Taxonomy +- topic_0196 # Sequence assembly +- topic_0634 # Pathology +- topic_0080 # Sequence analysis --- diff --git a/topics/microbiome/tutorials/plasmid-metagenomics-nanopore/tutorial.md b/topics/microbiome/tutorials/plasmid-metagenomics-nanopore/tutorial.md index 7fd3ff23246594..ade73bff58d10a 100644 --- a/topics/microbiome/tutorials/plasmid-metagenomics-nanopore/tutorial.md +++ b/topics/microbiome/tutorials/plasmid-metagenomics-nanopore/tutorial.md @@ -22,6 +22,7 @@ key_points: contributors: - willemdek11 - shiltemann +subtopic: metabarcoding tags: - nanopore - plasmids @@ -30,6 +31,14 @@ tags: - microgalaxy redirect_from: - /topics/metagenomics/tutorials/plasmid-metagenomics-nanopore/tutorial +edam_ontology: +- topic_3837 # Metagenomic sequencing +- topic_3305 # Public health and epidemiology +- topic_3174 # Metagenomics +- topic_3301 # Microbiology +- topic_3324 # Infectious disease +- topic_0080 # Sequence analysis +- topic_4013 # Antimicrobial resistance --- # Overview diff --git a/topics/microbiome/tutorials/qiime2-cancer-microbiome-intervention/tutorial.md b/topics/microbiome/tutorials/qiime2-cancer-microbiome-intervention/tutorial.md index 6c8e1113a81438..e50608428bfbf9 100644 --- a/topics/microbiome/tutorials/qiime2-cancer-microbiome-intervention/tutorial.md +++ b/topics/microbiome/tutorials/qiime2-cancer-microbiome-intervention/tutorial.md @@ -4,12 +4,19 @@ title: QIIME 2 Cancer Microbiome Intervention hands_on: external hands_on_url: "https://docs.qiime2.org/jupyterbooks/cancer-microbiome-intervention-tutorial/index.html#" time_estimation: 10H +subtopic: metabarcoding tags: -- metagenomics +- metabarcoding +- 16S - taxonomic profiling - diversity - microgalaxy contributions: authorship: - qiime2 ---- \ No newline at end of file +edam_ontology: +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis +- topic_4038 # Metabarcoding +--- diff --git a/topics/microbiome/tutorials/qiime2-moving-pictures/tutorial.md b/topics/microbiome/tutorials/qiime2-moving-pictures/tutorial.md new file mode 100644 index 00000000000000..db03f0b3a49695 --- /dev/null +++ b/topics/microbiome/tutorials/qiime2-moving-pictures/tutorial.md @@ -0,0 +1,21 @@ +--- +layout: tutorial_hands_on +title: QIIME 2 Moving Pictures +hands_on: external +hands_on_url: "https://docs.qiime2.org/2024.2/tutorials/moving-pictures-usage" +time_estimation: 10H +tags: +- metagenomics +- taxonomic profiling +- diversity +- microgalaxy +subtopic: metabarcoding +edam_ontology: +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis +- topic_4038 # Metabarcoding +contributions: + authorship: + - qiime2 +--- \ No newline at end of file diff --git a/topics/microbiome/tutorials/taxonomic-profiling/tutorial.md b/topics/microbiome/tutorials/taxonomic-profiling/tutorial.md index 2ecd79f260c3f8..2ce33a274d8c03 100644 --- a/topics/microbiome/tutorials/taxonomic-profiling/tutorial.md +++ b/topics/microbiome/tutorials/taxonomic-profiling/tutorial.md @@ -26,12 +26,18 @@ contributions: - paulzierep funding: - gallantries +subtopic: metagenomics tags: - metagenomics - taxonomic profiling - microgalaxy redirect_from: - /topics/metagenomics/tutorials/taxonomic-profiling/tutorial +edam_ontology: +- topic_3174 # Metagenomics +- topic_3697 # Microbial ecology +- topic_0637 # Taxonomy +- topic_0080 # Sequence analysis --- diff --git a/topics/proteomics/tutorials/metaproteomics/tutorial.md b/topics/proteomics/tutorials/metaproteomics/tutorial.md index 72a7b00c128ad7..5d87eb22826422 100644 --- a/topics/proteomics/tutorials/metaproteomics/tutorial.md +++ b/topics/proteomics/tutorials/metaproteomics/tutorial.md @@ -2,7 +2,6 @@ layout: tutorial_hands_on title: "Metaproteomics tutorial" -edam_ontology: ["topic_0121"] zenodo_link: "https://doi.org/10.5281/zenodo.839701" questions: - "How can I match metaproteomic mass spectrometry data to peptide sequences derived from shotgun metagenomic data?" @@ -23,6 +22,11 @@ contributors: - subinamehta subtopic: multi-omics tags: [microgalaxy] +edam_ontology: +- topic_0121 # Proteomics +- topic_3922 # Proteogenomics +- topic_3050 # Biodiversity +- topic_0637 # Taxonomy --- In this metaproteomics tutorial we will identify expressed proteins from a complex bacterial community sample. diff --git a/topics/proteomics/tutorials/metaquantome-data-creation/tutorial.md b/topics/proteomics/tutorials/metaquantome-data-creation/tutorial.md index 482e96f88762a1..1bf488a772ae13 100644 --- a/topics/proteomics/tutorials/metaquantome-data-creation/tutorial.md +++ b/topics/proteomics/tutorials/metaquantome-data-creation/tutorial.md @@ -32,6 +32,11 @@ follow_up_training: subtopic: multi-omics tags: [microgalaxy] +edam_ontology: +- topic_0121 # Proteomics +- topic_3922 # Proteogenomics +- topic_3050 # Biodiversity +- topic_0637 # Taxonomy --- diff --git a/topics/proteomics/tutorials/metaquantome-function/tutorial.md b/topics/proteomics/tutorials/metaquantome-function/tutorial.md index 1f59d1156f782f..dd8262d4cf85fc 100644 --- a/topics/proteomics/tutorials/metaquantome-function/tutorial.md +++ b/topics/proteomics/tutorials/metaquantome-function/tutorial.md @@ -39,6 +39,12 @@ requirements: - metaquantome-data-creation subtopic: multi-omics tags: [microgalaxy] +edam_ontology: +- topic_0121 # Proteomics +- topic_3922 # Proteogenomics +- topic_3941 # Metatranscriptomics +- topic_3697 # Microbial ecology +- topic_3174 # Metagenomics --- diff --git a/topics/proteomics/tutorials/metaquantome-taxonomy/tutorial.md b/topics/proteomics/tutorials/metaquantome-taxonomy/tutorial.md index f5cbee103a5e89..05245ed8c78bc9 100644 --- a/topics/proteomics/tutorials/metaquantome-taxonomy/tutorial.md +++ b/topics/proteomics/tutorials/metaquantome-taxonomy/tutorial.md @@ -36,6 +36,13 @@ requirements: subtopic: multi-omics tags: [microgalaxy] +edam_ontology: +- topic_0121 # Proteomics +- topic_3922 # Proteogenomics +- topic_3941 # Metatranscriptomics +- topic_3697 # Microbial ecology +- topic_3174 # Metagenomics +- topic_0637 # Taxonomy --- diff --git a/topics/transcriptomics/tutorials/ref-based/tutorial.md b/topics/transcriptomics/tutorials/ref-based/tutorial.md index 83df46fb367919..7525a336fd8ae9 100644 --- a/topics/transcriptomics/tutorials/ref-based/tutorial.md +++ b/topics/transcriptomics/tutorials/ref-based/tutorial.md @@ -934,9 +934,8 @@ There are 4 ways to estimate strandness from **STAR** results (choose the one yo ## Counting reads per genes -In order to count the number of reads per gene, we offer a parallel tutorial for the 2 methods (STAR and featureCounts) which give very similar results. -{% include _includes/cyoa-choices.html option1="featureCounts" option2="STAR" default="featureCounts" %} +{% include _includes/cyoa-choices.html option1="featureCounts" option2="STAR" default="featureCounts" text="In order to count the number of reads per gene, we offer a parallel tutorial for the 2 methods (STAR and featureCounts) which give very similar results. Which methods would you prefer to use?" disambiguation="tool"%}
@@ -1163,10 +1162,6 @@ To be able to identify differential gene expression induced by PS depletion, all > {{ page.zenodo_link }}/files/GSM461182_untreat_single_featureCounts.counts > ``` > -> 3. Create a collection list with all these counts that you label `all counts`. Rename each item so it only has the GSM id, the treatment and the library, for example, `GSM461176_untreat_single`. -> -> {% snippet faqs/galaxy/collections_build_list.md %} -> {: .hands_on} You might think we can just compare the count values in the files directly and calculate the extent of differential gene expression. However, it is not that simple. @@ -1438,16 +1433,60 @@ Here, treatment is the primary factor that we are interested in. The sequencing > We recommend that you add all factors you think may affect gene expression in your experiment. It can be the sequencing type like here, but it can also be the manipulation (if different persons are involved in the library preparation), other batch effects, etc... {: .comment} +If you have only one or two factors with few number of biological replicates, the basic setup of **DESeq2** is enough. In the case of a complex experimental setup with a large number of biological replicates, tag-based collections are appropriate. Both approaches give the same results. The Tag-based approach requires a few additional steps before running the **DESeq2** tool but it will payoff when working with a complex experimental setup. + +{% include _includes/cyoa-choices.html option1="Basic" option2="Tag-based" default="Basic" text="Which approach would you prefer to use?" disambiguation="deseq"%} + +
+ +We can now run **DESeq2**: + +> Determine differentially expressed features +> +> 1. {% tool [DESeq2](toolshed.g2.bx.psu.edu/repos/iuc/deseq2/deseq2/2.11.40.7+galaxy2) %} with the following parameters: +> - *"how"*: `Select datasets per level` +> - In *"Factor"*: +> - *"Specify a factor name, e.g. effects_drug_x or cancer_markers"*: `Treatment` +> - In *"1: Factor level"*: +> - *"Specify a factor level, typical values could be 'tumor', 'normal', 'treated' or 'control'"*: `treated` +> - In *"Count file(s)"*: `Select all the treated count files (GSM461179, GSM461180, GSM461181)` +> - In *"2: Factor level"*: +> - *"Specify a factor level, typical values could be 'tumor', 'normal', 'treated' or 'control'"*: `untreated` +> - In *"Count file(s)"*: `Select all the untreated count files (GSM461176, GSM461177, GSM461178, GSM461182)` +> - {% icon param-repeat %} *"Insert Factor"* +> - *"Specify a factor name, e.g. effects_drug_x or cancer_markers"*: `Sequencing` +> - In *"Factor level"*: +> - {% icon param-repeat %} *"Insert Factor level"* +> - *"Specify a factor level, typical values could be 'tumor', 'normal', 'treated' or 'control'"*: `PE` +> - In *"Count file(s)"*: `Select all the paired-end count files (GSM461177, GSM461178, GSM461180, GSM461181)` +> - {% icon param-repeat %} *"Insert Factor level"* +> - *"Specify a factor level, typical values could be 'tumor', 'normal', 'treated' or 'control'"*: `SE` +> - In *"Count file(s)"*: `Select all the single-end count files (GSM461176, GSM461179, GSM461182)` +> - *"Files have header?"*: `Yes` +> - *"Choice of Input data"*: `Count data (e.g. from HTSeq-count, featureCounts or StringTie)` +> - In *"Output options"*: +> - *"Output selector"*: `Generate plots for visualizing the analysis results`, `Output normalised counts` +> +{: .hands_on} + +
+ +
+ DESeq2 requires to provide for each factor, counts of samples in each category. We will thus use tags on our collection of counts to easily select all samples belonging to the same category. For more information about alternative ways to set group tags, please see [this tutorial]({% link topics/galaxy-interface/tutorials/group-tags/tutorial.md %}). > Add tags to your collection for each of these factors > -> 1. {% tool [Extract element identifiers](toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2) %} with the following parameters: +> 1. Create a collection list with all these counts that you label `all counts`. Rename each item so it only has the GSM id, the treatment and the library, for example, `GSM461176_untreat_single`. +> +> {% snippet faqs/galaxy/collections_build_list.md %} +> +> 2. {% tool [Extract element identifiers](toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2) %} with the following parameters: > - {% icon param-collection %} *"Dataset collection"*: `all counts` > > We will now extract from the names the factors: > -> 2. {% tool [Replace Text in entire line](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_line/1.1.2) %} +> 3. {% tool [Replace Text in entire line](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_line/1.1.2) %} > - {% icon param-file %} *"File to process"*: output of **Extract element identifiers** {% icon tool %} > - In *"Replacement"*: > - In *"1: Replacement"* @@ -1456,25 +1495,25 @@ DESeq2 requires to provide for each factor, counts of samples in each category. > > This step creates 2 additional columns with the type of treatment and sequencing that can be used with the {% tool [Tag elements from file](__TAG_FROM_FILE__) %} tool > -> 3. Change the datatype to `tabular` +> 4. Change the datatype to `tabular` > > {% snippet faqs/galaxy/datasets_change_datatype.md datatype="tabular" %} > -> 4. {% tool [Tag elements](__TAG_FROM_FILE__) %} +> 5. {% tool [Tag elements](__TAG_FROM_FILE__) %} > - {% icon param-collection %} *"Input Collection"*: `all counts` > - {% icon param-file %} *"Tag collection elements according to this file"*: output of **Replace Text** {% icon tool %} > -> 5. Inspect the new collection +> 6. Inspect the new collection > > > You cannot see the changes? > > -> > You may not see it at first glance as the names are the same. However if you click on one and click on {% icon galaxy-tags %} **Edit dataset tags**, you should see 2 tags which start with 'group:'. This keyword will allow to use these tags in DESeq2. +> > You may not see it at first glance as the names are the same. However if you click on one and click on {% icon galaxy-tags %} **Edit dataset tags**, you should see 2 tags which start with 'group:'. This keyword will allow to use these tags in **DESeq2**. > > > {: .tip} > {: .hands_on} -We can now run DESeq2: +We can now run **DESeq2**: > Determine differentially expressed features > @@ -1507,6 +1546,8 @@ We can now run DESeq2: > {: .hands_on} +
+ **DESeq2** generated 3 outputs: - A table with the normalized counts for each gene (rows) in the samples (columns) diff --git a/topics/variant-analysis/tutorials/aiv-analysis/tutorial.md b/topics/variant-analysis/tutorials/aiv-analysis/tutorial.md index ffcc7acdd152a3..fed901c6f86f8f 100644 --- a/topics/variant-analysis/tutorials/aiv-analysis/tutorial.md +++ b/topics/variant-analysis/tutorials/aiv-analysis/tutorial.md @@ -419,32 +419,26 @@ Now what if we cannot obtain a consensus base for a position with the above crit # Placing segments on a phylogenetic tree The next logical step after obtaining the consensus sequences of segments of our sample is to explore how those sequences are related to the sequences in our reference collection. -To do so, we are going to combine the reference sequences of all segments with their corresponding consensus sequence into one multi-sequence fasta dataset per segment. Then we build a multiple sequence alignment (MSA) from the sequences of each segment, and use these alignments to generate phylogenetic trees, again one per segment. We are going to use two rather standard tools, **MAFFT** and **IQTree**, for generating MSAs and trees, respectively. +To do so, we are going to combine the reference sequences of all segments with their corresponding consensus sequence into one multiple sequence alignment (MSA) per segment, and use these to generate phylogenetic trees, again one per segment. We are going to use two rather standard tools, **MAFFT** and **IQTree**, for generating MSAs and trees, respectively. > Exploring phylogeny > -> 1. {% tool [Concatenate datasets](cat1) %} -> - {% icon param-collection %} *"Concatenate Dataset"*: `References per segment (INSAFlu)` -> - In *"Dataset"*: -> - {% icon param-repeat %} *"Insert Dataset"* -> - {% icon param-collection %} *"Select"*: collection of renamed consensus sequences; output of **Replace** on consensus sequences +> 1. {% tool [MAFFT](toolshed.g2.bx.psu.edu/repos/rnateam/mafft/rbc_mafft/7.520+galaxy0) %} +> - *"For multiple inputs generate"*: `one or several MSAs depending on input structure` +> - In *"Input batch"*: +> - {% icon param-repeat %} *"1: Input batch"* +> - {% icon param-collection %} *"Sequences to align"*: collection of `References per segment (INSAFlu)` +> - {% icon param-repeat %} *"2: Input batch"* +> - {% icon param-collection %} *"Sequences to align"*: collection of renamed consensus sequences; output of **Replace** on consensus sequences +> - *"Type of sequences"*: `Nucleic acids` > -> {% snippet faqs/galaxy/analysis_concatenate.md toolspec="#1" %} +> Because both input batches are collections of eight elements each, the result is also a collection of eight MSAs, each aligning all reference sequences of one genome segment plus the consensus sequence we have obtained for that segment against each other. > -> The tool should produce a collection of eight multi-sequence fasta datasets, each of which has the generated consensus sequence for one segment concatenated to the INSAFlu reference sequences of that segment. -> -> 2. {% tool [MAFFT](toolshed.g2.bx.psu.edu/repos/rnateam/mafft/rbc_mafft/7.508+galaxy0) %} -> - {% icon param-collection %} *"Sequences to align"*: collection of concatenated sequences; output of **Concatenate datasets** -> - *"Data type"*: `Nucleic Acids` -> - *"Matrix selection"*: `No matrix` -> -> The result is a collection of MSAs, each aligning all reference sequences of one genome segment plus the consensus sequence we have obtained for that segment against each other. -> -> 3. {% tool [IQ-TREE](toolshed.g2.bx.psu.edu/repos/iuc/iqtree/iqtree/2.1.2+galaxy2) %} +> 2. {% tool [IQ-TREE](toolshed.g2.bx.psu.edu/repos/iuc/iqtree/iqtree/2.1.2+galaxy2) %} > - {% icon param-collection %} *"Specify input alignment file in PHYLIP, FASTA, NEXUS, CLUSTAL or MSF format."*: output of **MAFFT** > - *"Specify sequence type ..."*: `DNA` > -> 4. {% icon galaxy-eye %} Explore each of the final trees produced by IQTree for the different segments +> 3. {% icon galaxy-eye %} Explore each of the final trees produced by IQTree for the different segments > > > > > diff --git a/topics/variant-analysis/tutorials/microbial-variants/tutorial.md b/topics/variant-analysis/tutorials/microbial-variants/tutorial.md index 60647239bd4c20..096534c4e23d9e 100644 --- a/topics/variant-analysis/tutorials/microbial-variants/tutorial.md +++ b/topics/variant-analysis/tutorials/microbial-variants/tutorial.md @@ -25,6 +25,13 @@ contributors: - annasyme - slugger70 - tseemann +edam_ontology: +- topic_0622 # Genomics +- topic_0196 # Sequence assembly +- topic_2885 # DNA polymorphism +- topic_3301 # Microbiology +- topic_0080 # Sequence analysis +- topic_0199 # Genetic variation --- diff --git a/topics/variant-analysis/tutorials/non-dip/tutorial.md b/topics/variant-analysis/tutorials/non-dip/tutorial.md index 49a3a07f29ff53..316c6eb9da3d63 100644 --- a/topics/variant-analysis/tutorials/non-dip/tutorial.md +++ b/topics/variant-analysis/tutorials/non-dip/tutorial.md @@ -20,6 +20,13 @@ key_points: contributors: - nekrut - astrovsky01 +edam_ontology: +- topic_0622 # Genomics +- topic_0196 # Sequence assembly +- topic_2885 # DNA polymorphism +- topic_3301 # Microbiology +- topic_0080 # Sequence analysis +- topic_0199 # Genetic variation --- diff --git a/topics/variant-analysis/tutorials/pox-tiled-amplicon/tutorial.md b/topics/variant-analysis/tutorials/pox-tiled-amplicon/tutorial.md index 5caf852e2ad16d..e043cee27d1645 100644 --- a/topics/variant-analysis/tutorials/pox-tiled-amplicon/tutorial.md +++ b/topics/variant-analysis/tutorials/pox-tiled-amplicon/tutorial.md @@ -805,19 +805,16 @@ This leaves us with the tasks of obtaining the sequence for parent P1 (accession > 3. When the Replace Text tool run is finished, **rename** the output dataset > > {% snippet faqs/galaxy/datasets_rename.md name="Herbivac sequence" format="fasta" %} -> 2. {% tool [Concatenate datasets tail-to-head (cat)](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cat/0.1.1) %} -> - {% icon param-files %} *"Datasets to concatenate"*: the `Herbivac sequence`; renamed output of **Replace** -> - In *"Dataset"*: -> - {% icon param-repeat %} *"Insert Dataset"* -> - {% icon param-collection %} *"Select"*: collection of consensus sequences; output of **ivar consensus** -> - {% icon param-repeat %} *"Insert Dataset"* -> - {% icon param-files %} *"Select"*: the `LSDV reference` -> -> {% snippet faqs/galaxy/analysis_concatenate.md toolspec="#2" %} -> 3. {% tool [MAFFT](toolshed.g2.bx.psu.edu/repos/rnateam/mafft/rbc_mafft/7.508+galaxy0) %} -> - {% icon param-file %} *"Sequences to align"*: Multi-fasta dataset with four sequences; output of **Concatenate** -> - *"Data type"*: `Nucleic acids` -> - *"Matrix selection"*: `No matrix` +> 2. {% tool [MAFFT](toolshed.g2.bx.psu.edu/repos/rnateam/mafft/rbc_mafft/7.520+galaxy0) %} +> - *"For multiple inputs generate"*: `a single MSA of all sequences from all inputs` +> - In *"Input batch"*: +> - {% icon param-repeat %} *"1: Input batch"* +> - {% icon param-files %} *"Sequences to align"*: the `Herbivac sequence`; renamed output of **Replace** +> - {% icon param-repeat %} *"2: Input batch"* +> - {% icon param-collection %} *"Sequences to align"*: collection of consensus sequences; output of **ivar consensus** +> - {% icon param-repeat %} *"3: Input batch"* +> - {% icon param-files %} *"Sequences to align"*: the `LSDV reference` +> - *"Type of sequences"*: `Nucleic acids` > {: .hands_on} diff --git a/topics/variant-analysis/tutorials/tb-variant-analysis/tutorial.md b/topics/variant-analysis/tutorials/tb-variant-analysis/tutorial.md index 2889ac58320c06..504b4f2198db10 100644 --- a/topics/variant-analysis/tutorials/tb-variant-analysis/tutorial.md +++ b/topics/variant-analysis/tutorials/tb-variant-analysis/tutorial.md @@ -24,6 +24,13 @@ tags: - prokaryote - one-health - microgalaxy +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0196 # Sequence assembly +- topic_0199 # Genetic variation +- topic_3305 # Public health and epidemiology +- topic_3324 # Infectious disease ---