From 12404d89315098025466b818ad6681198f478e24 Mon Sep 17 00:00:00 2001 From: Frank Ambrosio <64995676+frankambrosio3@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:53:46 -0500 Subject: [PATCH] Documentation Update (#678) * Updated TheiaEuk_Illumina diagram * Delete docs/assets/figures/TheiaEuk_Illumina_PHB 20241106.png Space in the name was causing an issue * New TheiaEuk_Illumina diagram no space in name * Update theiaeuk.md wf diagram * Combine documentation efforts (#671) * update remaining broken links * improvements * update org-specifc theiaeuk * make pretty * rename * add link to template * remove construction banner * update contrib guide * remove \| bars --------- Co-authored-by: Sage Wright --- .../TheiaEuk_Illumina_PHB_20241106.png | Bin 0 -> 203698 bytes docs/assets/new_workflow_template.md | 10 +- docs/contributing/doc_contribution.md | 114 ++++--- docs/overrides/main.html | 5 - docs/stylesheets/extra.css | 2 - .../genomic_characterization/theiacov.md | 9 +- .../genomic_characterization/theiaeuk.md | 298 ++++++++++++------ .../genomic_characterization/theiameta.md | 8 +- .../genomic_characterization/theiaprok.md | 31 +- .../phylogenetic_construction/augur.md | 12 +- .../snippy_streamline.md | 18 +- .../snippy_streamline_fasta.md | 18 +- .../phylogenetic_construction/snippy_tree.md | 22 +- .../snippy_variants.md | 47 ++- docs/workflows/standalone/ncbi_scrub.md | 2 +- 15 files changed, 388 insertions(+), 208 deletions(-) create mode 100644 docs/assets/figures/TheiaEuk_Illumina_PHB_20241106.png diff --git a/docs/assets/figures/TheiaEuk_Illumina_PHB_20241106.png b/docs/assets/figures/TheiaEuk_Illumina_PHB_20241106.png new file mode 100644 index 0000000000000000000000000000000000000000..241b7bb8b23e16ccc3b94d931632587d05a77b03 GIT binary patch literal 203698 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�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 literal 0 HcmV?d00001 diff --git a/docs/assets/new_workflow_template.md b/docs/assets/new_workflow_template.md index 9e7ef6799..41c2b1895 100644 --- a/docs/assets/new_workflow_template.md +++ b/docs/assets/new_workflow_template.md @@ -4,7 +4,7 @@ | **Workflow Type** | **Applicable Kingdom** | **Last Known Changes** | **Command-line Compatibility** | **Workflow Level** | |---|---|---|---|---| -| [Workflow Type](../../workflows_overview/workflows_type.md/#link-to-workflow-type) | [Applicable Kingdom](../../workflows_overview/workflows_kingdom.md/#link-to-applicable-kingdom) | PHB | | | +| [Link to Workflow Type](../../workflows_overview/workflows_type.md/#link-to-workflow-type) | [Link to Applicable Kingdom](../../workflows_overview/workflows_kingdom.md/#link-to-applicable-kingdom) | PHB | | | ## Workflow_Name_On_Terra @@ -12,6 +12,8 @@ Description of the workflow. ### Inputs +Input should be ordered as they appear on Terra + | **Terra Task Name** | **Variable** | **Type** | **Description** | **Default Value** | **Terra Status** | |---|---|---|---|---|---| | task_name | **variable_name** | Type | Description | Default Value | Required/Optional | @@ -24,12 +26,12 @@ Description of the workflow tasks Description of the task !!! techdetails "Tool Name Technical Details" - | | Links | - | --- | --- | + | | Links | + | --- | --- | | Task | [link to task on GitHub] | | Software Source Code | [link to tool's source code] | | Software Documentation | [link to tool's documentation] | - | Original Publication | [link to tool's publication] | + | Original Publication(s) | [link to tool's publication] | ### Outputs diff --git a/docs/contributing/doc_contribution.md b/docs/contributing/doc_contribution.md index 7f20e5491..940468961 100644 --- a/docs/contributing/doc_contribution.md +++ b/docs/contributing/doc_contribution.md @@ -14,7 +14,7 @@ To test your documentation changes, you will need to have the following packages pip install mkdocs-material mkdocs-material-extensions mkdocs-git-revision-date-localized-plugin mike mkdocs-glightbox ``` -The live preview server can be activated by running the following command: +Once installed, navigate to the top directory in PHB. The live preview server can be activated by running the following command: ```bash mkdocs serve @@ -34,49 +34,7 @@ Here are some VSCode Extensions can help you write and edit your markdown files - [Excel to Markdown Table](https://tableconvert.com/excel-to-markdown) - This website will convert an Excel table into markdown format, which can be copied and pasted into your markdown file. - [Material for MkDocs Reference](https://squidfunk.github.io/mkdocs-material/reference/) - This is the official reference for the Material for MkDocs theme, which will help you understand how to use the theme's features. -- [Broken Link Check](https://www.brokenlinkcheck.com/) - This website will scan your website to ensure that all links are working correctly. This will only work on the deployed version of the documentation, not the local version. - -## Documentation Structure - -A brief description of the documentation structure is as follows: - -- `docs/` - Contains the Markdown files for the documentation. - - `assets/` - Contains images and other files used in the documentation. - - `figures/` - Contains images, figures, and workflow diagrams used in the documentation. For workflows that contain many images (such as BaseSpace_Fetch), it is recommended to create a subdirectory for the workflow. - - `files/` - Contains files that are used in the documentation. This may include example outputs or templates. For workflows that contain many files (such as TheiaValidate), it is recommended to create a subdirectory for the workflow. - - `logos/` - Contains Theiagen logos and symbols used int he documentation. - - `metadata_formatters/` - Contains the most up-to-date metadata formatters for our submission workflows. - - `new_workflow_template.md` - A template for adding a new workflow page to the documentation. - - `contributing/` - Contains the Markdown files for our contribution guides, such as this file - - `javascripts/` - Contains JavaScript files used in the documentation. - - `tablesort.js` - A JavaScript file used to enable table sorting in the documentation. - - `overrides/` - Contains HTMLs used to override theme defaults - - `main.html` - Contains the HTML used to display a warning when the latest version is not selected - - `stylesheets/` - Contains CSS files used in the documentation. - - `extra.css` - A custom CSS file used to style the documentation; contains all custom theme elements (scrollable tables, resizable columns, Theiagen colors), and custom admonitions. - - `workflows/` - Contains the Markdown files for each workflow, organized into subdirectories by workflow category - - `workflows_overview/` - Contains the Markdown files for the overview tables for each display type: alphabetically, by applicable kingdom, and by workflow type. - - `index.md` - The home/landing page for our documentation. - -### Adding a Page for a New Workflow {#new-page} - -If you are adding a new workflow, there are a number of things to do in order to include the page in the documentation: - -1. Add a page with the title of the workflow to appropriate subdirectory in `docs/workflows/`. Feel free to use the template found in the `assets/` folder. -2. Collect the following information for your new workflow: - - Workflow Name - Link the name with a relative path to the workflow page in appropriate `docs/workflows/` subdirectory - - Workflow Description - Brief description of the workflow - - Applicable Kingdom - Options: "Any taxa", "Bacteria", "Mycotics", "Viral" - - Workflow Level (_on Terra_) - Options: "Sample-level", "Set-level", or neither - - Command-line compatibility - Options: "Yes", "No", and/or "Some optional features incompatible" - - The version where the last known changes occurred (likely the upcoming version if it is a new workflow) - - Link to the workflow on Dockstore (if applicable) - Workflow name linked to the information tab on Dockstore. -3. Format this information in a table. -4. Copy the previously gathered information to ==**ALL THREE**== overview tables in `docs/workflows_overview/`: - - `workflows_alphabetically.md` - Add the workflow in the appropriate spot based on the workflow name. - - `workflows_kingdom.md` - Add the workflow in the appropriate spot(s) based on the kingdom(s) the workflow is applicable to. Make sure it is added alphabetically within the appropriate subsection(s). - - `workflows_type.md` - Add the workflow in the appropriate spot based on the workflow type. Make sure it is added alphabetically within the appropriate subsection. -5. Copy the path to the workflow to ==**ALL**== of the appropriate locations in the `mkdocs.yml` file (under the `nav:` section) in the main directory of this repository. These should be the exact same spots as in the overview tables but without additional information. This ensures the workflow can be accessed from the navigation sidebar. +- [Dead Link Check](https://www.deadlinkchecker.com/) - This website will scan your website to ensure that all links are working correctly. This will only work on the deployed version of the documentation, not the local version. ## Standard Language & Formatting Conventions @@ -98,10 +56,11 @@ The following language conventions should be followed when writing documentation - **Bold Text** - Use `**bold text**` to indicate text that should be bolded. - _Italicized Text_ - Use `_italicized text_` to indicate text that should be italicized. - ==Highlighted Text== - Use `==highlighted text==` to indicate text that should be highlighted. -- `Code` - Use \`code\` to indicate text that should be formatted as code. +- `Code` - Use ````code` ``` (backticks) to indicate text that should be formatted as code. - ^^Underlined Text^^ - Use `^^underlined text^^` to indicate text that should be underlined (works with our theme; not all Markdown renderers support this). - > Citations - Use a `>` to activate quote formatting for a citation. Make sure to separate multiple citations with a comment line (``) to prevent the citations from running together. + - Use a reputable citation style (e.g., Vancouver, Nature, etc.) for all citations. - Callouts/Admonitions - These features are called "call-outs" in Notion, but are "Admonitions" in MkDocs. [I highly recommend referring to the Material for MkDocs documentation page on Admonitions to learn how best to use this feature](https://squidfunk.github.io/mkdocs-material/reference/admonitions/). Use the following syntax to create a callout: ```markdown @@ -116,18 +75,37 @@ The following language conventions should be followed when writing documentation !!! dna This is a DNA admonition. Admire the cute green DNA emoji. You can create this with the `!!! dna` syntax. + Use this admonition when wanting to convey general information or highlight specific facts. + ???+ toggle This is a toggle-able section. The emoji is an arrow pointing to the right downward. You can create this with the `??? toggle` syntax. I have added a `+` at the end of the question marks to make it open by default. + Use this admonition when wanting to provide additional _optional_ information or details that are not strictly necessary, or take up a lot of space. + ???+ task This is a toggle-able section **for a workflow task**. The emoji is a gear. Use the `??? task` syntax to create this admonition. Use `!!! task` if you want to have it be permanently expanded. I have add a `+` at the end of the question marks to make this admonition open by default and still enable its collapse. + Use this admonition when providing details on a workflow, task, or tool. + !!! caption - This is a caption. The emoji is a painting. You can create this with the `!!! caption` syntax. This is used to enclose an image in a box and looks nice. A caption can be added beneath the picture and will also look nice. + This is a caption. The emoji is a painting. You can create this with the `!!! caption` syntax. A caption can be added beneath the picture and will also look nice. + + Use this admonition when including images or diagrams in the documentation. !!! techdetails This is where you will put technical details for a workflow task. You can create this by `!!! techdetails` syntax. + Use this admonition when providing technical details for a workflow task or tool. These admonitions should include the following table: + + | | Links | + | --- | --- | + | Task | [link to the task file in the PHB repository on GitHub] | + | Software Source Code | [link to tool's source code] | + | Software Documentation | [link to tool's documentation] | + | Original Publication(s) | [link to tool's publication] | + + If any of these items are unfillable, delete the row. + - Images - Use the following syntax to insert an image: ```markdown @@ -135,7 +113,7 @@ The following language conventions should be followed when writing documentation ![Alt Text](/path/to/image.png) ``` -- Indentation - **_FOUR_** spaces are required instead of the typical two. This is a side effect of using this theme. If you use two spaces, the list and/or indentations will not render correctly. This will make your linter sad :( +- Indentation - **_FOUR_** spaces are required instead of the typical two. This is a side effect of using this theme. If you use two spaces, the list and/or indentations will not render correctly. This will make your linter sad :( ```markdown - first item @@ -160,3 +138,45 @@ The following language conventions should be followed when writing documentation ``` - End all pages with an empty line + +## Documentation Structure + +A brief description of the documentation structure is as follows: + +- `docs/` - Contains the Markdown files for the documentation. + - `assets/` - Contains images and other files used in the documentation. + - `figures/` - Contains images, figures, and workflow diagrams used in the documentation. For workflows that contain many images (such as BaseSpace_Fetch), it is recommended to create a subdirectory for the workflow. + - `files/` - Contains files that are used in the documentation. This may include example outputs or templates. For workflows that contain many files (such as TheiaValidate), it is recommended to create a subdirectory for the workflow. + - `logos/` - Contains Theiagen logos and symbols used int he documentation. + - `metadata_formatters/` - Contains the most up-to-date metadata formatters for our submission workflows. + - `new_workflow_template.md` - A template for adding a new workflow page to the documentation. You can see this template [here](../assets/new_workflow_template.md) + - `contributing/` - Contains the Markdown files for our contribution guides, such as this file + - `javascripts/` - Contains JavaScript files used in the documentation. + - `tablesort.js` - A JavaScript file used to enable table sorting in the documentation. + - `overrides/` - Contains HTMLs used to override theme defaults + - `main.html` - Contains the HTML used to display a warning when the latest version is not selected + - `stylesheets/` - Contains CSS files used in the documentation. + - `extra.css` - A custom CSS file used to style the documentation; contains all custom theme elements (scrollable tables, resizable columns, Theiagen colors), and custom admonitions. + - `workflows/` - Contains the Markdown files for each workflow, organized into subdirectories by workflow category + - `workflows_overview/` - Contains the Markdown files for the overview tables for each display type: alphabetically, by applicable kingdom, and by workflow type. + - `index.md` - The home/landing page for our documentation. + +### Adding a Page for a New Workflow {#new-page} + +If you are adding a new workflow, there are a number of things to do in order to include the page in the documentation: + +1. Add a page with the title of the workflow to appropriate subdirectory in `docs/workflows/`. Feel free to use the template found in the `assets/` folder. +2. Collect the following information for your new workflow: + - Workflow Name - Link the name with a relative path to the workflow page in appropriate `docs/workflows/` subdirectory + - Workflow Description - Brief description of the workflow + - Applicable Kingdom - Options: "Any taxa", "Bacteria", "Mycotics", "Viral" + - Workflow Level (_on Terra_) - Options: "Sample-level", "Set-level", or neither + - Command-line compatibility - Options: "Yes", "No", and/or "Some optional features incompatible" + - The version where the last known changes occurred (likely the upcoming version if it is a new workflow) + - Link to the workflow on Dockstore (if applicable) - Workflow name linked to the information tab on Dockstore. +3. Format this information in a table. +4. Copy the previously gathered information to ==**ALL THREE**== overview tables in `docs/workflows_overview/`: + - `workflows_alphabetically.md` - Add the workflow in the appropriate spot based on the workflow name. + - `workflows_kingdom.md` - Add the workflow in the appropriate spot(s) based on the kingdom(s) the workflow is applicable to. Make sure it is added alphabetically within the appropriate subsection(s). + - `workflows_type.md` - Add the workflow in the appropriate spot based on the workflow type. Make sure it is added alphabetically within the appropriate subsection. +5. Copy the path to the workflow to ==**ALL**== of the appropriate locations in the `mkdocs.yml` file (under the `nav:` section) in the main directory of this repository. These should be the exact same spots as in the overview tables but without additional information. This ensures the workflow can be accessed from the navigation sidebar. diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 54a833dfd..0df0d3be2 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -6,8 +6,3 @@ Click here to go to the latest version release. {% endblock %} - - -{% block announce %} -

🏗️ I'm under construction! Pardon the dust while we remodel! 👷
-{% endblock %} diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index e510ecedc..72b16bc01 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -200,7 +200,6 @@ div.searchable-table input.table-search-input { color: #000; border: 1px solid #E0E1E1; } - [data-md-color-scheme="light"] div.searchable-table input.table-search-input::placeholder { color: #888; font-style: italic; @@ -212,7 +211,6 @@ div.searchable-table input.table-search-input { color: #fff; border: 1px solid #373B40; } - [data-md-color-scheme="slate"] div.searchable-table input.table-search-input::placeholder { color: #bbb; font-style: italic; diff --git a/docs/workflows/genomic_characterization/theiacov.md b/docs/workflows/genomic_characterization/theiacov.md index ffe0993f6..8e897e0d8 100644 --- a/docs/workflows/genomic_characterization/theiacov.md +++ b/docs/workflows/genomic_characterization/theiacov.md @@ -630,8 +630,7 @@ All input reads are processed through "core tasks" in the TheiaCoV Illumina, ONT | Variable | Rationale | | --- | --- | - | `skip_screen` | Prevent the read screen from running | - | `skip_screen` | Saving waste of compute resources on insufficient data | + | `skip_screen` | Set to true to skip the read screen from running | | `min_reads` | Minimum number of base pairs for 10x coverage of the Hepatitis delta (of the *Deltavirus* genus) virus divided by 300 (longest Illumina read length) | | `min_basepairs` | Greater than 10x coverage of the Hepatitis delta (of the *Deltavirus* genus) virus | | `min_genome_size` | Based on the Hepatitis delta (of the *Deltavirus* genus) genome- the smallest viral genome as of 2024-04-11 (1,700 bp) | @@ -714,7 +713,7 @@ All input reads are processed through "core tasks" in the TheiaCoV Illumina, ONT | | Links | | --- | --- | - | Sub-workflow | [wf_read_QC_trim.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilties/wf_read_QC_trim.wdl) | + | Sub-workflow | [wf_read_QC_trim_pe.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_pe.wdl)
[wf_read_QC_trim_se.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_se.wdl) | | Tasks | [task_fastp.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_fastp.wdl)
[task_trimmomatic.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_trimmomatic.wdl)
[task_bbduk.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_bbduk.wdl)
[task_fastq_scan.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_fastq_scan.wdl)
[task_midas.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_midas.wdl)
[task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl) | | Software Source Code | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](https://github.com/usadellab/Trimmomatic); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2)| | Software Documentation | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](http://www.usadellab.org/cms/?page=trimmomatic); [BBDuk](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbduk-guide/); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2/wiki) | @@ -734,7 +733,7 @@ All input reads are processed through "core tasks" in the TheiaCoV Illumina, ONT | | Links | | --- | --- | - | Task | [task_ncbi_scrub.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_ncbi_scrub.wdl) | + | Task | [task_ncbi_scrub.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_ncbi_scrub.wdl) | | Software Source Code | [NCBI Scrub on GitHub](https://github.com/ncbi/sra-human-scrubber) | | Software Documentation | | @@ -755,7 +754,7 @@ All input reads are processed through "core tasks" in the TheiaCoV Illumina, ONT | | Links | | --- | --- | - | Task | [task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/task_kraken2.wdl) | + | Task | [task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl) | | Software Source Code | [Kraken2 on GitHub](https://github.com/DerrickWood/kraken2/) | | Software Documentation | | | Original Publication(s) | [Improved metagenomic analysis with Kraken 2](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1891-0) | diff --git a/docs/workflows/genomic_characterization/theiaeuk.md b/docs/workflows/genomic_characterization/theiaeuk.md index bedeac0cf..cc9cba9c1 100644 --- a/docs/workflows/genomic_characterization/theiaeuk.md +++ b/docs/workflows/genomic_characterization/theiaeuk.md @@ -8,22 +8,22 @@ ## TheiaEuk Workflows -**The TheiaEuk_PE workflow is for the assembly, quality assessment, and characterization of fungal genomes.** It is designed to accept Illumina paired-end sequencing data as the primary input. **It is currently intended only for haploid fungal genomes like _Candida auris_.** Analyzing diploid genomes using TheiaEuk should be attempted only with expert attention to the resulting genome quality. +**The TheiaEuk_Illumina_PE workflow is for the assembly, quality assessment, and characterization of fungal genomes.** It is designed to accept Illumina paired-end sequencing data as the primary input. **It is currently intended only for ==haploid== fungal genomes like _Candida auris_.** Analyzing diploid genomes using TheiaEuk should be attempted only with expert attention to the resulting genome quality. -All input reads are processed through "core tasks" in each workflow. The core tasks include raw-read quality assessment, read cleaning (quality trimming and adapter removal), de novo assembly, assembly quality assessment, and species taxon identification. For some taxa identified, "taxa-specific sub-workflows" will be automatically activated, undertaking additional taxa-specific characterization steps, including clade-typing and/or antifungal resistance detection. +All input reads are processed through "core tasks" in each workflow. The core tasks include raw read quality assessment, read cleaning (quality trimming and adapter removal), de novo assembly, assembly quality assessment, and species taxon identification. For some taxa identified, taxa-specific sub-workflows will be automatically activated, undertaking additional taxa-specific characterization steps, including clade-typing and/or antifungal resistance detection. !!! caption "TheiaEuk Workflow Diagram" - ![TheiaEuk Workflow Diagram](../../assets/figures/TheiaEuk_Illumina_PE.png){width=75%} + ![TheiaEuk Workflow Diagram](../../assets/figures/TheiaEuk_Illumina_PHB_20241106.png){width=75%} ### Inputs !!! info "Input read data" - The TheiaEuk_PE workflow takes in Illumina paired-end read data. Read file names should end with `.fastq` or `.fq`, with the optional addition of `.gz`. When possible, Theiagen recommends zipping files with [gzip](https://www.gnu.org/software/gzip/) prior to Terra upload to minimize data upload time. + The TheiaEuk_Illumina_PE workflow takes in Illumina paired-end read data. Read file names should end with `.fastq` or `.fq`, with the optional addition of `.gz`. When possible, Theiagen recommends zipping files with [gzip](https://www.gnu.org/software/gzip/) prior to Terra upload to minimize data upload time. By default, the workflow anticipates 2 x 150bp reads (i.e. the input reads were generated using a 300-cycle sequencing kit). Modifications to the optional parameter for `trim_minlen` may be required to accommodate shorter read data, such as the 2 x 75bp reads generated using a 150-cycle sequencing kit. -
+
| **Terra Task Name** | **Variable** | **Type** | **Description** | **Default Value** | **Terra Status** | |---|---|---|---|---|---| @@ -148,7 +148,7 @@ All input reads are processed through "core tasks" in each workflow. The core ta | read_QC_trim | **workflow_series** | String | Internal component, do not modify | | Do Not Modify, Optional | | shovill_pe | **assembler** | String | Assembler to use (spades, skesa, velvet or megahit), see | "skesa" | Optional | | shovill_pe | **assembler_options** | String | Assembler-specific options that you might choose, see | | Optional | -| shovill_pe | **depth** | Int | User specified depth of coverage for downsampling (see ) | 150 | Optional | +| shovill_pe | **depth** | Int | User specified depth of coverage for downsampling (see and ) | 150 | Optional | | shovill_pe | **disk_size** | Int | Amount of storage (in GB) to allocate to the task | 100 | Optional | | shovill_pe | **docker** | String | The Docker container to use for the task | us-docker.pkg.dev/general-theiagen/staphb/shovill:1.1.0 | Optional | | shovill_pe | **genome_length** | String | Internal component, do not modify | | Do Not Modify, Optional | @@ -177,7 +177,14 @@ All input reads are processed through "core tasks" in each workflow. The core ta
-### Workflow tasks (performed for all taxa) +### Workflow Tasks + +All input reads are processed through "core tasks" in the TheiaEuk workflows. These undertake read trimming and assembly appropriate to the input data type, currently only Illumina paired-end data. TheiaEuk workflow subsequently launch default genome characterization modules for quality assessment, and additional taxa-specific characterization steps. When setting up the workflow, users may choose to use "optional tasks" or alternatives to tasks run in the workflow by default. + +#### Core tasks + +!!! tip "" + These tasks are performed regardless of organism. They perform read trimming and various quality control steps. ??? task "`versioning`: Version capture for TheiaEuk" @@ -189,7 +196,7 @@ All input reads are processed through "core tasks" in each workflow. The core ta | --- | --- | | Task | [task_versioning.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/task_versioning.wdl) | -??? task "`screen`: Total Raw Read Quantification and Genome Size Estimation" +??? task "`screen`: Total Raw Read Quantification and Genome Size Estimation (optional, on by default)" The [`screen`](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/comparisons/task_screen.wdl) task ensures the quantity of sequence data is sufficient to undertake genomic analysis. It uses [`fastq-scan`](https://github.com/rpetit3/fastq-scan) and bash commands for quantification of reads and base pairs, and [mash](https://mash.readthedocs.io/en/latest/index.html) sketching to estimate the genome size and its coverage. At each step, the results are assessed relative to pass/fail criteria and thresholds that may be defined by optional user inputs. Samples that do not meet these criteria will not be processed further by the workflow: @@ -219,19 +226,22 @@ All input reads are processed through "core tasks" in each workflow. The core ta | | Links | | --- | --- | - | Task | [task_screen.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_screen.wdl) | + | Task | [task_screen.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/comparisons/task_screen.wdl) | -??? task "`rasusa`: Read subsampling" +??? task "`Rasusa`: Read subsampling (optional, on by default)" - The RASUSA task performs subsampling of the raw reads. By default, this task will subsample reads to a depth of 150X using the estimated genome length produced during the preceding raw read screen. The user can prevent the task from being launched by setting the `call_rasusa`variable to false. + The Rasusa task performs subsampling of the raw reads. By default, this task will subsample reads to a depth of 150X using the estimated genome length produced during the preceding raw read screen. The user can prevent the task from being launched by setting the `call_rasusa`variable to false. The user can also provide an estimated genome length for the task to use for subsampling using the `genome_size` variable. In addition, the read depth can be modified using the `subsample_coverage` variable. - !!! techdetails "RASUSA Technical Details" + !!! techdetails "Rasusa Technical Details" - | | TheiaEuk_Illumina_PE_PHB | + | | Links | | --- | --- | | Task | [task_rasusa.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/utilities/task_rasusa.wdl) | + | Software Source Code | [Rasusa on GitHub](https://github.com/mbhall88/rasusa) | + | Software Documentation | [Rasusa on GitHub](https://github.com/mbhall88/rasusa) | + | Original Publication(s) | [Rasusa: Randomly subsample sequencing reads to a specified coverage](https://doi.org/10.21105/joss.03941) | ??? task "`read_QC_trim`: Read Quality Trimming, Adapter Removal, Quantification, and Identification" @@ -297,12 +307,17 @@ All input reads are processed through "core tasks" in each workflow. The core ta | | Links | | --- | --- | - | Sub-workflow | [wf_read_QC_trim.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim.wdl) | + | Sub-workflow | [wf_read_QC_trim_pe.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_pe.wdl) | | Tasks | [task_fastp.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_fastp.wdl)
[task_trimmomatic.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_trimmomatic.wdl)
[task_bbduk.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_bbduk.wdl)
[task_fastq_scan.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_fastq_scan.wdl)
[task_midas.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_midas.wdl)
[task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl)| | Software Source Code | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](https://github.com/usadellab/Trimmomatic); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2)| | Software Documentation | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](http://www.usadellab.org/cms/?page=trimmomatic); [BBDuk](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbduk-guide/); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2/wiki) | | Original Publication(s) | [Trimmomatic: a flexible trimmer for Illumina sequence data](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4103590/)
[fastp: an ultra-fast all-in-one FASTQ preprocessor](https://academic.oup.com/bioinformatics/article/34/17/i884/5093234?login=false)
[An integrated metagenomics pipeline for strain profiling reveals novel patterns of bacterial transmission and biogeography](https://pubmed.ncbi.nlm.nih.gov/27803195/)
[Improved metagenomic analysis with Kraken 2](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1891-0) | +#### Assembly tasks + +!!! tip "" + These tasks assemble the reads into a _de novo_ assembly and assess the quality of the assembly. + ??? task "`shovill`: _De novo_ Assembly" De Novo assembly will be undertaken only for samples that have sufficient read quantity and quality, as determined by the `screen` task assessment of clean reads. @@ -316,7 +331,8 @@ All input reads are processed through "core tasks" in each workflow. The core ta | | Links | | --- | --- | | TheiaEuk WDL Task | [task_shovill.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/assembly/task_shovill.wdl#L3) | - | Software code repository and documentation | [Shovill on GitHub](https://github.com/tseemann/shovill) | + | Software Source Code | [Shovill on GitHub](https://github.com/tseemann/shovill) | + | Software Documentation | [Shovill on GitHub](https://github.com/tseemann/shovill) | ??? task "`QUAST`: Assembly Quality Assessment" @@ -326,7 +342,7 @@ All input reads are processed through "core tasks" in each workflow. The core ta | | Links | | --- | --- | - | Task | [task_quast.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_quast.wdl) | + | Task | [task_quast.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_quast.wdl) | | Software Source Code | [QUAST on GitHub](https://github.com/ablab/quast) | | Software Documentation | https://quast.sourceforge.net/docs/manual.html | | Orginal publication | [QUAST: quality assessment tool for genome assemblies](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3624806/) | @@ -340,11 +356,16 @@ All input reads are processed through "core tasks" in each workflow. The core ta | | Links | | --- | --- | - | Task | [task_cg_pipeline.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_cg_pipeline.wdl) | + | Task | [task_cg_pipeline.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_cg_pipeline.wdl) | | Software Source Code | [CG-Pipeline on GitHub](https://github.com/lskatz/CG-Pipeline/) | | Software Documentation | [CG-Pipeline on GitHub](https://github.com/lskatz/CG-Pipeline/) | | Original Publication(s) | [A computational genomics pipeline for prokaryotic sequencing projects](https://academic.oup.com/bioinformatics/article/26/15/1819/188418) | +#### Organism-agnostic characterization + +!!! tip "" + These tasks are performed regardless of the organism and provide quality control and taxonomic assignment. + ??? task "`GAMBIT`: **Taxon Assignment**" [`GAMBIT`](https://github.com/jlumpe/gambit) determines the taxon of the genome assembly using a k-mer based approach to match the assembly sequence to the closest complete genome in a database, thereby predicting its identity. Sometimes, GAMBIT can confidently designate the organism to the species level. Other times, it is more conservative and assigns it to a higher taxonomic rank. @@ -360,7 +381,33 @@ All input reads are processed through "core tasks" in each workflow. The core ta | Software Documentation | [GAMBIT ReadTheDocs](https://gambit-genomics.readthedocs.io/en/latest/) | | Original Publication(s) | [GAMBIT (Genomic Approximation Method for Bacterial Identification and Tracking): A methodology to rapidly leverage whole genome sequencing of bacterial isolates for clinical identification](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0277575) | -??? task "**`QC_check`: Check QC Metrics Against User-Defined Thresholds (optional)**" +??? task "`BUSCO`: Assembly Quality Assessment" + + BUSCO (**B**enchmarking **U**niversal **S**ingle-**C**opy **O**rthologue) attempts to quantify the completeness and contamination of an assembly to generate quality assessment metrics. It uses taxa-specific databases containing genes that are all expected to occur in the given taxa, each in a single copy. BUSCO examines the presence or absence of these genes, whether they are fragmented, and whether they are duplicated (suggestive that additional copies came from contaminants). + + **BUSCO notation** + + Here is an example of BUSCO notation: `C:99.1%[S:98.9%,D:0.2%],F:0.0%,M:0.9%,n:440`. There are several abbreviations used in this output: + + - Complete (C) - genes are considered "complete" when their lengths are within two standard deviations of the BUSCO group mean length. + - Single-copy (S) - genes that are complete and have only one copy. + - Duplicated (D) - genes that are complete and have more than one copy. + - Fragmented (F) - genes that are only partially recovered. + - Missing (M) - genes that were not recovered at all. + - Number of genes examined (n) - the number of genes examined. + + A high equity assembly will use the appropriate database for the taxa, have high complete (C) and single-copy (S) percentages, and low duplicated (D), fragmented (F) and missing (M) percentages. + + !!! techdetails "BUSCO Technical Details" + + | | Links | + | --- | --- | + | Task | [task_busco.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/advanced_metrics/task_busco.wdl) | + | Software Source Code | [BUSCO on GitLab](https://gitlab.com/ezlab/busco) | + | Software Documentation | https://busco.ezlab.org/ | + | Orginal publication | [BUSCO: assessing genome assembly and annotation completeness with single-copy orthologs](https://academic.oup.com/bioinformatics/article/31/19/3210/211866) | + +??? task "`QC_check`: Check QC Metrics Against User-Defined Thresholds (optional)" The `qc_check` task compares generated QC metrics against user-defined thresholds for each metric. This task will run if the user provides a `qc_check_table` .tsv file. If all QC metrics meet the threshold, the `qc_check` output variable will read `QC_PASS`. Otherwise, the output will read `QC_NA` if the task could not proceed or `QC_ALERT` followed by a string indicating what metric failed. @@ -383,96 +430,167 @@ All input reads are processed through "core tasks" in each workflow. The core ta | | Links | | --- | --- | - | Task | [task_qc_check.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/comparisons/task_qc_check.wdl) | + | Task | [task_qc_check_phb.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/comparisons/task_qc_check_phb.wdl) | -### Organism-specific Characterization +#### Organism-specific characterization -The TheiaEuk workflow automatically activates taxa-specific tasks after identification of relevant taxa using `GAMBIT`. Many of these taxa-specific tasks do not require any additional workflow tasks from the user. +!!! tip "" + The TheiaEuk workflow automatically activates taxa-specific tasks after identification of the relevant taxa using `GAMBIT`. Many of these taxa-specific tasks do not require any additional inputs from the user. ??? toggle "_Candida auris_" + Two tools are deployed when _Candida auris_ is identified. + + ??? task "Cladetyping: clade determination" + GAMBIT is used to determine the clade of the specimen by comparing the sequence to five clade-specific reference files. The output of the clade typing task will be used to specify the reference genome for the antifungal resistance detection tool. + + ??? toggle "Default reference genomes used for clade typing and antimicrobial resistance gene detection of _C. auris_" + | Clade | Genome Accession | Assembly Name | Strain | NCBI Submitter | Included mutations in AMR genes (not comprehensive) | + | --- | --- | --- | --- | --- | --- | + | _Candida auris_ Clade I | GCA_002759435.2 | Cand_auris_B8441_V2 | B8441 | Centers for Disease Control and Prevention | | + | _Candida auris_ Clade II | GCA_003013715.2 | ASM301371v2 | B11220 | Centers for Disease Control and Prevention | | + | _Candida auris_ Clade III | GCA_002775015.1 | Cand_auris_B11221_V1 | B11221 | Centers for Disease Control and Prevention | _ERG11_ V125A/F126L | + | _Candida auris_ Clade IV | GCA_003014415.1 | Cand_auris_B11243 | B11243 | Centers for Disease Control and Prevention | _ERG11_ Y132F | + | _Candida auris_ Clade V | GCA_016809505.1 | ASM1680950v1 | IFRC2087 | Centers for Disease Control and Prevention | | + + !!! techdetails "Cladetyping Technical Details" + | | Links | + | --- | --- | + | Task | [task_cauris_cladetyping.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/species_typing/candida/task_cauris_cladetyper.wdl) | + | Software Source Code | [GAMBIT on GitHub](https://github.com/jlumpe/gambit) | + | Software Documentation | [GAMBIT Overview](https://theiagen.notion.site/GAMBIT-7c1376b861d0486abfbc316480046bdc?pvs=4) + | Original Publication(s) | [GAMBIT (Genomic Approximation Method for Bacterial Identification and Tracking): A methodology to rapidly leverage whole genome sequencing of bacterial isolates for clinical identification](https://doi.org/10.1371/journal.pone.0277575)
[TheiaEuk: a species-agnostic bioinformatics workflow for fungal genomic characterization](https://doi.org/10.3389/fpubh.2023.1198213) | + + ??? task "Snippy Variants: antifungal resistance detection" + To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, then these variants are queried for product names associated with resistance. + + The genes in which there are known resistance-conferring mutations for this pathogen are: + + - FKS1 + - ERG11 (lanosterol 14-alpha demethylase) + - FUR1 (uracil phosphoribosyltransferase) + + We query `Snippy` results to see if any mutations were identified in those genes. By default, we automatically check for the following loci (which can be overwritten by the user). You will find the mutations next to the locus tag in the `theiaeuk_snippy_variants_hits` column corresponding gene name (see below): + + | **TheiaEuk Search Term** | **Corresponding Gene Name** | + |---|---| + | B9J08_005340 | ERG6 | + | B9J08_000401 | FLO8 | + | B9J08_005343 | Hypothetical protein (PSK74852) | + | B9J08_003102 | MEC3 | + | B9J08_003737 | ERG3 | + | lanosterol.14-alpha.demethylase | ERG11 | + | uracil.phosphoribosyltransferase | FUR1 | + | FKS1 | FKS1 | + + For example, one sample may have the following output for the `theiaeuk_snippy_variants_hits` column: + + ```plaintext + lanosterol.14-alpha.demethylase: lanosterol 14-alpha demethylase (missense_variant c.428A>G p.Lys143Arg; C:266 T:0),B9J08_000401: hypothetical protein (stop_gained c.424C>T p.Gln142*; A:70 G:0) + ``` + + Based on this, we can tell that ERG11 has a missense variant at position 143 (Lysine to Arginine) and B9J08_000401 (which is FLO8) has a stop-gained variant at position 142 (Glutamine to Stop). + + ??? toggle "Known resistance-conferring mutations for _Candida auris_" + Mutations in these genes that are known to confer resistance are shown below + + | **Organism** | **Found in** | **Gene name** | **Gene locus** | **AA mutation** | **Drug** | **Reference** | + | --- | --- | --- | --- | --- | --- | --- | + | **Candida auris** | **Human** | **ERG11** | | **Y132F** | **Fluconazole** | [Simultaneous Emergence of Multidrug-Resistant _Candida auris_ on 3 Continents Confirmed by Whole-Genome Sequencing and Epidemiological Analyses](https://academic.oup.com/cid/article/64/2/134/2706620/Simultaneous-Emergence-of-Multidrug-Resistant) | + | **Candida auris** | **Human** | **ERG11** | | **K143R** | **Fluconazole** | [Simultaneous Emergence of Multidrug-Resistant _Candida auris_ on 3 Continents Confirmed by Whole-Genome Sequencing and Epidemiological Analyses](https://academic.oup.com/cid/article/64/2/134/2706620/Simultaneous-Emergence-of-Multidrug-Resistant) | + | **Candida auris** | **Human** | **ERG11** | | **F126T** | **Fluconazole** | [Simultaneous Emergence of Multidrug-Resistant _Candida auris_ on 3 Continents Confirmed by Whole-Genome Sequencing and Epidemiological Analyses](https://academic.oup.com/cid/article/64/2/134/2706620/Simultaneous-Emergence-of-Multidrug-Resistant) | + | **Candida auris** | **Human** | **FKS1** | | **S639P** | **Micafungin** | [Activity of CD101, a long-acting echinocandin, against clinical isolates of Candida auris](https://www.sciencedirect.com/science/article/pii/S0732889317303498) | + | **Candida auris** | **Human** | **FKS1** | | **S639P** | **Caspofungin** | [Activity of CD101, a long-acting echinocandin, against clinical isolates of Candida auris](https://www.sciencedirect.com/science/article/pii/S0732889317303498) | + | **Candida auris** | **Human** | **FKS1** | | **S639P** | **Anidulafungin** | [Activity of CD101, a long-acting echinocandin, against clinical isolates of Candida auris](https://www.sciencedirect.com/science/article/pii/S0732889317303498) | + | **Candida auris** | **Human** | **FKS1** | | **S639F** | **Micafungin** | [A multicentre study of antifungal susceptibility patterns among 350 _Candida auris_ isolates (2009–17) in India: role of the ERG11 and FKS1 genes in azole and echinocandin resistance](https://academic.oup.com/jac/advance-article/doi/10.1093/jac/dkx480/4794718) | + | **Candida auris** | **Human** | **FKS1** | | **S639F** | **Caspofungin** | [A multicentre study of antifungal susceptibility patterns among 350 _Candida auris_ isolates (2009–17) in India: role of the ERG11 and FKS1 genes in azole and echinocandin resistance](https://academic.oup.com/jac/advance-article/doi/10.1093/jac/dkx480/4794718) | + | **Candida auris** | **Human** | **FKS1** | | **S639F** | **Anidulafungin** | [A multicentre study of antifungal susceptibility patterns among 350 _Candida auris_ isolates (2009–17) in India: role of the ERG11 and FKS1 genes in azole and echinocandin resistance](https://academic.oup.com/jac/advance-article/doi/10.1093/jac/dkx480/4794718) | + | **Candida auris** | **Human** | **FUR1** | **CAMJ_004922** | **F211I** | **5-flucytosine** | [Genomic epidemiology of the UK outbreak of the emerging human fungal pathogen Candida auris](https://doi.org/10.1038/s41426-018-0045-x) | + + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl)
[task_snippy_gene_query.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_gene_query.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | + +??? toggle "_Candida albicans_" + When this species is detected by the taxon ID tool, an antifungal resistance detection task is deployed. - Two tools are deployed when _Candida auris is_ identified. First, the Cladetyping tool is launched to determine the clade of the specimen by comparing the sequence to five clade-specific reference files. The output of the clade typing task will be used to specify the reference genome for the antifungal resistance detection tool. To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, then these variants are queried for product names associated with resistance according to the MARDy database (). - - The genes in which there are known resistance-conferring mutations for this pathogen are: - - - FKS1 - - ERG11 (lanosterol 14-alpha demethylase) - - FUR1 (uracil phosphoribosyltransferase) - - We query `Snippy` results to see if any mutations were identified in those genes. In addition, _C. auris_ automatically checks for the following loci. You will find the mutations next to the locus tag in the `theiaeuk_snippy_variants_hits` column corresponding gene name followings: - - | **TheiaEuk Search Term** | **Corresponding Gene Name** | - |---|---| - | B9J08_005340 | ERG6 | - | B9J08_000401 | FLO8 | - | B9J08_005343 | Hypothetical protein (PSK74852) | - | B9J08_003102 | MEC3 | - | B9J08_003737 | ERG3 | - | lanosterol.14-alpha.demethylase | ERG11 | - | uracil.phosphoribosyltransferase | FUR1 | - | FKS1 | FKS1 | - - For example, one sample may have the following output for the `theiaeuk_snippy_variants_hits` column: - - ```plaintext - lanosterol.14-alpha.demethylase: lanosterol 14-alpha demethylase (missense_variant c.428A>G p.Lys143Arg; C:266 T:0),B9J08_000401: hypothetical protein (stop_gained c.424C>T p.Gln142*; A:70 G:0) - ``` - - Based on this, we can tell that ERG11 has a missense variant at position 143 (Lysine to Arginine) and B9J08_000401 (which is FLO8) has a stop-gained variant at position 142 (Glutamine to Stop). - - ??? toggle "Default reference genomes used for clade typing and antimicrobial resistance gene detection of _C. auris_" - | Clade | Genome Accession | Assembly Name | Strain | NCBI Submitter | Included mutations in AMR genes (not comprehensive) | - | --- | --- | --- | --- | --- | --- | - | Candida auris Clade I | GCA_002759435.2 | Cand_auris_B8441_V2 | B8441 | Centers for Disease Control and Prevention | | - | Candida auris Clade II | GCA_003013715.2 | ASM301371v2 | B11220 | Centers for Disease Control and Prevention | | - | Candida auris Clade III | GCA_002775015.1 | Cand_auris_B11221_V1 | B11221 | Centers for Disease Control and Prevention | _ERG11_ V125A/F126L | - | Candida auris Clade IV | GCA_003014415.1 | Cand_auris_B11243 | B11243 | Centers for Disease Control and Prevention | _ERG11_ Y132F | - | Candida auris Clade V | GCA_016809505.1 | ASM1680950v1 | IFRC2087 | Centers for Disease Control and Prevention | | - - ??? toggle "Known resistance-conferring mutations for _Candida auris_" - Mutations in these genes that are known to confer resistance are shown below (source: MARDy database http://mardy.dide.ic.ac.uk/index.php) - - | **Organism** | **Found in** | **Gene name** | **Gene locus** | **AA mutation** | **Drug** | **Tandem repeat name** | **Tandem repeat sequence** | **Reference** | - | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | **Candida auris** | **Human** | **ERG11** | | **Y132F** | **Fluconazole** | | | [**10.1093/cid/ciw691**](https://academic.oup.com/cid/article/64/2/134/2706620/Simultaneous-Emergence-of-Multidrug-Resistant) | - | **Candida auris** | **Human** | **ERG11** | | **K143R** | **Fluconazole** | | | [**10.1093/cid/ciw691**](https://academic.oup.com/cid/article/64/2/134/2706620/Simultaneous-Emergence-of-Multidrug-Resistant) | - | **Candida auris** | **Human** | **ERG11** | | **F126T** | **Fluconazole** | | | [**10.1093/cid/ciw691**](https://academic.oup.com/cid/article/64/2/134/2706620/Simultaneous-Emergence-of-Multidrug-Resistant) | - | **Candida auris** | **Human** | **FKS1** | | **S639P** | **Micafungin** | | | [**10.1016/j.diagmicrobio.2017.10.021**](https://www.sciencedirect.com/science/article/pii/S0732889317303498) | - | **Candida auris** | **Human** | **FKS1** | | **S639P** | **Caspofungin** | | | [**10.1016/j.diagmicrobio.2017.10.021**](https://www.sciencedirect.com/science/article/pii/S0732889317303498) | - | **Candida auris** | **Human** | **FKS1** | | **S639P** | **Anidulafungin** | | | [**10.1016/j.diagmicrobio.2017.10.021**](https://www.sciencedirect.com/science/article/pii/S0732889317303498) | - | **Candida auris** | **Human** | **FKS1** | | **S639F** | **Micafungin** | | | [**10.1093/jac/dkx480**](https://academic.oup.com/jac/advance-article/doi/10.1093/jac/dkx480/4794718) | - | **Candida auris** | **Human** | **FKS1** | | **S639F** | **Caspofungin** | | | [**10.1093/jac/dkx480**](https://academic.oup.com/jac/advance-article/doi/10.1093/jac/dkx480/4794718) | - | **Candida auris** | **Human** | **FKS1** | | **S639F** | **Anidulafungin** | | | [**10.1093/jac/dkx480**](https://academic.oup.com/jac/advance-article/doi/10.1093/jac/dkx480/4794718) | - | **Candida auris** | **Human** | **FUR1** | **CAMJ_004922** | **F211I** | **5-flucytosine** | | | [**https://doi.org/10.1038/s41426-018-0045-x**](https://www.nature.com/articles/s41426-018-0045-x) | + ??? task "Snippy Variants: antifungal resistance detection" + To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, and these variants are queried for product names associated with resistance. -??? toggle "_Candida albicans_" + The genes in which there are known resistance-conferring mutations for this pathogen are: - When this species is detected by the taxon ID tool, an antifungal resistance detection task is deployed. To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, and these variants are queried for product names associated with resistance according to the MARDy database (). + - ERG11 + - GCS1 (FKS1) + - FUR1 + - RTA2 - The genes in which there are known resistance-conferring mutations for this pathogen are: + We query `Snippy` results to see if any mutations were identified in those genes. By default, we automatically check for the following loci (which can be overwritten by the user). You will find the mutations next to the locus tag in the `theiaeuk_snippy_variants_hits` column corresponding gene name (see below): - - ERG11 - - GCS1 (FKS1) - - FUR1 - - RTA2 + | **TheiaEuk Search Term** | **Corresponding Gene Name** | + |---|---| + | ERG11 | ERG11 | + | GCS1 | FKS1 | + | FUR1 | FUR1 | + | RTA2 | RTA2 | + + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl)
[task_snippy_gene_query.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_gene_query.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ??? toggle "_Aspergillus fumigatus_" + When this species is detected by the taxon ID tool an antifungal resistance detection task is deployed. + + ??? task "Snippy Variants: antifungal resistance detection" + To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, and these variants are queried for product names associated with resistance. - When this species is detected by the taxon ID tool an antifungal resistance detection task is deployed. To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, and these variants are queried for product names associated with resistance according to the MARDy database (). + The genes in which there are known resistance-conferring mutations for this pathogen are: - The genes in which there are known resistance-conferring mutations for this pathogen are: + - Cyp51A + - HapE + - COX10 (AFUA_4G08340) + + We query `Snippy` results to see if any mutations were identified in those genes. By default, we automatically check for the following loci (which can be overwritten by the user). You will find the mutations next to the locus tag in the `theiaeuk_snippy_variants_hits` column corresponding gene name (see below): - - Cyp51A - - HapE - - COX10 (AFUA_4G08340) + | **TheiaEuk Search Term** | **Corresponding Gene Name** | + |---|---| + | Cyp51A | Cyp51A | + | HapE | HapE | + | AFUA_4G08340 | COX10 | + + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl)
[task_snippy_gene_query.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_gene_query.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ??? toggle "_Cryptococcus neoformans_" + When this species is detected by the taxon ID tool an antifungal resistance detection task is deployed. - When this species is detected by the taxon ID tool an antifungal resistance detection task is deployed. To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, and these variants are queried for product names associated with resistance according to the MARDy database (). + ??? task "Snippy Variants: antifungal resistance detection" + To detect mutations that may confer antifungal resistance, `Snippy` is used to find all variants relative to the clade-specific reference, and these variants are queried for product names associated with resistance. - The gene in which there are known resistance-conferring mutations for this pathogen is: + The genes in which there are known resistance-conferring mutations for this pathogen are: - - ERG11 (CNA00300) + - ERG11 (CNA00300) + + We query `Snippy` results to see if any mutations were identified in those genes. By default, we automatically check for the following loci (which can be overwritten by the user). You will find the mutations next to the locus tag in the `theiaeuk_snippy_variants_hits` column corresponding gene name (see below): + + | **TheiaEuk Search Term** | **Corresponding Gene Name** | + |---|---| + | CNA00300 | ERG11 | + + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl)
[task_snippy_gene_query.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_gene_query.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ### Outputs @@ -540,4 +658,4 @@ The TheiaEuk workflow automatically activates taxa-specific tasks after identifi | theiaeuk_illumina_pe_analysis_date | String | Date of TheiaProk workflow execution | | theiaeuk_illumina_pe_version | String | TheiaProk workflow version used | -
\ No newline at end of file + diff --git a/docs/workflows/genomic_characterization/theiameta.md b/docs/workflows/genomic_characterization/theiameta.md index 6e9147399..e166088aa 100644 --- a/docs/workflows/genomic_characterization/theiameta.md +++ b/docs/workflows/genomic_characterization/theiameta.md @@ -149,7 +149,7 @@ The TheiaMeta_Illumina_PE workflow processes Illumina paired-end (PE) reads ge | | Links | | --- | --- | - | Task | [task_ncbi_scrub.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_ncbi_scrub.wdl) | + | Task | [task_ncbi_scrub.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_ncbi_scrub.wdl) | | Software Source Code | [NCBI Scrub on GitHub](https://github.com/ncbi/sra-human-scrubber) | | Software Documentation | | @@ -214,7 +214,7 @@ The TheiaMeta_Illumina_PE workflow processes Illumina paired-end (PE) reads ge | | Links | | --- | --- | - | Sub-workflow | [wf_read_QC_trim.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim.wdl) | + | Sub-workflow | [wf_read_QC_trim_pe.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_pe.wdl)
[wf_read_QC_trim_se.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_se.wdl) | | Tasks | [task_fastp.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_fastp.wdl)
[task_trimmomatic.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_trimmomatic.wdl)
[task_bbduk.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_bbduk.wdl)
[task_fastq_scan.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_fastq_scan.wdl)
[task_midas.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_midas.wdl)
[task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl)| | Software Source Code | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](https://github.com/usadellab/Trimmomatic); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2)| | Software Documentation | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](http://www.usadellab.org/cms/?page=trimmomatic); [BBDuk](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbduk-guide/); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2/wiki) | @@ -233,7 +233,7 @@ The TheiaMeta_Illumina_PE workflow processes Illumina paired-end (PE) reads ge | | Links | | --- | --- | - | Task | [task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/task_kraken2.wdl) | + | Task | [task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl) | | Software Source Code | [Kraken2 on GitHub](https://github.com/DerrickWood/kraken2/) | | Software Documentation | | | Original Publication(s) | [Improved metagenomic analysis with Kraken 2](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1891-0) | @@ -267,7 +267,7 @@ The TheiaMeta_Illumina_PE workflow processes Illumina paired-end (PE) reads ge | | Links | | --- | --- | - | Task | [task_quast.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_quast.wdl) | + | Task | [task_quast.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_quast.wdl) | | Software Source Code | [QUAST on GitHub](https://github.com/ablab/quast) | | Software Documentation | | | Original Publication(s) | [QUAST: quality assessment tool for genome assemblies](https://academic.oup.com/bioinformatics/article/29/8/1072/228832) | diff --git a/docs/workflows/genomic_characterization/theiaprok.md b/docs/workflows/genomic_characterization/theiaprok.md index 6664df6df..8808caab2 100644 --- a/docs/workflows/genomic_characterization/theiaprok.md +++ b/docs/workflows/genomic_characterization/theiaprok.md @@ -722,7 +722,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al | | Links | | --- | --- | - | Sub-workflow | [wf_read_QC_trim.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim.wdl) | + | Sub-workflow | [wf_read_QC_trim_pe.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_pe.wdl)
[wf_read_QC_trim_se.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_se.wdl) | | Tasks | [task_fastp.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_fastp.wdl)
[task_trimmomatic.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_trimmomatic.wdl)
[task_bbduk.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_bbduk.wdl)
[task_fastq_scan.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_fastq_scan.wdl)
[task_midas.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_midas.wdl)
[task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl)| | Software Source Code | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](https://github.com/usadellab/Trimmomatic); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2)| | Software Documentation | [fastp](https://github.com/OpenGene/fastp); [Trimmomatic](http://www.usadellab.org/cms/?page=trimmomatic); [BBDuk](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbduk-guide/); [fastq-scan](https://github.com/rpetit3/fastq-scan); [MIDAS](https://github.com/snayfach/MIDAS); [Kraken2](https://github.com/DerrickWood/kraken2/wiki) | @@ -737,7 +737,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al | | Links | | --- | --- | - | Task | [task_cg_pipeline.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/task_cg_pipeline.wdl) | + | Task | [task_cg_pipeline.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_cg_pipeline.wdl) | | Software Source Code | [CG-Pipeline on GitHub](https://github.com/lskatz/CG-Pipeline/) | | Software Documentation | [CG-Pipeline on GitHub](https://github.com/lskatz/CG-Pipeline/) | | Original Publication(s) | [A computational genomics pipeline for prokaryotic sequencing projects](https://academic.oup.com/bioinformatics/article/26/15/1819/188418) | @@ -746,7 +746,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al De Novo assembly will be undertaken only for samples that have sufficient read quantity and quality, as determined by the `screen` task assessment of clean reads. - In TheiaEuk, assembly is performed using the [Shovill](https://github.com/tseemann/shovill) pipeline. This undertakes the assembly with one of four assemblers ([SKESA](https://github.com/ncbi/SKESA) (default), [SPAdes](https://github.com/ablab/spades), [Velvet](https://github.com/dzerbino/velvet/), [Megahit](https://github.com/voutcn/megahit)), but also performs [a number of pre- and post-processing steps](https://github.com/tseemann/shovill#main-steps) to improve the resulting genome assembly. Shovill uses an estimated genome size (see [here](https://github.com/tseemann/shovill#--gsize)). If this is not provided by the user as an optional input, Shovill will estimate the genome size using [mash](https://mash.readthedocs.io/en/latest/index.html). Adaptor trimming can be undertaken with Shovill by setting the `trim` option to "true", but this is set to "false" by default as [alternative adapter trimming](https://www.notion.so/TheiaProk-Workflow-Series-89b9c08406094ec78d08a578fe861626?pvs=21) is undertaken in the TheiaEuk workflow. + In TheiaProk, assembly is performed using the [Shovill](https://github.com/tseemann/shovill) pipeline. This undertakes the assembly with one of four assemblers ([SKESA](https://github.com/ncbi/SKESA) (default), [SPAdes](https://github.com/ablab/spades), [Velvet](https://github.com/dzerbino/velvet/), [Megahit](https://github.com/voutcn/megahit)), but also performs [a number of pre- and post-processing steps](https://github.com/tseemann/shovill#main-steps) to improve the resulting genome assembly. Shovill uses an estimated genome size (see [here](https://github.com/tseemann/shovill#--gsize)). If this is not provided by the user as an optional input, Shovill will estimate the genome size using [mash](https://mash.readthedocs.io/en/latest/index.html). Adaptor trimming can be undertaken with Shovill by setting the `trim` option to "true", but this is set to "false" by default as [alternative adapter trimming](https://www.notion.so/TheiaProk-Workflow-Series-89b9c08406094ec78d08a578fe861626?pvs=21) is undertaken in the TheiaEuk workflow. ??? toggle "What is _de novo_ assembly?" _De novo_ assembly is the process or product of attempting to reconstruct a genome from scratch (without prior knowledge of the genome) using sequence reads. Assembly of fungal genomes from short-reads will produce multiple contigs per chromosome rather than a single contiguous sequence for each chromosome. @@ -754,8 +754,9 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al !!! techdetails "Shovill Technical Details" | | Links | | --- | --- | - | TheiaProk WDL Task | [task_shovill.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/assembly/task_shovill.wdl#L3) | - | Software code repository and documentation | [Shovill on GitHub](https://github.com/tseemann/shovill) | + | TheiaEuk WDL Task | [task_shovill.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/assembly/task_shovill.wdl#L3) | + | Software Source Code | [Shovill on GitHub](https://github.com/tseemann/shovill) | + | Software Documentation | [Shovill on GitHub](https://github.com/tseemann/shovill) | #### ONT Data Core Tasks @@ -765,7 +766,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al **Estimated genome length**: - By default, an estimated genome length is set to 5 Mb, which is around 0.7 Mb higher than the average bacterial genome length, according to the information collated [here](https://github.com/CDCgov/phoenix/blob/717d19c19338373fc0f89eba30757fe5cfb3e18a/assets/databases/NCBI_Assembly_stats_20240124.txt). This estimate can be overwritten by the user, and is used by `RASUSA` and `dragonflye`. + By default, an estimated genome length is set to 5 Mb, which is around 0.7 Mb higher than the average bacterial genome length, according to the information collated [here](https://github.com/CDCgov/phoenix/blob/717d19c19338373fc0f89eba30757fe5cfb3e18a/assets/databases/NCBI_Assembly_stats_20240124.txt). This estimate can be overwritten by the user, and is used by `Rasusa` and `dragonflye`. **Plotting and quantifying long-read sequencing data:** `nanoplot` @@ -784,7 +785,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al | Workflow | **TheiaProk_ONT** | | --- | --- | | Sub-workflow | [wf_read_QC_trim_ont.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/workflows/utilities/wf_read_QC_trim_ont.wdl) | - | Tasks | [task_nanoplot.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_nanoplot.wdl) [task_fastq_scan.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/b481ce48f3d527ab8f31e4ad8171769212cc091a/tasks/quality_control/basic_statistics/task_fastq_scan.wdl) [task_rasusa.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/utilities/task_rasusa.wdl) [task_nanoq.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_nanoq.wdl) [task_tiptoft.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/plasmid_detection/task_tiptoft.wdl) | + | Tasks | [task_nanoplot.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_nanoplot.wdl) [task_fastq_scan.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_fastq_scan.wdl) [task_rasusa.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/utilities/task_rasusa.wdl) [task_nanoq.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/read_filtering/task_nanoq.wdl) [task_tiptoft.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/plasmid_detection/task_tiptoft.wdl) | | Software Source Code | [fastq-scan](https://github.com/rpetit3/fastq-scan), [NanoPlot](https://github.com/wdecoster/NanoPlot), [RASUSA](https://github.com/mbhall88/rasusa), [tiptoft](https://github.com/andrewjpage/tiptoft), [nanoq](https://github.com/esteinig/nanoq) | | Original Publication(s) | [NanoPlot paper](https://academic.oup.com/bioinformatics/article/39/5/btad311/7160911)
[RASUSA paper](https://doi.org/10.21105/joss.03941)
[Nanoq Paper](https://doi.org/10.21105/joss.02991)
[Tiptoft paper](https://doi.org/10.21105/joss.01021) | @@ -808,7 +809,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al | --- | --- | | Task | [task_quast.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/basic_statistics/task_quast.wdl) | | Software Source Code | [QUAST on GitHub](https://github.com/ablab/quast) | - | Software Documentation | | + | Software Documentation | | | Original Publication(s) | [QUAST: quality assessment tool for genome assemblies](https://academic.oup.com/bioinformatics/article/29/8/1072/228832) | ??? task "`BUSCO`: Assembly Quality Assessment" @@ -892,7 +893,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al ??? task "`AMRFinderPlus`: AMR Genotyping (default)" - NCBI's [AMRFinderPlus](https://github.com/ncbi/amr/wiki) is the default antimicrobial resistance (AMR) detection tool used in TheiaProk. [ResFinder](https://www.notion.so/TheiaProk-Workflow-Series-68c34aca2a0240ef94fef0acd33651b9?pvs=21) may be used alternatively and if so, AMRFinderPlus is not run. + NCBI's [AMRFinderPlus](https://github.com/ncbi/amr/wiki) is the default antimicrobial resistance (AMR) detection tool used in TheiaProk. ResFinder may be used alternatively and if so, AMRFinderPlus is not run. AMRFinderPlus identifies acquired antimicrobial resistance (AMR) genes, virulence genes, and stress genes. Such AMR genes confer resistance to antibiotics, metals, biocides, heat, or acid. For some taxa (see [here](https://github.com/ncbi/amr/wiki/Running-AMRFinderPlus#--organism-option)), AMRFinderPlus will provide taxa-specific results including filtering out genes that are almost ubiquitous in the taxa (intrinsic genes) and identifying resistance-associated point mutations. In TheiaProk, the taxon used by AMRFinderPlus is specified based on the `gambit_predicted_taxon` or a user-provided `expected_taxon`. @@ -1047,7 +1048,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al | | Links | | --- | --- | - | Task | [task_plasmidfinder.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/plasmid_typing/task_plasmidfinder.wdl) | + | Task | [task_plasmidfinder.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/plasmid_detection/task_plasmidfinder.wdl) | | Software Source Code | https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/ | | Software Documentation | https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/ | | Original Publication(s) | [In Silico Detection and Typing of Plasmids using PlasmidFinder and Plasmid Multilocus Sequence Typing](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4068535/) | @@ -1076,7 +1077,7 @@ All input reads are processed through "[core tasks](#core-tasks-performed-for-al | | Links | | --- | --- | - | Task | [task_qc_check.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/comparisons/task_qc_check.wdl) | + | Task | [task_qc_check_phb.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/quality_control/comparistask_qc_check_phb.wdl.wdl) | ??? task "`Taxon Tables`: Copy outputs to new data tables based on taxonomic assignment (optional)" @@ -1323,7 +1324,7 @@ The TheiaProk workflows automatically activate taxa-specific sub-workflows after | | Links | | --- | --- | - | Task | [task_kleborate.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/species_typing/haemophilus/task_kleborate.wdl) | + | Task | [task_kleborate.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/species_typing/klebsiella/task_kleborate.wdl) | | Software Source Code | [kleborate on GitHub](https://github.com/katholt/Kleborate) | | Software Documentation | https://github.com/katholt/Kleborate/wiki | | Orginal publication | [A genomic surveillance framework and genotyping tool for Klebsiella pneumoniae and its related species complex](https://www.nature.com/articles/s41467-021-24448-3)
[Identification of Klebsiella capsule synthesis loci from whole genome data](https://www.microbiologyresearch.org/content/journal/mgen/10.1099/mgen.0.000102) | @@ -1534,7 +1535,7 @@ The TheiaProk workflows automatically activate taxa-specific sub-workflows after ??? task "`PopPUNK`: Global Pneumococcal Sequence Cluster typing" - Global Pneumococcal Sequence Clusters (GPSC) define and name pneumococcal strains. GPSC designation is undertaken using the PopPUNK software and GPSC database as described in the file below, obtained from [here](https://www.pneumogen.net/gps/training_command_line.html). + Global Pneumococcal Sequence Clusters (GPSC) define and name pneumococcal strains. GPSC designation is undertaken using the PopPUNK software and GPSC database as described in the file below, obtained from [here](https://www.pneumogen.net/gps/#/training#command-line). :file: [GPSC_README_PopPUNK2.txt](../../assets/files/GPSC_README_PopPUNK2.txt) @@ -1547,9 +1548,9 @@ The TheiaProk workflows automatically activate taxa-specific sub-workflows after | | Links | | --- | --- | | Task | [task_poppunk_streppneumo.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/species_typing/streptococcus/task_poppunk_streppneumo.wdl) | - | GPSC database | https://www.pneumogen.net/gps/training_command_line.html | + | GPSC database | | | Software Source Code | [PopPunk](https://github.com/bacpop/PopPUNK) | - | Software Documentation | https://poppunk.readthedocs.io/en/latest/ | + | Software Documentation | | | Original Publication(s) | [Fast and flexible bacterial genomic epidemiology with PopPUNK](https://genome.cshlp.org/content/29/2/304) | ??? task "`SeroBA`: Serotyping ==_for Illumina_PE only_==" diff --git a/docs/workflows/phylogenetic_construction/augur.md b/docs/workflows/phylogenetic_construction/augur.md index d8eb10f9f..c9d144997 100644 --- a/docs/workflows/phylogenetic_construction/augur.md +++ b/docs/workflows/phylogenetic_construction/augur.md @@ -14,10 +14,10 @@ Two workflows are offered: **Augur_Prep_PHB** and **Augur_PHB**. These must be r !!! dna "**Helpful resources for epidemiological interpretation**" - - [introduction to Nextstrain](https://www.cdc.gov/amd/training/covid-toolkit/module3-1.html) (which includes Auspice) - - guide to Nextstrain [interactive trees](https://www.cdc.gov/amd/training/covid-toolkit/module3-4.html) - - an [introduction to UShER](https://www.cdc.gov/amd/training/covid-toolkit/module3-3.html) - - a video about [how to read trees](https://www.cdc.gov/amd/training/covid-toolkit/module1-3.html) if this is new to you + - [introduction to Nextstrain](https://www.cdc.gov/advanced-molecular-detection/php/training/module-3-1.html) (which includes Auspice) + - guide to Nextstrain [interactive trees](https://www.cdc.gov/advanced-molecular-detection/php/training/module-3-4.html) + - an [introduction to UShER](https://www.cdc.gov/advanced-molecular-detection/php/training/module-3-3.html) + - a video about [how to read trees](https://www.cdc.gov/advanced-molecular-detection/php/training/module-1-3.html) if this is new to you - documentation on [how to identify SARS-CoV-2 recombinants](https://github.com/pha4ge/pipeline-resources/blob/main/docs/sc2-recombinants.md) ### Augur_Prep_PHB @@ -174,7 +174,7 @@ The Augur_PHB workflow takes in a ***set*** of SARS-CoV-2 (or any other viral This workflow runs on the set level. Please note that for every task, runtime parameters are modifiable (cpu, disk_size, docker, and memory); most of these values have been excluded from the table below for convenience. -
+
| **Terra Task Name** | **Variable** | **Type** | **Description** | **Default Value** | **Terra Status** | |---|---|---|---|---|---| @@ -198,7 +198,7 @@ This workflow runs on the set level. Please note that for every task, runtime pa | augur_ancestral | **inference** | String | Calculate joint or marginal maximum likelihood ancestral sequence states; options: "joint", "marginal" | joint | Optional | | augur_ancestral | **keep_ambiguous** | Boolean | If true, do not infer nucleotides at ambiguous (N) sides | FALSE | Optional | | augur_ancestral | **keep_overhangs** | Boolean | If true, do not infer nucleotides for gaps on either side of the alignment | FALSE | Optional | -| augur_export | **colors_tsv** | File | Custom color definitions, one per line in the format TRAIT_TYPE \| TRAIT_VALUE\tHEX_CODE | | Optional | +| augur_export | **colors_tsv** | File | Custom color definitions, one per line in TSV format with the following fields: TRAIT_TYPE TRAIT_VALUE HEX_CODE | | Optional | | augur_export | **description_md** | File | Markdown file with description of build and/or acknowledgements | | Optional | | augur_export | **include_root_sequence** | Boolean | Export an additional JSON containing the root sequence used to identify mutations | FALSE | Optional | | augur_export | **title** | String | Title to be displayed by Auspice | | Optional | diff --git a/docs/workflows/phylogenetic_construction/snippy_streamline.md b/docs/workflows/phylogenetic_construction/snippy_streamline.md index c794be4c8..aa04198b3 100644 --- a/docs/workflows/phylogenetic_construction/snippy_streamline.md +++ b/docs/workflows/phylogenetic_construction/snippy_streamline.md @@ -173,11 +173,7 @@ For all cases: `Snippy_Variants` aligns reads for each sample against the reference genome. As part of `Snippy_Streamline`, the only output from this workflow is the `snippy_variants_outdir_tarball` which is provided in the set-level data table. Please see the full documentation for [Snippy_Variants](./snippy_variants.md) for more information. -??? task "snippy_variants (qc_metrics output)" - - ##### snippy_variants {#snippy_variants} - - This task runs Snippy to perform SNP analysis on individual samples. It extracts QC metrics from the Snippy output for each sample and saves them in per-sample TSV files (`snippy_variants_qc_metrics`). These per-sample QC metrics include the following columns: + This task also extracts QC metrics from the Snippy output for each sample and saves them in per-sample TSV files (`snippy_variants_qc_metrics`). These per-sample QC metrics include the following columns: - **samplename**: The name of the sample. - **reads_aligned_to_reference**: The number of reads that aligned to the reference genome. @@ -195,9 +191,17 @@ For all cases: - **meanbaseq**: Mean base quality over the reference sequence. - **meanmapq**: Mean mapping quality over the reference sequence. - These per-sample QC metrics are then combined into a single file (`snippy_combined_qc_metrics`) in the downstream `snippy_tree_wf` workflow. The combined QC metrics file includes the same columns as above for all samples. Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. + These per-sample QC metrics are then combined into a single file (`snippy_combined_qc_metrics`). The combined QC metrics file includes the same columns as above for all samples. Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. + + !!! tip "QC Metrics for Phylogenetic Analysis" + These QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses - **Note:** The per-sample QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses. + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ??? task "Snippy_Tree workflow" diff --git a/docs/workflows/phylogenetic_construction/snippy_streamline_fasta.md b/docs/workflows/phylogenetic_construction/snippy_streamline_fasta.md index 352d5a55c..890674b3f 100644 --- a/docs/workflows/phylogenetic_construction/snippy_streamline_fasta.md +++ b/docs/workflows/phylogenetic_construction/snippy_streamline_fasta.md @@ -39,11 +39,11 @@ The `Snippy_Streamline_FASTA` workflow is an all-in-one approach to generating a ### Workflow Tasks -??? task "snippy_variants (qc_metrics output)" +??? task "Snippy_Variants QC Metrics Concatenation (optional)" - ##### snippy_variants {#snippy_variants} + ##### Snippy_Variants QC Metric Concatenation (optional) {#snippy_variants} - This task runs Snippy to perform SNP analysis on individual samples. It extracts QC metrics from the Snippy output for each sample and saves them in per-sample TSV files (`snippy_variants_qc_metrics`). These per-sample QC metrics include the following columns: + Optionally, the user can provide the `snippy_variants_qc_metrics` file produced by the Snippy_Variants workflow as input to the workflow to concatenate the reports for each sample in the tree. These per-sample QC metrics include the following columns: - **samplename**: The name of the sample. - **reads_aligned_to_reference**: The number of reads that aligned to the reference genome. @@ -61,9 +61,17 @@ The `Snippy_Streamline_FASTA` workflow is an all-in-one approach to generating a - **meanbaseq**: Mean base quality over the reference sequence. - **meanmapq**: Mean mapping quality over the reference sequence. - These per-sample QC metrics are then combined into a single file (`snippy_combined_qc_metrics`) in the downstream `snippy_tree_wf` workflow. The combined QC metrics file includes the same columns as above for all samples. Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. + The combined QC metrics file includes the same columns as above for all samples. Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. - **Note:** The per-sample QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses. + !!! tip "QC Metrics for Phylogenetic Analysis" + These QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses, and we recommend examining them before proceeding with phylogenetic analysis if performing Snippy_Variants and Snippy_Tree separately. + + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ### Inputs diff --git a/docs/workflows/phylogenetic_construction/snippy_tree.md b/docs/workflows/phylogenetic_construction/snippy_tree.md index d6c0a272b..d28160bbb 100644 --- a/docs/workflows/phylogenetic_construction/snippy_tree.md +++ b/docs/workflows/phylogenetic_construction/snippy_tree.md @@ -4,7 +4,7 @@ | **Workflow Type** | **Applicable Kingdom** | **Last Known Changes** | **Command-line Compatibility** | **Workflow Level** | |---|---|---|---|---| -| [Phylogenetic Construction](../../workflows_overview/workflows_type.md/#phylogenetic-construction) | [Bacteria](../../workflows_overview/workflows_kingdom.md/#bacteria) | PHB v2.1.0 | Yes; some optional features incompatible | Set-level | +| [Phylogenetic Construction](../../workflows_overview/workflows_type.md/#phylogenetic-construction) | [Bacteria](../../workflows_overview/workflows_kingdom.md/#bacteria) | PHB v2.3.0 | Yes; some optional features incompatible | Set-level | ## Snippy_Tree_PHB @@ -266,7 +266,7 @@ Sequencing data used in the Snippy_Tree workflow must: | | Links | | --- | --- | - | Task | [task_summarize_data.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/utilities/task_summarize_data.wdl) | + | Task | [task_summarize_data.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/utilities/data_handling/task_summarize_data.wdl) | ??? task "Concatenate Variants (optional)" @@ -310,11 +310,11 @@ Sequencing data used in the Snippy_Tree workflow must: | Task | task_shared_variants.wdl | | Software Source Code | [task_shared_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/phylogenetic_inference/utilities/task_shared_variants.wdl) | -??? task "snippy_variants (qc_metrics output)" +??? task "Snippy_Variants QC Metrics Concatenation (optional)" - ##### snippy_variants {#snippy_variants} + ##### Snippy_Variants QC Metric Concatenation (optional) {#snippy_variants} - This task runs Snippy to perform SNP analysis on individual samples. It extracts QC metrics from the Snippy output for each sample and saves them in per-sample TSV files (`snippy_variants_qc_metrics`). These per-sample QC metrics include the following columns: + Optionally, the user can provide the `snippy_variants_qc_metrics` file produced by the Snippy_Variants workflow as input to the workflow to concatenate the reports for each sample in the tree. These per-sample QC metrics include the following columns: - **samplename**: The name of the sample. - **reads_aligned_to_reference**: The number of reads that aligned to the reference genome. @@ -332,9 +332,17 @@ Sequencing data used in the Snippy_Tree workflow must: - **meanbaseq**: Mean base quality over the reference sequence. - **meanmapq**: Mean mapping quality over the reference sequence. - These per-sample QC metrics are then combined into a single file (`snippy_combined_qc_metrics`) in the downstream `snippy_tree_wf` workflow. The combined QC metrics file includes the same columns as above for all samples. Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. + The combined QC metrics file includes the same columns as above for all samples. Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. - **Note:** The per-sample QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses. + !!! tip "QC Metrics for Phylogenetic Analysis" + These QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses, and we recommend examining them before proceeding with phylogenetic analysis if performing Snippy_Variants and Snippy_Tree separately. + + !!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ### Outputs diff --git a/docs/workflows/phylogenetic_construction/snippy_variants.md b/docs/workflows/phylogenetic_construction/snippy_variants.md index 4ec73569a..f4fc65a37 100644 --- a/docs/workflows/phylogenetic_construction/snippy_variants.md +++ b/docs/workflows/phylogenetic_construction/snippy_variants.md @@ -4,7 +4,7 @@ | **Workflow Type** | **Applicable Kingdom** | **Last Known Changes** | **Command-line Compatibility** | **Workflow Level** | |---|---|---|---|---| -| [Phylogenetic Construction](../../workflows_overview/workflows_type.md/#phylogenetic-construction) | [Bacteria](../../workflows_overview/workflows_kingdom.md/#bacteria), [Mycotics](../../workflows_overview/workflows_kingdom.md#mycotics), [Viral](../../workflows_overview/workflows_kingdom.md/#viral) | PHB v2.2.0 | Yes | Sample-level | +| [Phylogenetic Construction](../../workflows_overview/workflows_type.md/#phylogenetic-construction) | [Bacteria](../../workflows_overview/workflows_kingdom.md/#bacteria), [Mycotics](../../workflows_overview/workflows_kingdom.md#mycotics), [Viral](../../workflows_overview/workflows_kingdom.md/#viral) | PHB v2.3.0 | Yes | Sample-level | ## Snippy_Variants_PHB @@ -60,14 +60,40 @@ The `Snippy_Variants` workflow aligns single-end or paired-end reads (in FASTQ f ### Workflow Tasks -`Snippy_Variants` uses the snippy tool to align reads to the reference and call SNPs, MNPs and INDELs according to optional input parameters. The output includes a file of variants that is then queried using the `grep` bash command to identify any mutations in specified genes or annotations of interest. The query string MUST match the gene name or annotation as specified in the GenBank file and provided in the output variant file in the `snippy_results` column. - -Additionally, `Snippy_Variants` extracts quality control (QC) metrics from the Snippy output for each sample. These per-sample QC metrics are saved in TSV files (`snippy_variants_qc_metrics`). The QC metrics include: - -- **Percentage of reads aligned to the reference genome** (`snippy_variants_percent_reads_aligned`). -- **Percentage of the reference genome covered at or above the specified depth threshold** (`snippy_variants_percent_ref_coverage`). - -These per-sample QC metrics can be combined into a single file (`snippy_combined_qc_metrics`) in downstream workflows, such as `snippy_tree_wf`, providing an overview of QC metrics across all samples. +`Snippy_Variants` uses Snippy to align reads to the reference and call SNPs, MNPs and INDELs according to optional input parameters. The output includes a file of variants that is then queried using the `grep` bash command to identify any mutations in specified genes or annotations of interest. The query string MUST match the gene name or annotation as specified in the GenBank file and provided in the output variant file in the `snippy_results` column. + +!!! info "Quality Control Metrics" + Additionally, `Snippy_Variants` extracts quality control (QC) metrics from the Snippy output for each sample. These per-sample QC metrics are saved in TSV files (`snippy_variants_qc_metrics`). The QC metrics include: + + - **samplename**: The name of the sample. + - **reads_aligned_to_reference**: The number of reads that aligned to the reference genome. + - **total_reads**: The total number of reads in the sample. + - **percent_reads_aligned**: The percentage of reads that aligned to the reference genome; also available in the `snippy_variants_percent_reads_aligned` output column. + - **variants_total**: The total number of variants detected between the sample and the reference genome. + - **percent_ref_coverage**: The percentage of the reference genome covered by reads with a depth greater than or equal to the `min_coverage` threshold (default is 10); also available in the `snippy_variants_percent_ref_coverage` output column. + - **#rname**: Reference sequence name (e.g., chromosome or contig name). + - **startpos**: Starting position of the reference sequence. + - **endpos**: Ending position of the reference sequence. + - **numreads**: Number of reads covering the reference sequence. + - **covbases**: Number of bases with coverage. + - **coverage**: Percentage of the reference sequence covered (depth ≥ 1). + - **meandepth**: Mean depth of coverage over the reference sequence. + - **meanbaseq**: Mean base quality over the reference sequence. + - **meanmapq**: Mean mapping quality over the reference sequence. + + Note that the last set of columns (`#rname` to `meanmapq`) may repeat for each chromosome or contig in the reference genome. + +!!! tip "QC Metrics for Phylogenetic Analysis" + These QC metrics provide valuable insights into the quality and coverage of your sequencing data relative to the reference genome. Monitoring these metrics can help identify samples with low coverage, poor alignment, or potential issues that may affect downstream analyses, and we recommend examining them before proceeding with phylogenetic analysis if performing Snippy_Variants and Snippy_Tree separately. + + These per-sample QC metrics can also be combined into a single file (`snippy_combined_qc_metrics`) in downstream workflows, such as `snippy_tree`, providing an overview of QC metrics across all samples. + +!!! techdetails "Snippy Variants Technical Details" + | | Links | + | --- | --- | + | Task | [task_snippy_variants.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_variants.wdl)
[task_snippy_gene_query.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/gene_typing/variant_detection/task_snippy_gene_query.wdl) | + | Software Source Code | [Snippy on GitHub](https://github.com/tseemann/snippy) | + | Software Documentation | [Snippy on GitHub](https://github.com/tseemann/snippy) | ### Outputs @@ -92,6 +118,7 @@ These per-sample QC metrics can be combined into a single file (`snippy_combined | snippy_variants_outdir_tarball | File | A compressed file containing the whole directory of snippy output files. This is used when running Snippy_Tree | | snippy_variants_percent_reads_aligned | Float | Percentage of reads aligned to the reference genome | | snippy_variants_percent_ref_coverage| Float | Proportion of the reference genome covered by reads with a depth greater than or equal to the `min_coverage` threshold (default is 10). | +| snippy_variants_qc_metrics | File | TSV file containing quality control metrics for the sample | | snippy_variants_query | String | Query strings specified by the user when running the workflow | | snippy_variants_query_check | String | Verification that query strings are found in the reference genome | | snippy_variants_results | File | CSV file detailing results for all mutations identified in the query sequence relative to the reference | @@ -99,4 +126,4 @@ These per-sample QC metrics can be combined into a single file (`snippy_combined | snippy_variants_version | String | Version of Snippy used | | snippy_variants_wf_version | String | Version of Snippy_Variants used | -
\ No newline at end of file +
diff --git a/docs/workflows/standalone/ncbi_scrub.md b/docs/workflows/standalone/ncbi_scrub.md index 0ae60c49b..e82b3feea 100644 --- a/docs/workflows/standalone/ncbi_scrub.md +++ b/docs/workflows/standalone/ncbi_scrub.md @@ -66,7 +66,7 @@ This workflow is composed of two tasks, one to dehost the input reads and anothe | | Links | | --- | --- | - | Task | [task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/task_kraken2.wdl) | + | Task | [task_kraken2.wdl](https://github.com/theiagen/public_health_bioinformatics/blob/main/tasks/taxon_id/contamination/task_kraken2.wdl) | | Software Source Code | [Kraken2 on GitHub](https://github.com/DerrickWood/kraken2/) | | Software Documentation | | | Original Publication(s) | [Improved metagenomic analysis with Kraken 2](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1891-0) |