diff --git a/workflows/microbiome/samestr-workflow/.dockstore.yml b/workflows/microbiome/samestr-workflow/.dockstore.yml new file mode 100644 index 0000000000..6afbc0fd6e --- /dev/null +++ b/workflows/microbiome/samestr-workflow/.dockstore.yml @@ -0,0 +1,11 @@ +version: 1.2 +workflows: +- name: main + subclass: Galaxy + publish: true + primaryDescriptorPath: /samestrgal.ga + testParameterFiles: + - /samestrgal-tests.yml + authors: + - name: 'Xenia Morera Martínez' + orcid: 0009-0000-2380-8385 diff --git a/workflows/microbiome/samestr-workflow/CHANGELOG.md b/workflows/microbiome/samestr-workflow/CHANGELOG.md new file mode 100644 index 0000000000..e558ca3732 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## [0.1] - 2026-06-18 + +First release. diff --git a/workflows/microbiome/samestr-workflow/README.md b/workflows/microbiome/samestr-workflow/README.md new file mode 100644 index 0000000000..3a4415f236 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/README.md @@ -0,0 +1,16 @@ +# SamestrGal for shared-strain detection in metagenomes + +This workflow processes paired-end shotgun metagenomic sequencing reads from multiple samples. It performs the following steps: + +- **Preprocessing**: Quality trimming and host read removal using KneadData +- **Taxonomic profiling and marker-based alignment**: MetaPhlAn4 or mOTUs for taxonomic classification and marker based alignment +- **Strain detection**: SameStr tools identify strains across samples and compute pairwise strain comparisons using Maximum Variant Profile Similarity (MVS) scores. + +## Inputs + +- **Raw Reads**: A collection of paired-end FASTQ files from one or more samples to compare +- **Run MetaPhlAn**: Boolean parameter (default: true) that enables MetaPhlAn-based strain detection + +## Outputs + + - **MetaPhlAn results** (if enabled): SNV profile summary statistics, taxon counts, strain events, and co-occurrence tables diff --git a/workflows/microbiome/samestr-workflow/samestrgal-tests.yml b/workflows/microbiome/samestr-workflow/samestrgal-tests.yml new file mode 100644 index 0000000000..2091391057 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/samestrgal-tests.yml @@ -0,0 +1,105 @@ +- doc: Test outline for samestrgal + job: + Raw Reads: + class: Collection + collection_type: list:paired + elements: + - class: Collection + collection_type: paired + identifier: 28C + elements: + - class: File + identifier: forward + location: https://zenodo.org/records/20745835/files/28C_R1.fastq.gz + filetype: fastqsanger.gz + - class: File + identifier: reverse + location: https://zenodo.org/records/20745835/files/28C_R2.fastq.gz + filetype: fastqsanger.gz + - class: Collection + collection_type: paired + identifier: 28B + elements: + - class: File + identifier: forward + location: https://zenodo.org/records/20745835/files/28B_R1.fastq.gz + filetype: fastqsanger.gz + - class: File + identifier: reverse + location: https://zenodo.org/records/20745835/files/28B_R2.fastq.gz + filetype: fastqsanger.gz + - class: Collection + collection_type: paired + identifier: 28A + elements: + - class: File + identifier: forward + location: https://zenodo.org/records/20745835/files/28A_R1.fastq.gz + filetype: fastqsanger.gz + - class: File + identifier: reverse + location: https://zenodo.org/records/20745835/files/28A_R2.fastq.gz + filetype: fastqsanger.gz + Select Host reference genome: hg19 + Select Sequencer for Trimmomatic: NexteraPE + Select MetaPhlAn Database: mpa_vJan25_CHOCOPhlAnSGB_202503-11062025 + Select SameStr database: mpa_vJan25_CHOCOPhlAnSGB_202503-11062025 + Run MetaPhlAn: true + "Percent identity": 0.9 + "Minimum alignment length": 40 + "Minimum base quality": 20 + "Minimum alignment quality": 0 + "Minimum vertical coverage": 3 + "SameStr Filter: Minimum samples per clade": 2 + "SameStr Filter: Marker truncation length": 50 + "SameStr Filter: Nucleotides minimum variant coverage": 2 + "SameStr Filter: Minimum variant coverage fraction": 0.05 + "SameStr Filter: Minimum position coverage": 1 + "SameStr Filter: Position coverage standard deviation cutoff": 3.0 + "SameStr Filter: Minimum horizontal coverage": 5000 + "SameStr Filter: Minimum sample coverage per position": 2 + "SameStr Summarize: Minimum overlap for comparison": 5000 + "SameStr Summarize: Minimum similarity for shared strains": 0.999 + outputs: + "stats file": + element_tests: + t__SGB15299: + asserts: + - that: has_text + text: "28B" + t__SGB4285: + asserts: + - that: has_text + text: "28B" + t__SGB6362: + asserts: + - that: has_text + text: "28B" + "taxon counts": + asserts: + - that: has_text + text: "28A" + - that: has_text + text: "28B" + - that: has_text + text: "28C" + "strain events": + asserts: + - that: has_text + text: "t__SGB15299" + - that: has_text + text: "t__SGB4285" + - that: has_text + text: "t__SGB6362" + - that: has_text + text: "28B" + - that: has_text + text: "28C" + "cooccurrences": + asserts: + - that: has_text + text: "28A" + - that: has_text + text: "28B" + - that: has_text + text: "28C" diff --git a/workflows/microbiome/samestr-workflow/samestrgal.ga b/workflows/microbiome/samestr-workflow/samestrgal.ga new file mode 100644 index 0000000000..7b3a621dc4 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/samestrgal.ga @@ -0,0 +1,1620 @@ +{ + "a_galaxy_workflow": "true", + "annotation": "This workflow performs strain-level metagenomic analysis of shotgun sequencing data, enabling taxonomic profiling, strain identification, and shared strain detection across samples.", + "comments": [ + { + "child_steps": [ + 0 + ], + "color": "red", + "data": { + "title": "Input Samples" + }, + "id": 0, + "position": [ + 0, + 372.55833722393095 + ], + "size": [ + 240, + 121.2 + ], + "type": "frame" + }, + { + "child_steps": [ + 36 + ], + "color": "green", + "data": { + "title": "SameStr Output" + }, + "id": 5, + "position": [ + 3608.2, + 365.1689085188362 + ], + "size": [ + 322.8, + 487.8 + ], + "type": "frame" + }, + { + "child_steps": [ + 34 + ], + "color": "green", + "data": { + "title": "SameStr Output" + }, + "id": 4, + "position": [ + 3061.4, + 718.9689085188362 + ], + "size": [ + 279.6, + 246.8 + ], + "type": "frame" + }, + { + "child_steps": [ + 23 + ], + "color": "orange", + "data": { + "title": "Taxonomic Profiling and Marker-Based AlignmentFrame" + }, + "id": 3, + "position": [ + 919.2, + 419.8689085188362 + ], + "size": [ + 283.6, + 397 + ], + "type": "frame" + }, + { + "color": "none", + "data": { + "size": 2, + "text": "
" + }, + "id": 2, + "position": [ + 260.4, + 953.7954552872891 + ], + "size": [ + 0, + 0 + ], + "type": "text" + }, + { + "child_steps": [ + 21, + 22 + ], + "color": "yellow", + "data": { + "title": "Preprocessing SClade and marker setting steps" + }, + "id": 1, + "position": [ + 317.7, + 351.69545528728906 + ], + "size": [ + 528, + 468 + ], + "type": "frame" + } + ], + "creator": [ + { + "class": "Person", + "familyName": "Morera Martínez", + "name": "Xenia", + "identifier": "https://orcid.org/0009-0000-2380-8385" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "SamestrGal", + "readme": "# SamestrGal for shared-strain detection in metagenomes\n\nThis workflow processes paired-end shotgun metagenomic sequencing reads from multiple samples. It performs the following steps:\n\n- **Preprocessing**: Quality trimming and host read removal using KneadData\n- **Taxonomic profiling and marker-based alignment**: MetaPhlAn4 or mOTUs for taxonomic classification and marker based alignment\n- **Strain detection**: SameStr tools identify strains across samples and compute pairwise strain comparisons using Maximum Variant Profile Similarity (MVS) scores.\n\n## Inputs\n\n- **Raw Reads**: A collection of paired-end FASTQ files from one or more samples to compare\n- **Run MetaPhlAn**: Boolean parameter (default: true) that enables MetaPhlAn-based strain detection\n- **Run mOTUs**: Boolean parameter (default: false) that enables mOTUs-based strain detection\n\n## Outputs\n\n - **MetaPhlAn results** (if enabled): SNV profile summary statistics, taxon counts, strain events, and co-occurrence tables\n - **mOTUs results** (if enabled): SNV profile summary statistics, taxon counts, strain events, and co-occurrence tables\n", + "report": { + "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" + }, + "steps": { + "0": { + "annotation": "Raw paired-end sequencing reads in FASTQ format. ", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Raw paired-end sequencing reads in FASTQ format. ", + "name": "Raw Reads" + } + ], + "label": "Raw Reads", + "name": "Input dataset collection", + "outputs": [], + "position": { + "left": 19.978197146864574, + "top": 412.6007714702182 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null, \"collection_type\": \"list:paired\", \"fields\": null, \"column_definitions\": null}", + "tool_version": null, + "type": "data_collection_input", + "uuid": "b2a5ebe6-be68-42ed-bd76-6b15b1bf9db9", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "Select the host reference genome for removing contaminating reads. ", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "Select the host reference genome for removing contaminating reads. ", + "name": "Select Host reference genome" + } + ], + "label": "Select Host reference genome", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 21.089008554360447, + "top": 585.0016133482251 + }, + "tool_id": null, + "tool_state": "{\"default\": \"hg19\", \"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "53e7f1d9-a567-41de-af46-45aa3c807e54", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "Run MetaPhlAn ", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "Run MetaPhlAn ", + "name": "Run MetaPhlAn" + } + ], + "label": "Run MetaPhlAn", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 673.1477845186159, + "top": 102.91109784322902 + }, + "tool_id": null, + "tool_state": "{\"default\": true, \"validators\": [], \"parameter_type\": \"boolean\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "4b85acb6-5d5e-4703-bf84-421a2de2b209", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "Select the sequencer for Trimmomatic", + "content_id": null, + "errors": null, + "id": 3, + "input_connections": {}, + "inputs": [ + { + "description": "Select the sequencer for Trimmomatic", + "name": "Select Sequencer for Trimmomatic" + } + ], + "label": "Select Sequencer for Trimmomatic", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 21.258349362270508, + "top": 691.0345938640694 + }, + "tool_id": null, + "tool_state": "{\"default\": \"NexteraPE\", \"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "2b87cb9d-9f7d-40f3-ae19-a67834afbe27", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "Choose the MetaPhlAn database version", + "content_id": null, + "errors": null, + "id": 4, + "input_connections": {}, + "inputs": [ + { + "description": "Choose the MetaPhlAn database version", + "name": "Select MetaPhlAn Database" + } + ], + "label": "Select MetaPhlAn Database", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 672.2023205322555, + "top": 202.4333030061197 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "393f0af0-4748-4270-8342-8fdc28907c07", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "Select SameStr database. Only select databases that match the selected profiler", + "content_id": null, + "errors": null, + "id": 5, + "input_connections": {}, + "inputs": [ + { + "description": "Select SameStr database. Only select databases that match the selected profiler", + "name": "Select SameStr database" + } + ], + "label": "Select SameStr database", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1157.102350586718, + "top": 0 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "05f0a84c-c654-475a-b712-361a446a21de", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "Alignment Filtering: Minimum percent identity required to retain an alignment (default: 0,9)", + "content_id": null, + "errors": null, + "id": 6, + "input_connections": {}, + "inputs": [ + { + "description": "Alignment Filtering: Minimum percent identity required to retain an alignment (default: 0,9)", + "name": "Percent identity" + } + ], + "label": "Percent identity", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1412.9526594119561, + "top": 106.80560438229855 + }, + "tool_id": null, + "tool_state": "{\"default\": 0.9, \"validators\": [{\"min\": 0.0, \"max\": 1.0, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "9a86d4c4-3580-42aa-bd44-145106454577", + "when": null, + "workflow_outputs": [] + }, + "7": { + "annotation": "Alignment Filtering: Minimum alignment length, in base pairs, required to retain an alignment (default: 40)", + "content_id": null, + "errors": null, + "id": 7, + "input_connections": {}, + "inputs": [ + { + "description": "Alignment Filtering: Minimum alignment length, in base pairs, required to retain an alignment (default: 40)", + "name": "Minimum alignment length" + } + ], + "label": "Minimum alignment length", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1413.3523128783154, + "top": 199.8708753214608 + }, + "tool_id": null, + "tool_state": "{\"default\": 40, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "9ec544ab-7778-4890-bac1-757cf575401d", + "when": null, + "workflow_outputs": [] + }, + "8": { + "annotation": "Alignment Filtering: Minimum quality score required for a base call to be retained (default: 20)", + "content_id": null, + "errors": null, + "id": 8, + "input_connections": {}, + "inputs": [ + { + "description": "Alignment Filtering: Minimum quality score required for a base call to be retained (default: 20)", + "name": "Minimum base quality" + } + ], + "label": "Minimum base quality", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1417.1388429839783, + "top": 288.01004747237084 + }, + "tool_id": null, + "tool_state": "{\"default\": 20, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "1f74002d-fa4e-4e1c-b02e-c5afcdfd5124", + "when": null, + "workflow_outputs": [] + }, + "9": { + "annotation": "Alignment Filtering: Minimum mapping quality required to retain an alignment. Increasing this threshold can drastically reduce the number of considered variants (default: 0)", + "content_id": null, + "errors": null, + "id": 9, + "input_connections": {}, + "inputs": [ + { + "description": "Alignment Filtering: Minimum mapping quality required to retain an alignment. Increasing this threshold can drastically reduce the number of considered variants (default: 0)", + "name": "Minimum alignment quality" + } + ], + "label": "Minimum alignment quality", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1420.251740166907, + "top": 374.7308038290005 + }, + "tool_id": null, + "tool_state": "{\"default\": 0, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "9e36416a-fb90-4c1d-ae45-a0e1ba34a533", + "when": null, + "workflow_outputs": [] + }, + "10": { + "annotation": "Alignment Filtering: Minimum coverage depth required at a position for it to be considered covered (default: 3)", + "content_id": null, + "errors": null, + "id": 10, + "input_connections": {}, + "inputs": [ + { + "description": "Alignment Filtering: Minimum coverage depth required at a position for it to be considered covered (default: 3)", + "name": "Minimum vertical coverage" + } + ], + "label": "Minimum vertical coverage", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1421.8468771356904, + "top": 464.57820691441964 + }, + "tool_id": null, + "tool_state": "{\"default\": 3, \"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "8c9a04ba-9008-49b7-a241-b4c3f4a07d1b", + "when": null, + "workflow_outputs": [] + }, + "11": { + "annotation": "Clade and marker settings: Skip clades with fewer than this number of samples (default: 2)", + "content_id": null, + "errors": null, + "id": 11, + "input_connections": {}, + "inputs": [ + { + "description": "Clade and marker settings: Skip clades with fewer than this number of samples (default: 2)", + "name": "SameStr Filter: Minimum samples per clade" + } + ], + "label": "SameStr Filter: Minimum samples per clade", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2101.7240312991016, + "top": 934.7096615706103 + }, + "tool_id": null, + "tool_state": "{\"default\": 2, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "b282c3db-e809-40c3-8151-88408716514c", + "when": null, + "workflow_outputs": [] + }, + "12": { + "annotation": "Clade and marker settings: Number of nucleotides to trim from each end of a marker sequence. (default: 50)", + "content_id": null, + "errors": null, + "id": 12, + "input_connections": {}, + "inputs": [ + { + "description": "Clade and marker settings: Number of nucleotides to trim from each end of a marker sequence. (default: 50)", + "name": "SameStr Filter: Marker truncation length" + } + ], + "label": "SameStr Filter: Marker truncation length", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2101.136203363549, + "top": 1034.2339577054222 + }, + "tool_id": null, + "tool_state": "{\"default\": 50, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "6be8f7e7-8654-41ff-9f82-cda46c81ece5", + "when": null, + "workflow_outputs": [] + }, + "13": { + "annotation": "Sample Variant Filtering: Remove variants with nucleotide coverage below this threshold (default: 2)", + "content_id": null, + "errors": null, + "id": 13, + "input_connections": {}, + "inputs": [ + { + "description": "Sample Variant Filtering: Remove variants with nucleotide coverage below this threshold (default: 2)", + "name": "SameStr Filter: Nucleotides minimum variant coverage" + } + ], + "label": "SameStr Filter: Nucleotides minimum variant coverage", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2101.5766761438904, + "top": 1141.550259482889 + }, + "tool_id": null, + "tool_state": "{\"default\": 2, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "c39ae696-2388-4955-85ba-051129f0979b", + "when": null, + "workflow_outputs": [] + }, + "14": { + "annotation": "Sample Variant Filtering: Remove variants with coverage below this fraction (default: 0.05)", + "content_id": null, + "errors": null, + "id": 14, + "input_connections": {}, + "inputs": [ + { + "description": "Sample Variant Filtering: Remove variants with coverage below this fraction (default: 0.05)", + "name": "SameStr Filter: Minimum variant coverage fraction" + } + ], + "label": "SameStr Filter: Minimum variant coverage fraction", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2101.536212482662, + "top": 1250.7503814460079 + }, + "tool_id": null, + "tool_state": "{\"default\": 0.05, \"validators\": [{\"min\": 0.0, \"max\": 1.0, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "e8a74bf6-2167-437c-8fce-ffb868c1ed9f", + "when": null, + "workflow_outputs": [] + }, + "15": { + "annotation": "Sample Position Filtering: Remove positions with nucleotide coverage below this threshold (default: 1).", + "content_id": null, + "errors": null, + "id": 15, + "input_connections": {}, + "inputs": [ + { + "description": "Sample Position Filtering: Remove positions with nucleotide coverage below this threshold (default: 1).", + "name": "SameStr Filter: Minimum position coverage" + } + ], + "label": "SameStr Filter: Minimum position coverage", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2100.568205480666, + "top": 1354.9615276886677 + }, + "tool_id": null, + "tool_state": "{\"default\": 1, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "e74a0082-bb23-470e-8015-97b279b9f4da", + "when": null, + "workflow_outputs": [] + }, + "16": { + "annotation": "Sample Position Filtering: Remove positions with coverage outside mean \u00b1 this standard deviation (default: 3.0).", + "content_id": null, + "errors": null, + "id": 16, + "input_connections": {}, + "inputs": [ + { + "description": "Sample Position Filtering: Remove positions with coverage outside mean \u00b1 this standard deviation (default: 3.0).", + "name": "SameStr Filter: Position coverage standard deviation cutoff" + } + ], + "label": "SameStr Filter: Position coverage standard deviation cutoff", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2097.1611867284496, + "top": 1460.6660090245125 + }, + "tool_id": null, + "tool_state": "{\"default\": 3.0, \"validators\": [{\"min\": 0.0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "6a4ec733-f6a4-4e84-bed8-e87b5b958108", + "when": null, + "workflow_outputs": [] + }, + "17": { + "annotation": "Sample Filtering: Remove samples with horizontal coverage below this nucleotide count (default: 5000).", + "content_id": null, + "errors": null, + "id": 17, + "input_connections": {}, + "inputs": [ + { + "description": "Sample Filtering: Remove samples with horizontal coverage below this nucleotide count (default: 5000).", + "name": "SameStr Filter: Minimum horizontal coverage" + } + ], + "label": "SameStr Filter: Minimum horizontal coverage", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2094.8689633663025, + "top": 1558.1500715879326 + }, + "tool_id": null, + "tool_state": "{\"default\": 5000, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "b6444560-57f3-42f3-b9b7-a4e83aed9893", + "when": null, + "workflow_outputs": [] + }, + "18": { + "annotation": "Global Position Filtering: Remove positions covered by fewer than this number of samples (default: 2). Overrides fraction-based filtering.", + "content_id": null, + "errors": null, + "id": 18, + "input_connections": {}, + "inputs": [ + { + "description": "Global Position Filtering: Remove positions covered by fewer than this number of samples (default: 2). Overrides fraction-based filtering.", + "name": "SameStr Filter: Minimum sample coverage per position" + } + ], + "label": "SameStr Filter: Minimum sample coverage per position", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 2096.533892363287, + "top": 1669.6248754855912 + }, + "tool_id": null, + "tool_state": "{\"default\": 2, \"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "fa4861b2-8d9b-4f0b-bbd6-77923534c0d2", + "when": null, + "workflow_outputs": [] + }, + "19": { + "annotation": "Minimum number of positions that must be covered in both samples to consider their similarity reliable. Higher values are more stringent. (default: 5000).", + "content_id": null, + "errors": null, + "id": 19, + "input_connections": {}, + "inputs": [ + { + "description": "Minimum number of positions that must be covered in both samples to consider their similarity reliable. Higher values are more stringent. (default: 5000).", + "name": "SameStr Summarize: Minimum overlap for comparison" + } + ], + "label": "SameStr Summarize: Minimum overlap for comparison", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 3400.857412481063, + "top": 742.4188097862362 + }, + "tool_id": null, + "tool_state": "{\"default\": 5000, \"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "e9030e60-78ce-436b-8d9a-2937765c0975", + "when": null, + "workflow_outputs": [] + }, + "20": { + "annotation": "Samples with similarity scores above this threshold are considered the same strain. Higher values are more strict. (default: 0.999).", + "content_id": null, + "errors": null, + "id": 20, + "input_connections": {}, + "inputs": [ + { + "description": "Samples with similarity scores above this threshold are considered the same strain. Higher values are more strict. (default: 0.999).", + "name": "SameStr Summarize: Minimum similarity for shared strains" + } + ], + "label": "SameStr Summarize: Minimum similarity for shared strains", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 3400.971047985045, + "top": 849.8269782059348 + }, + "tool_id": null, + "tool_state": "{\"default\": 0.999, \"validators\": [{\"min\": 0.0, \"max\": 1.0, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "f51b0488-4062-46e1-b49b-acb1d1670a5a", + "when": null, + "workflow_outputs": [] + }, + "21": { + "annotation": "Quality trimming and host read removal. Boolean parameter 'Save all unmatched reads' must remain set to True. \n", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/kneaddata/kneaddata/0.12.1+galaxy1", + "errors": null, + "id": 21, + "input_connections": { + "alignment|alignment_tool|bowtie2_db": { + "id": 1, + "output_name": "output" + }, + "read_type|paired_collection": { + "id": 0, + "output_name": "output" + }, + "trimmomatic|trimmomatic_step|sequencer": { + "id": 3, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool KneadData", + "name": "read_type" + } + ], + "label": "Trimming and Host Removal", + "name": "KneadData", + "outputs": [ + { + "name": "paired_output", + "type": "input" + }, + { + "name": "unmatched_paired", + "type": "input" + }, + { + "name": "trimmed_paired", + "type": "input" + }, + { + "name": "unmatched_trimmed_paired", + "type": "input" + }, + { + "name": "log_file", + "type": "txt" + } + ], + "position": { + "left": 348.40905086852905, + "top": 387.02701114934655 + }, + "post_job_actions": { + "HideDatasetActiontrimmed_paired": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "trimmed_paired" + }, + "HideDatasetActionunmatched_trimmed_paired": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "unmatched_trimmed_paired" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/kneaddata/kneaddata/0.12.1+galaxy1", + "tool_shed_repository": { + "changeset_revision": "10f8abc1fbdf", + "name": "kneaddata", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"alignment\": {\"alignment_tool\": {\"tool_choice\": \"bowtie2\", \"__current_case__\": 0, \"bowtie2_db\": {\"__class__\": \"ConnectedValue\"}}, \"save_contaminants\": false}, \"fastqc\": {\"fastqc_report\": {\"select_fastqc\": \"no_fastqc\", \"__current_case__\": 1}, \"run_trim_repetitive\": false}, \"log_level\": \"INFO\", \"read_type\": {\"select_read_type\": \"paired\", \"__current_case__\": 1, \"save_unmatched\": true, \"paired_collection\": {\"__class__\": \"ConnectedValue\"}}, \"tandem\": {\"trf_step\": {\"trf_bool\": \"skip\", \"__current_case__\": 1}}, \"trimmomatic\": {\"trimmomatic_step\": {\"decide_trimmomatic\": \"run_trimmomatic\", \"__current_case__\": 0, \"sequencer\": {\"__class__\": \"ConnectedValue\"}}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.12.1+galaxy1", + "type": "tool", + "uuid": "9fe3494e-b20e-43fc-963c-818e81bc2d93", + "when": null, + "workflow_outputs": [] + }, + "22": { + "annotation": "Merge paired-end and orphaned reads from KneadData output", + "content_id": "__MERGE_COLLECTION__", + "errors": null, + "id": 22, + "input_connections": { + "inputs_0|input": { + "id": 21, + "output_name": "paired_output" + }, + "inputs_1|input": { + "id": 21, + "output_name": "unmatched_paired" + } + }, + "inputs": [], + "label": "Merge Collections", + "name": "Merge collections", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 613.7878702851508, + "top": 409.65006074396945 + }, + "post_job_actions": {}, + "tool_id": "__MERGE_COLLECTION__", + "tool_state": "{\"advanced\": {\"conflict\": {\"duplicate_options\": \"keep_first\", \"__current_case__\": 3}}, \"inputs\": [{\"__index__\": 0, \"input\": {\"__class__\": \"ConnectedValue\"}}, {\"__index__\": 1, \"input\": {\"__class__\": \"ConnectedValue\"}}], \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.0", + "type": "tool", + "uuid": "9d6634d3-7b42-4b27-86d7-51b712fe5da4", + "when": null, + "workflow_outputs": [] + }, + "23": { + "annotation": "Generate taxonomic profiles and marker gene alignments for SameStr", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/metaphlan/metaphlan/4.2.4+galaxy0", + "errors": null, + "id": 23, + "input_connections": { + "inputs|db|cached_db": { + "id": 4, + "output_name": "output" + }, + "inputs|in|raw_in|in": { + "id": 22, + "output_name": "output" + }, + "when": { + "id": 2, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool MetaPhlAn", + "name": "analysis" + } + ], + "label": null, + "name": "MetaPhlAn", + "outputs": [ + { + "name": "output_file", + "type": "tabular" + }, + { + "name": "mapout", + "type": "tabular" + }, + { + "name": "sam_output_file", + "type": "sam" + } + ], + "position": { + "left": 960.6441209683094, + "top": 475.98016953472796 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/metaphlan/metaphlan/4.2.4+galaxy0", + "tool_shed_repository": { + "changeset_revision": "56ff60ec416d", + "name": "metaphlan", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"analysis\": {\"analysis_type\": {\"t\": \"rel_ab\", \"__current_case__\": 0, \"tax_lev\": {\"tax_lev\": \"a\", \"__current_case__\": 0, \"split_levels\": false}}, \"min_alignment_len\": null, \"organism_profiling\": null, \"stat\": \"tavg_g\", \"stat_q\": \"0.2\", \"perc_nonzero\": \"0.33\", \"ignore_markers\": {\"__class__\": \"RuntimeValue\"}, \"avoid_disqm\": true}, \"inputs\": {\"in\": {\"selector\": \"raw\", \"__current_case__\": 0, \"raw_in\": {\"selector\": \"paired_collection\", \"__current_case__\": 2, \"in\": {\"__class__\": \"ConnectedValue\"}}, \"read_min_len\": \"70\", \"mapping\": {\"bt2_ps\": \"very-sensitive\", \"min_mapq_val\": \"5\"}}, \"db\": {\"db_selector\": \"cached\", \"__current_case__\": 0, \"cached_db\": {\"__class__\": \"ConnectedValue\"}, \"viral_analysis\": {\"profile_vsc\": \"\", \"__current_case__\": 1}}}, \"out\": {\"sample_id_key\": \"SampleID\", \"sample_id\": \"Metaphlan_Analysis\", \"use_group_representative\": false, \"CAMI_format_output\": false, \"skip_unclassified_estimation\": false, \"biom_format_output\": false, \"krona_output\": false}, \"subsample\": {\"selector\": \"no\", \"__current_case__\": 0}, \"test\": \"false\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "4.2.4+galaxy0", + "type": "tool", + "uuid": "d6238a32-2682-429c-af06-3ae34c0c6e52", + "when": "$(inputs.when)", + "workflow_outputs": [] + }, + "24": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "errors": null, + "id": 24, + "input_connections": { + "style_cond|type_cond|pick_from_0|value": { + "id": 23, + "output_name": "output_file" + } + }, + "inputs": [], + "label": null, + "name": "Pick parameter value", + "outputs": [ + { + "name": "data_param", + "type": "input" + } + ], + "position": { + "left": 1386.4080393714219, + "top": 671.0640639046684 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "tool_shed_repository": { + "changeset_revision": "b19e21af9c52", + "name": "pick_value", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"style_cond\": {\"pick_style\": \"first\", \"__current_case__\": 0, \"type_cond\": {\"param_type\": \"data\", \"__current_case__\": 4, \"pick_from\": [{\"__index__\": 0, \"value\": {\"__class__\": \"ConnectedValue\"}}]}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.2.0", + "type": "tool", + "uuid": "077318bf-6476-43d0-bbc0-9560950fbffb", + "when": null, + "workflow_outputs": [] + }, + "25": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "errors": null, + "id": 25, + "input_connections": { + "style_cond|type_cond|pick_from_0|value": { + "id": 23, + "output_name": "sam_output_file" + } + }, + "inputs": [], + "label": null, + "name": "Pick parameter value", + "outputs": [ + { + "name": "data_param", + "type": "input" + } + ], + "position": { + "left": 1376.7759745774144, + "top": 797.8706817417145 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "tool_shed_repository": { + "changeset_revision": "b19e21af9c52", + "name": "pick_value", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"style_cond\": {\"pick_style\": \"first\", \"__current_case__\": 0, \"type_cond\": {\"param_type\": \"data\", \"__current_case__\": 4, \"pick_from\": [{\"__index__\": 0, \"value\": {\"__class__\": \"ConnectedValue\"}}]}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.2.0", + "type": "tool", + "uuid": "d0ea0951-7d33-434f-999d-ed8e54186c1a", + "when": null, + "workflow_outputs": [] + }, + "26": { + "annotation": "Convert SAM to BAM format", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samtools_view/samtools_view/1.22+galaxy2", + "errors": null, + "id": 26, + "input_connections": { + "input": { + "id": 25, + "output_name": "data_param" + } + }, + "inputs": [], + "label": null, + "name": "Samtools view", + "outputs": [ + { + "name": "outputsam", + "type": "input" + } + ], + "position": { + "left": 1660.5467458734454, + "top": 910.4293983209503 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samtools_view/samtools_view/1.22+galaxy2", + "tool_shed_repository": { + "changeset_revision": "5cf9fcc93508", + "name": "samtools_view", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"addref_cond\": {\"addref_select\": \"no\", \"__current_case__\": 0}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"mode\": {\"outtype\": \"all_reads\", \"__current_case__\": 0, \"output_options\": {\"reads_report_type\": \"retained\", \"__current_case__\": 0, \"adv_output\": {\"readtags\": [], \"collapsecigar\": false}, \"output_format\": {\"oformat\": \"bam\", \"__current_case__\": 2}}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.22+galaxy2", + "type": "tool", + "uuid": "6558e684-0681-46e6-9b8c-009056062e27", + "when": null, + "workflow_outputs": [] + }, + "27": { + "annotation": "Convert BAM to SNV profiles for SameStr analysis", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_convert/1.2025.111+galaxy0", + "errors": null, + "id": 27, + "input_connections": { + "alignment": { + "id": 26, + "output_name": "outputsam" + }, + "alignment_param|min_aln_identity": { + "id": 6, + "output_name": "output" + }, + "alignment_param|min_aln_len": { + "id": 7, + "output_name": "output" + }, + "alignment_param|min_aln_qual": { + "id": 9, + "output_name": "output" + }, + "alignment_param|min_base_qual": { + "id": 8, + "output_name": "output" + }, + "alignment_param|min_vcov": { + "id": 10, + "output_name": "output" + }, + "database": { + "id": 5, + "output_name": "output" + }, + "profile": { + "id": 24, + "output_name": "data_param" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool SameStr Convert", + "name": "alignment_param" + }, + { + "description": "runtime parameter for tool SameStr Convert", + "name": "alignment_param" + }, + { + "description": "runtime parameter for tool SameStr Convert", + "name": "alignment_param" + }, + { + "description": "runtime parameter for tool SameStr Convert", + "name": "alignment_param" + }, + { + "description": "runtime parameter for tool SameStr Convert", + "name": "alignment_param" + } + ], + "label": null, + "name": "SameStr Convert", + "outputs": [ + { + "name": "npz_files", + "type": "input" + }, + { + "name": "stats_file", + "type": "tabular" + } + ], + "position": { + "left": 1700.0545954341565, + "top": 361.5827321424908 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_convert/1.2025.111+galaxy0", + "tool_shed_repository": { + "changeset_revision": "303e095c89c6", + "name": "samestr", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"alignment\": {\"__class__\": \"ConnectedValue\"}, \"alignment_param\": {\"min_aln_identity\": {\"__class__\": \"ConnectedValue\"}, \"min_aln_len\": {\"__class__\": \"ConnectedValue\"}, \"min_base_qual\": {\"__class__\": \"ConnectedValue\"}, \"min_aln_qual\": {\"__class__\": \"ConnectedValue\"}, \"min_vcov\": {\"__class__\": \"ConnectedValue\"}}, \"database\": {\"__class__\": \"ConnectedValue\"}, \"profile\": {\"__class__\": \"ConnectedValue\"}, \"sample_name\": null, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.2025.111+galaxy0", + "type": "tool", + "uuid": "6c6eb3a2-3334-4d74-831c-95389ced99c5", + "when": null, + "workflow_outputs": [] + }, + "28": { + "annotation": "Flatten collection to allow cross-sample SNV profile comparison. Note: this modifies element identifiers by adding an underscore, which makes naming afterwards unstable for SameStr", + "content_id": "__FLATTEN__", + "errors": null, + "id": 28, + "input_connections": { + "input": { + "id": 27, + "output_name": "npz_files" + } + }, + "inputs": [], + "label": null, + "name": "Flatten collection", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 1865.6452355710771, + "top": 752.2782175982525 + }, + "post_job_actions": {}, + "tool_id": "__FLATTEN__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"join_identifier\": \"_\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.0", + "type": "tool", + "uuid": "ef7779f0-2c31-48ac-b88b-e2bed04b24fa", + "when": null, + "workflow_outputs": [] + }, + "29": { + "annotation": "Apply rules", + "content_id": "__APPLY_RULES__", + "errors": null, + "id": 29, + "input_connections": { + "input": { + "id": 28, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Apply rules", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 2117.6438540968743, + "top": 758.0833639842949 + }, + "post_job_actions": {}, + "tool_id": "__APPLY_RULES__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"rules\": {\"mapping\": [{\"columns\": [1], \"type\": \"list_identifiers\"}], \"rules\": [{\"error\": null, \"type\": \"add_column_metadata\", \"value\": \"identifier0\", \"warn\": null}, {\"allow_unmatched\": false, \"error\": null, \"expression\": \"^[^_]+_(.*)$\", \"group_count\": null, \"replacement\": \"\\\\1\", \"target_column\": 0, \"type\": \"add_column_regex\", \"warn\": null}]}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "1171cd8a-b48f-42c9-bd21-338b048b7838", + "when": null, + "workflow_outputs": [] + }, + "30": { + "annotation": "Merge SNV profiles from multiple samples for cross-sample strain comparison", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_merge/1.2025.111+galaxy0", + "errors": null, + "id": 30, + "input_connections": { + "database": { + "id": 5, + "output_name": "output" + }, + "input_files": { + "id": 29, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "SameStr Merge", + "outputs": [ + { + "name": "npz_files", + "type": "input" + }, + { + "name": "sample_name", + "type": "input" + } + ], + "position": { + "left": 2027.5045374912547, + "top": 388.7737881729979 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_merge/1.2025.111+galaxy0", + "tool_shed_repository": { + "changeset_revision": "303e095c89c6", + "name": "samestr", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"clade\": null, \"database\": {\"__class__\": \"ConnectedValue\"}, \"input_files\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.2025.111+galaxy0", + "type": "tool", + "uuid": "28436645-e153-4724-a8fb-2f19a91385ef", + "when": null, + "workflow_outputs": [] + }, + "31": { + "annotation": "Filter SNV profiles to retain high confidence variants for strain analysis", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_filter/1.2025.111+galaxy0", + "errors": null, + "id": 31, + "input_connections": { + "clade_settings|clade_min_samples": { + "id": 11, + "output_name": "output" + }, + "clade_settings|marker_trunc_len": { + "id": 12, + "output_name": "output" + }, + "database": { + "id": 5, + "output_name": "output" + }, + "global_position_filtering|global_pos_min_n_vcov": { + "id": 18, + "output_name": "output" + }, + "input_names": { + "id": 30, + "output_name": "sample_name" + }, + "input_snvs": { + "id": 30, + "output_name": "npz_files" + }, + "sample_filtering|samples_min_n_hcov": { + "id": 17, + "output_name": "output" + }, + "sample_position_filtering|sample_pos_min_n_vcov": { + "id": 15, + "output_name": "output" + }, + "sample_position_filtering|sample_pos_min_sd_vcov": { + "id": 16, + "output_name": "output" + }, + "sample_variant_filtering|sample_var_min_f_vcov": { + "id": 14, + "output_name": "output" + }, + "sample_variant_filtering|sample_var_min_n_vcov": { + "id": 13, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool SameStr Filter", + "name": "clade_settings" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "clade_settings" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "global_position_filtering" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "sample_filtering" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "sample_filtering" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "sample_position_filtering" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "sample_position_filtering" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "sample_variant_filtering" + }, + { + "description": "runtime parameter for tool SameStr Filter", + "name": "sample_variant_filtering" + } + ], + "label": null, + "name": "SameStr Filter", + "outputs": [ + { + "name": "filtered_profile", + "type": "npz" + }, + { + "name": "sample_names", + "type": "tabular" + } + ], + "position": { + "left": 2431.63047499224, + "top": 363.3577918435363 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_filter/1.2025.111+galaxy0", + "tool_shed_repository": { + "changeset_revision": "303e095c89c6", + "name": "samestr", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"clade_settings\": {\"clade_min_samples\": {\"__class__\": \"ConnectedValue\"}, \"marker_selection\": {\"retain_or_drop\": \"\", \"__current_case__\": 0}, \"marker_trunc_len\": {\"__class__\": \"ConnectedValue\"}}, \"database\": {\"__class__\": \"ConnectedValue\"}, \"global_position_filtering\": {\"global_pos_min_n_vcov\": {\"__class__\": \"ConnectedValue\"}, \"global_pos_min_f_vcov\": \"0.0\"}, \"input_names\": {\"__class__\": \"ConnectedValue\"}, \"input_snvs\": {\"__class__\": \"ConnectedValue\"}, \"output_settings\": {\"keep_poly\": false, \"keep_mono\": false, \"delete_pos\": false}, \"sample_filtering\": {\"samples_select\": {\"__class__\": \"RuntimeValue\"}, \"samples_min_n_hcov\": {\"__class__\": \"ConnectedValue\"}, \"samples_min_f_hcov\": \"0.0\", \"samples_min_m_vcov\": \"0.0\"}, \"sample_position_filtering\": {\"sample_pos_min_n_vcov\": {\"__class__\": \"ConnectedValue\"}, \"sample_pos_min_sd_vcov\": {\"__class__\": \"ConnectedValue\"}}, \"sample_variant_filtering\": {\"sample_var_min_n_vcov\": {\"__class__\": \"ConnectedValue\"}, \"sample_var_min_f_vcov\": {\"__class__\": \"ConnectedValue\"}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.2025.111+galaxy0", + "type": "tool", + "uuid": "b7496f15-b103-4bee-af77-6bf64704b1d0", + "when": null, + "workflow_outputs": [] + }, + "32": { + "annotation": "empty datasets with insufficient coverage or no SNVs detected", + "content_id": "__FILTER_EMPTY_DATASETS__", + "errors": null, + "id": 32, + "input_connections": { + "input": { + "id": 31, + "output_name": "filtered_profile" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Filter empty datasets", + "name": "replacement" + } + ], + "label": null, + "name": "Filter empty datasets", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 2779.2610016371927, + "top": 378.54180130525464 + }, + "post_job_actions": {}, + "tool_id": "__FILTER_EMPTY_DATASETS__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"replacement\": {\"__class__\": \"RuntimeValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "bd809949-d68f-4a19-a66f-2cf75a446425", + "when": null, + "workflow_outputs": [] + }, + "33": { + "annotation": "empty datasets with insufficient coverage or no SNVs detected", + "content_id": "__FILTER_EMPTY_DATASETS__", + "errors": null, + "id": 33, + "input_connections": { + "input": { + "id": 31, + "output_name": "sample_names" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Filter empty datasets", + "name": "replacement" + } + ], + "label": null, + "name": "Filter empty datasets", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 2781.4707907181896, + "top": 578.5154965849554 + }, + "post_job_actions": {}, + "tool_id": "__FILTER_EMPTY_DATASETS__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"replacement\": {\"__class__\": \"RuntimeValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "4ba5aea1-0e93-4d6f-ac58-5d7a8b0baab8", + "when": null, + "workflow_outputs": [] + }, + "34": { + "annotation": "Generate summary statistics of SNV profiles per sample", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_stats/1.2025.111+galaxy0", + "errors": null, + "id": 34, + "input_connections": { + "database": { + "id": 5, + "output_name": "output" + }, + "input_names": { + "id": 33, + "output_name": "output" + }, + "input_snvs": { + "id": 32, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "SameStr Stats", + "outputs": [ + { + "name": "stats_file", + "type": "tabular" + } + ], + "position": { + "left": 3093.5459375849655, + "top": 771.7928415136683 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_stats/1.2025.111+galaxy0", + "tool_shed_repository": { + "changeset_revision": "303e095c89c6", + "name": "samestr", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"database\": {\"__class__\": \"ConnectedValue\"}, \"dominant_variants\": false, \"input_names\": {\"__class__\": \"ConnectedValue\"}, \"input_snvs\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.2025.111+galaxy0", + "type": "tool", + "uuid": "c540753e-1676-458e-81eb-a870fa252b5b", + "when": null, + "workflow_outputs": [ + { + "label": "stats file", + "output_name": "stats_file", + "uuid": "677751a2-4e20-482e-a6d3-331c193c424f" + } + ] + }, + "35": { + "annotation": "Compare SNV profiles across samples to identify shared strains", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_compare/1.2025.111+galaxy0", + "errors": null, + "id": 35, + "input_connections": { + "database": { + "id": 5, + "output_name": "output" + }, + "input_names": { + "id": 33, + "output_name": "output" + }, + "input_snvs": { + "id": 32, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "SameStr Compare", + "outputs": [ + { + "name": "overlap_file", + "type": "tabular" + }, + { + "name": "close_file", + "type": "tabular" + }, + { + "name": "fraction_file", + "type": "tabular" + } + ], + "position": { + "left": 3183.9285837002303, + "top": 355.3042161418655 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_compare/1.2025.111+galaxy0", + "tool_shed_repository": { + "changeset_revision": "303e095c89c6", + "name": "samestr", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"database\": {\"__class__\": \"ConnectedValue\"}, \"input_names\": {\"__class__\": \"ConnectedValue\"}, \"input_snvs\": {\"__class__\": \"ConnectedValue\"}, \"variant_comparison_settings\": {\"minority_dominant\": \"\", \"dominant_variants_msa\": false}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.2025.111+galaxy0", + "type": "tool", + "uuid": "aa5695b6-ec87-4a3c-865a-c0f4e7e2d813", + "when": null, + "workflow_outputs": [] + }, + "36": { + "annotation": "Summarize strain sharing results across all sample pairs", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_summarize/1.2025.111+galaxy0", + "errors": null, + "id": 36, + "input_connections": { + "arguments|aln_pair_min_overlap": { + "id": 19, + "output_name": "output" + }, + "arguments|aln_pair_min_similarity": { + "id": 20, + "output_name": "output" + }, + "database": { + "id": 5, + "output_name": "output" + }, + "overlaps": { + "id": 35, + "output_name": "overlap_file" + }, + "similarities": { + "id": 35, + "output_name": "fraction_file" + }, + "tax_profiles": { + "id": 23, + "output_name": "output_file" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool SameStr Summarize", + "name": "arguments" + }, + { + "description": "runtime parameter for tool SameStr Summarize", + "name": "arguments" + } + ], + "label": null, + "name": "SameStr Summarize", + "outputs": [ + { + "name": "cooccurrences", + "type": "tabular" + }, + { + "name": "strain_events", + "type": "tabular" + }, + { + "name": "taxon_counts", + "type": "tabular" + } + ], + "position": { + "left": 3659.090890352673, + "top": 399.3186070278562 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/samestr/samestr_summarize/1.2025.111+galaxy0", + "tool_shed_repository": { + "changeset_revision": "303e095c89c6", + "name": "samestr", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"arguments\": {\"aln_pair_min_overlap\": {\"__class__\": \"ConnectedValue\"}, \"aln_pair_min_similarity\": {\"__class__\": \"ConnectedValue\"}}, \"database\": {\"__class__\": \"ConnectedValue\"}, \"overlaps\": {\"__class__\": \"ConnectedValue\"}, \"similarities\": {\"__class__\": \"ConnectedValue\"}, \"tax_profiles\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.2025.111+galaxy0", + "type": "tool", + "uuid": "78947654-d993-42c5-86b9-e078df265523", + "when": null, + "workflow_outputs": [ + { + "label": "cooccurrences", + "output_name": "cooccurrences", + "uuid": "c85d67a8-ade1-4330-8339-224e6b70541c" + }, + { + "label": "strain events", + "output_name": "strain_events", + "uuid": "1ce03cd6-d170-49c1-a3f9-2700ea61fc63" + }, + { + "label": "taxon counts", + "output_name": "taxon_counts", + "uuid": "e6a7aa1e-8eb6-410a-ae2d-f4a69883d891" + } + ] + } + }, + "tags": [ + "Metagenomics", + "microbiome", + "shared-strains" + ], + "uuid": "cd0fb833-7f5e-4e2c-9355-5dd3e50ab427", + "version": 127 +} \ No newline at end of file