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..bbeca96529 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/README.md @@ -0,0 +1,18 @@ +# 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 +- **Select MetaPhlAn Database**: Optional. Selecting a database runs MetaPhlAn as the taxonomic profiler and marker-based aligner. +- **Select mOTUs Database**: Optional. Selecting a database runs mOTUs as the taxonomic profiler and marker-based aligner. +- At least one of the two databases must be selected, or the workflow will fail. If both are selected, both tools run, but SameStr uses the MetaPhlAn output. + +## Outputs + + - **SameStr results**: SNV profile summary statistics, taxon counts, strain events, and co-occurrence tables, generated from MetaPhlAn output if a MetaPhlAn database was selected, otherwise from mOTUs output. \ No newline at end of file diff --git a/workflows/microbiome/samestr-workflow/samestrgal-tests.yml b/workflows/microbiome/samestr-workflow/samestrgal-tests.yml new file mode 100644 index 0000000000..09d7d91057 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/samestrgal-tests.yml @@ -0,0 +1,104 @@ +- 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 + "Preprocessing: Select Host reference genome": hg19 + "Preprocessing: Select Sequencer for Trimmomatic": NexteraPE + Select MetaPhlAn Database: mpa_vJan25_CHOCOPhlAnSGB_202503-11062025 + Select SameStr database: mpa_vJan25_CHOCOPhlAnSGB_202503-11062025 + "SameStr Convert: Percent identity": 0.9 + "SameStr Convert: Minimum alignment length": 40 + "SameStr Convert: Minimum base quality": 20 + "SameStr Convert: Minimum alignment quality": 0 + "SameStr Convert: 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" \ No newline at end of file diff --git a/workflows/microbiome/samestr-workflow/samestrgal.ga b/workflows/microbiome/samestr-workflow/samestrgal.ga new file mode 100644 index 0000000000..92c91b5009 --- /dev/null +++ b/workflows/microbiome/samestr-workflow/samestrgal.ga @@ -0,0 +1,1812 @@ +{ + "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": [ + 40 + ], + "color": "green", + "data": { + "title": "SameStr Output" + }, + "id": 4, + "position": [ + 3606.2, + 365.1689085188362 + ], + "size": [ + 322.8, + 487.8 + ], + "type": "frame" + }, + { + "child_steps": [ + 38 + ], + "color": "green", + "data": { + "title": "SameStr Output" + }, + "id": 3, + "position": [ + 3059.4, + 718.9689085188362 + ], + "size": [ + 279.6, + 246.8 + ], + "type": "frame" + }, + { + "child_steps": [ + 26, + 27 + ], + "color": "orange", + "data": { + "title": "Taxonomic profiling with MetaPhlAn or mOTUs" + }, + "id": 2, + "position": [ + 985.4, + 460.4 + ], + "size": [ + 271, + 724 + ], + "type": "frame" + }, + { + "child_steps": [ + 21, + 24 + ], + "color": "yellow", + "data": { + "title": "Preprocessing Clade and marker setting steps" + }, + "id": 1, + "position": [ + 315.7, + 351.69545528728906 + ], + "size": [ + 528, + 468 + ], + "type": "frame" + }, + { + "child_steps": [ + 0 + ], + "color": "red", + "data": { + "title": "Input Samples" + }, + "id": 0, + "position": [ + 0, + 230.6 + ], + "size": [ + 240, + 121.2 + ], + "type": "frame" + } + ], + "creator": [ + { + "class": "Person", + "familyName": "Morera Martinez", + "identifier": "https://orcid.org/0009-0000-2380-8385", + "name": "Xenia" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "SamestrGal Workflow", + "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- **Select MetaPhlAn Database**: Optional. Selecting a database runs MetaPhlAn as the taxonomic profiler and marker-based aligner.\n- **Select mOTUs Database**: Optional. Selecting a database runs mOTUs as the taxonomic profiler and marker-based aligner.\n- At least one of the two databases must be selected, or the workflow will fail. If both are selected, both tools run, but SameStr uses the MetaPhlAn output.\n\n## Outputs\n\n - **SameStr results**: SNV profile summary statistics, taxon counts, strain events, and co-occurrence tables, generated from MetaPhlAn output if a MetaPhlAn database was selected, otherwise from mOTUs output.", + "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": 270.57573502753723 + }, + "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": "39fd6bba-6675-47c1-9b8b-05291914aae4", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "Select the sequencer for Trimmomatic", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "Select the sequencer for Trimmomatic", + "name": "Preprocessing: Select Sequencer for Trimmomatic" + } + ], + "label": "Preprocessing: Select Sequencer for Trimmomatic", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 19.2666015625, + "top": 377.0333251953125 + }, + "tool_id": null, + "tool_state": "{\"default\": \"NexteraPE\", \"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "4b1ef384-d46b-4427-ab13-ab6a1628f55c", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "Select the host reference genome for removing contaminating reads. ", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "Select the host reference genome for removing contaminating reads. ", + "name": "Preprocessing: Select Host reference genome" + } + ], + "label": "Preprocessing: Select Host reference genome", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 19.0999755859375, + "top": 485 + }, + "tool_id": null, + "tool_state": "{\"default\": \"hg19\", \"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "e710b4b9-599b-4078-a281-4de4893899b7", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "Choose a mOTUs reference database to run mOTUs as the taxonomic profiler and marker-based aligner. At least one of the MetaPhlAn or mOTUs databases must be selected for the workflow to run correctly.", + "content_id": null, + "errors": null, + "id": 3, + "input_connections": {}, + "inputs": [ + { + "description": "Choose a mOTUs reference database to run mOTUs as the taxonomic profiler and marker-based aligner. At least one of the MetaPhlAn or mOTUs databases must be selected for the workflow to run correctly.", + "name": "Select mOTUs Database" + } + ], + "label": "Select mOTUs Database", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 556.7136622328641, + "top": 190.2787304199276 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": true}", + "tool_version": null, + "type": "parameter_input", + "uuid": "8a83d3ba-6eb2-495e-8a67-580b3effd76b", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "Choose a MetaPhlAn reference database to run MetaPhlAn as the taxonomic profiler and marker-based aligner. At least one of the MetaPhlAn or mOTUs databases must be selected for the workflow to run correctly. ", + "content_id": null, + "errors": null, + "id": 4, + "input_connections": {}, + "inputs": [ + { + "description": "Choose a MetaPhlAn reference database to run MetaPhlAn as the taxonomic profiler and marker-based aligner. At least one of the MetaPhlAn or mOTUs databases must be selected for the workflow to run correctly. ", + "name": "Select MetaPhlAn Database" + } + ], + "label": "Select MetaPhlAn Database", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 641.838028196017, + "top": 36.77125862363563 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": true}", + "tool_version": null, + "type": "parameter_input", + "uuid": "e8fce92c-f6d3-4efe-9352-7b0f3634c3e2", + "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": 1155.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": "07a38490-ae59-4c68-b5fd-0317d6b9d5df", + "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": "SameStr Convert: Percent identity" + } + ], + "label": "SameStr Convert: Percent identity", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1410.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": "174a9e55-eb2e-4335-af8b-10f146d2c4dd", + "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": "SameStr Convert: Minimum alignment length" + } + ], + "label": "SameStr Convert: Minimum alignment length", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1411.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": "d7d482ff-f15a-4b8a-9095-930905ccbe7d", + "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": "SameStr Convert: Minimum base quality" + } + ], + "label": "SameStr Convert: Minimum base quality", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1415.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": "6716c22b-cac9-4602-9f6f-c2b8416b93fd", + "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": "SameStr Convert: Minimum alignment quality" + } + ], + "label": "SameStr Convert: Minimum alignment quality", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1418.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": "b1c5f55e-340c-4f92-b78d-abc4cfb0d8fa", + "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": "SameStr Convert: Minimum vertical coverage" + } + ], + "label": "SameStr Convert: Minimum vertical coverage", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1419.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": "2c75e52f-5630-488b-b056-307cceeb5d0d", + "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": 2099.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": "34742a46-d45e-465f-af6e-4bed5a6ec64b", + "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": 2099.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": "6e11fc4b-cc98-480d-b8a9-a5a183aa57c7", + "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": 2099.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": "9e0c17c5-8fa6-4c16-9c37-0f4e5ae102e7", + "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": 2099.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": "20af25a7-c6e1-49f4-bf75-c5931a2da51b", + "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": 2098.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": "c0e15a95-179c-4d3a-a0da-c13f02615157", + "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": 2095.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": "d489c726-08d9-4753-b29b-5489eed441d6", + "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": 2092.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": "7f455dfc-af40-41bd-add9-fe66feeaf418", + "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": 2094.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": "20db6106-98d7-451b-b745-6b2f3aebccd5", + "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": 3398.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": "58401164-42fa-4c98-8d43-5afe7b99b1a2", + "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": 3398.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": "9a35e4b6-e0d9-4da2-9a08-f8aa4ef15278", + "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": 2, + "output_name": "output" + }, + "read_type|paired_collection": { + "id": 0, + "output_name": "output" + }, + "trimmomatic|trimmomatic_step|sequencer": { + "id": 1, + "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": 346.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": "e9a20fa2-cfa5-44a5-9815-cdb640163c52", + "when": null, + "workflow_outputs": [] + }, + "22": { + "annotation": "Converts mOTUs database selection into a boolean to control whether mOTUs runs", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0", + "errors": null, + "id": 22, + "input_connections": { + "input_param_type|input_param": { + "id": 3, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Map parameter value", + "name": "input_param_type" + } + ], + "label": null, + "name": "Map parameter value", + "outputs": [ + { + "name": "output_param_boolean", + "type": "expression.json" + } + ], + "position": { + "left": 864.1763488000282, + "top": 227.5921632557485 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0", + "tool_shed_repository": { + "changeset_revision": "5ac8a4bf7a8d", + "name": "map_param_value", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input_param_type\": {\"type\": \"text\", \"__current_case__\": 0, \"input_param\": {\"__class__\": \"ConnectedValue\"}, \"mappings\": []}, \"output_param_type\": \"boolean\", \"unmapped\": {\"on_unmapped\": \"input\", \"__current_case__\": 0}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.2.0", + "type": "tool", + "uuid": "058f5e37-1801-4c4b-a91b-cbc113874035", + "when": null, + "workflow_outputs": [] + }, + "23": { + "annotation": "Converts MetaPhlAn database selection into a boolean to control whether MetaPhlAn runs", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0", + "errors": null, + "id": 23, + "input_connections": { + "input_param_type|input_param": { + "id": 4, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Map parameter value", + "name": "input_param_type" + } + ], + "label": null, + "name": "Map parameter value", + "outputs": [ + { + "name": "output_param_boolean", + "type": "expression.json" + } + ], + "position": { + "left": 923.8778413373417, + "top": 57.44290952440522 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0", + "tool_shed_repository": { + "changeset_revision": "5ac8a4bf7a8d", + "name": "map_param_value", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input_param_type\": {\"type\": \"text\", \"__current_case__\": 0, \"input_param\": {\"__class__\": \"ConnectedValue\"}, \"mappings\": []}, \"output_param_type\": \"boolean\", \"unmapped\": {\"on_unmapped\": \"input\", \"__current_case__\": 0}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.2.0", + "type": "tool", + "uuid": "9e7d973c-1ab1-4ae3-8b38-e11afaae3577", + "when": null, + "workflow_outputs": [] + }, + "24": { + "annotation": "Concatenate paired reads and orphaned ", + "content_id": "cat1", + "errors": null, + "id": 24, + "input_connections": { + "input1": { + "id": 21, + "output_name": "paired_output" + }, + "queries_0|input2": { + "id": 21, + "output_name": "unmatched_paired" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Concatenate multiple datasets or collections", + "name": "input1" + } + ], + "label": null, + "name": "Concatenate multiple datasets or collections", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 610.3918103661382, + "top": 421.3927361466051 + }, + "post_job_actions": {}, + "tool_id": "cat1", + "tool_state": "{\"input1\": {\"__class__\": \"RuntimeValue\"}, \"queries\": [{\"__index__\": 0, \"input2\": {\"__class__\": \"RuntimeValue\"}}], \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.0", + "type": "tool", + "uuid": "7388896e-63f9-41c0-a51c-1e5cacc14e45", + "when": null, + "workflow_outputs": [] + }, + "25": { + "annotation": "Unzip collection", + "content_id": "__UNZIP_COLLECTION__", + "errors": null, + "id": 25, + "input_connections": { + "input": { + "id": 24, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": "Unzip collection", + "name": "Unzip collection", + "outputs": [ + { + "name": "forward", + "type": "input" + }, + { + "name": "reverse", + "type": "input" + } + ], + "position": { + "left": 668.6539607403265, + "top": 902.2190289273902 + }, + "post_job_actions": { + "HideDatasetActionforward": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "forward" + }, + "HideDatasetActionreverse": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "reverse" + } + }, + "tool_id": "__UNZIP_COLLECTION__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.0", + "type": "tool", + "uuid": "964db59a-3a07-409c-a015-fe33804e3d58", + "when": null, + "workflow_outputs": [] + }, + "26": { + "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": 26, + "input_connections": { + "inputs|db|cached_db": { + "id": 4, + "output_name": "output" + }, + "inputs|in|raw_in|in": { + "id": 24, + "output_name": "out_file1" + }, + "when": { + "id": 23, + "output_name": "output_param_boolean" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool MetaPhlAn", + "name": "analysis" + } + ], + "label": "MetaPhlAn", + "name": "MetaPhlAn", + "outputs": [ + { + "name": "output_file", + "type": "tabular" + }, + { + "name": "mapout", + "type": "tabular" + }, + { + "name": "sam_output_file", + "type": "sam" + } + ], + "position": { + "left": 1018.8281386787592, + "top": 536.2986005516906 + }, + "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": "9772827a-152b-4943-bc51-dd5def2ce127", + "when": "$(inputs.when)", + "workflow_outputs": [] + }, + "27": { + "annotation": "mOTUs_profiler", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/motus/motus_profiler/3.1.0+galaxy1", + "errors": null, + "id": 27, + "input_connections": { + "inputs|db|db_cached": { + "id": 3, + "output_name": "output" + }, + "inputs|input_type|reads_type|forward_reads": { + "id": 25, + "output_name": "forward" + }, + "inputs|input_type|reads_type|reverse_reads": { + "id": 25, + "output_name": "reverse" + }, + "when": { + "id": 22, + "output_name": "output_param_boolean" + } + }, + "inputs": [], + "label": "mOTUs_profiler", + "name": "mOTUs_profiler", + "outputs": [ + { + "name": "output_motus", + "type": "txt" + }, + { + "name": "output_bam", + "type": "bam" + } + ], + "position": { + "left": 1021.887821951847, + "top": 894.3334689343865 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/motus/motus_profiler/3.1.0+galaxy1", + "tool_shed_repository": { + "changeset_revision": "b2b7a3897ef6", + "name": "motus", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"algorithm_advanced_options\": {\"advanced_options\": {\"customize_algorithm_options\": \"default_options\", \"__current_case__\": 1}}, \"all_taxonomic_level\": false, \"biom_format\": false, \"cami_format_option\": {\"cami_options\": \"no\", \"__current_case__\": 1}, \"full_rank_taxonomy\": false, \"full_species_name\": false, \"inputs\": {\"input_type\": {\"selector\": \"reads\", \"__current_case__\": 0, \"reads_type\": {\"selector\": \"paired\", \"__current_case__\": 0, \"forward_reads\": {\"__class__\": \"ConnectedValue\"}, \"reverse_reads\": {\"__class__\": \"ConnectedValue\"}}}, \"sample_name\": null, \"db\": {\"db_source\": \"cached\", \"__current_case__\": 0, \"db_cached\": {\"__class__\": \"ConnectedValue\"}}}, \"ncbi_taxonomy_ids\": false, \"ref_motus\": false, \"result_as_counts\": false, \"save_bam\": true, \"save_mgc\": false, \"taxonomic_level_option\": {\"taxonomic_option\": \"no\", \"__current_case__\": 1}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "3.1.0+galaxy1", + "type": "tool", + "uuid": "dd16db38-e79d-4c66-bdf7-3c5ad65616ff", + "when": "$(inputs.when)", + "workflow_outputs": [] + }, + "28": { + "annotation": "Selects the MetaPhlAn taxonomic profile if available, otherwise uses the mOTUs profile.", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "errors": null, + "id": 28, + "input_connections": { + "style_cond|type_cond|pick_from_0|value": { + "id": 26, + "output_name": "output_file" + }, + "style_cond|type_cond|pick_from_1|value": { + "id": 27, + "output_name": "output_motus" + } + }, + "inputs": [], + "label": null, + "name": "Pick parameter value", + "outputs": [ + { + "name": "data_param", + "type": "input" + } + ], + "position": { + "left": 1367.9823007298319, + "top": 583.0150002426888 + }, + "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\"}}, {\"__index__\": 1, \"value\": {\"__class__\": \"ConnectedValue\"}}]}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.2.0", + "type": "tool", + "uuid": "d472fd45-e7d9-4508-82ae-ccbf0ec98c5f", + "when": null, + "workflow_outputs": [] + }, + "29": { + "annotation": "Selects the MetaPhlAn alignment file if available, otherwise uses the mOTUs alignment file", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "errors": null, + "id": 29, + "input_connections": { + "style_cond|type_cond|pick_from_0|value": { + "id": 26, + "output_name": "sam_output_file" + }, + "style_cond|type_cond|pick_from_1|value": { + "id": 27, + "output_name": "output_bam" + } + }, + "inputs": [], + "label": null, + "name": "Pick parameter value", + "outputs": [ + { + "name": "data_param", + "type": "input" + } + ], + "position": { + "left": 1374.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\"}}, {\"__index__\": 1, \"value\": {\"__class__\": \"ConnectedValue\"}}]}}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.2.0", + "type": "tool", + "uuid": "383ca3cf-13fb-4736-82e7-1f283fd20aa9", + "when": null, + "workflow_outputs": [] + }, + "30": { + "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": 30, + "input_connections": { + "input": { + "id": 29, + "output_name": "data_param" + } + }, + "inputs": [], + "label": "Samtools view", + "name": "Samtools view", + "outputs": [ + { + "name": "outputsam", + "type": "input" + } + ], + "position": { + "left": 1658.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": "303fc26e-6b68-486c-a300-05dd67db194a", + "when": null, + "workflow_outputs": [] + }, + "31": { + "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": 31, + "input_connections": { + "alignment": { + "id": 30, + "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": 28, + "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": "SameStr Convert", + "name": "SameStr Convert", + "outputs": [ + { + "name": "npz_files", + "type": "input" + }, + { + "name": "stats_file", + "type": "tabular" + } + ], + "position": { + "left": 1698.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": "24dd3bef-7939-4476-8585-2bab0006541a", + "when": null, + "workflow_outputs": [] + }, + "32": { + "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": 32, + "input_connections": { + "input": { + "id": 31, + "output_name": "npz_files" + } + }, + "inputs": [], + "label": null, + "name": "Flatten collection", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 1863.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": "6f555254-4e61-4bd0-bbb9-2f6aeca3fc7c", + "when": null, + "workflow_outputs": [] + }, + "33": { + "annotation": "Apply rules", + "content_id": "__APPLY_RULES__", + "errors": null, + "id": 33, + "input_connections": { + "input": { + "id": 32, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Apply rules", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 2115.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": "cb7cb755-d6cb-431f-a327-0825b21a6c60", + "when": null, + "workflow_outputs": [] + }, + "34": { + "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": 34, + "input_connections": { + "database": { + "id": 5, + "output_name": "output" + }, + "input_files": { + "id": 33, + "output_name": "output" + } + }, + "inputs": [], + "label": "SameStr Merge", + "name": "SameStr Merge", + "outputs": [ + { + "name": "npz_files", + "type": "input" + }, + { + "name": "sample_name", + "type": "input" + } + ], + "position": { + "left": 2025.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": "68e48efa-bab3-4adf-af44-3f786dda7730", + "when": null, + "workflow_outputs": [] + }, + "35": { + "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": 35, + "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": 34, + "output_name": "sample_name" + }, + "input_snvs": { + "id": 34, + "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": 2429.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": "6a37c733-4666-48be-a483-ebaa31e379ce", + "when": null, + "workflow_outputs": [] + }, + "36": { + "annotation": "empty datasets with insufficient coverage or no SNVs detected", + "content_id": "__FILTER_EMPTY_DATASETS__", + "errors": null, + "id": 36, + "input_connections": { + "input": { + "id": 35, + "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": 2777.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": "5a07c120-3e4e-448e-bcb9-c5792d5595ad", + "when": null, + "workflow_outputs": [] + }, + "37": { + "annotation": "empty datasets with insufficient coverage or no SNVs detected", + "content_id": "__FILTER_EMPTY_DATASETS__", + "errors": null, + "id": 37, + "input_connections": { + "input": { + "id": 35, + "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": 2779.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": "a96368c5-8e46-4e93-84d2-628e499a98f7", + "when": null, + "workflow_outputs": [] + }, + "38": { + "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": 38, + "input_connections": { + "database": { + "id": 5, + "output_name": "output" + }, + "input_names": { + "id": 37, + "output_name": "output" + }, + "input_snvs": { + "id": 36, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "SameStr Stats", + "outputs": [ + { + "name": "stats_file", + "type": "tabular" + } + ], + "position": { + "left": 3091.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": "b7295639-0e0a-477f-be6d-5432caffbda4", + "when": null, + "workflow_outputs": [ + { + "label": "stats file", + "output_name": "stats_file", + "uuid": "74b1fda3-6323-4d86-8f51-3c89cbdffec8" + } + ] + }, + "39": { + "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": 39, + "input_connections": { + "database": { + "id": 5, + "output_name": "output" + }, + "input_names": { + "id": 37, + "output_name": "output" + }, + "input_snvs": { + "id": 36, + "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": 3181.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": "4244ea02-c531-4075-bd0d-330654870a60", + "when": null, + "workflow_outputs": [] + }, + "40": { + "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": 40, + "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": 39, + "output_name": "overlap_file" + }, + "similarities": { + "id": 39, + "output_name": "fraction_file" + }, + "tax_profiles": { + "id": 26, + "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": 3657.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": "905dd7e6-db74-4975-91f0-100e4077ab0d", + "when": null, + "workflow_outputs": [ + { + "label": "cooccurrences", + "output_name": "cooccurrences", + "uuid": "d6ff3e38-553f-477d-abe4-c2fea58de5b8" + }, + { + "label": "strain events", + "output_name": "strain_events", + "uuid": "55e3b5b7-c520-4abd-8842-630b04ca0c77" + }, + { + "label": "taxon counts", + "output_name": "taxon_counts", + "uuid": "2d00d764-3651-4f77-bf9e-a54b1e155e59" + } + ] + } + }, + "tags": [ + "Metagenomics", + "microbiome", + "shared-strains" + ], + "uuid": "4f48d55a-f17c-40ca-9e67-e95c0d8886e7", + "version": 6 +} \ No newline at end of file