diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/.dockstore.yml b/workflows/data-fetching/kmindex-logan-sra-retrieval/.dockstore.yml new file mode 100644 index 0000000000..8c1db3bc0e --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/.dockstore.yml @@ -0,0 +1,11 @@ +version: 1.2 +workflows: +- name: main + subclass: Galaxy + publish: true + primaryDescriptorPath: /kmindex-logan-sra-retrieval.ga + testParameterFiles: + - /kmindex-logan-sra-retrieval-tests.yml + authors: + - name: Danielle Callan + orcid: 0009-0009-3690-8372 diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/CHANGELOG.md b/workflows/data-fetching/kmindex-logan-sra-retrieval/CHANGELOG.md new file mode 100644 index 0000000000..39ac150221 --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +## [0.1] - 2026-04-16 + +### Added + +- Initial release of KMIndex / Logan SRA Hit Retrieval workflow +- K-mer based sequence search against Logan unitig indexes +- Automatic SRA accession identification from search results +- Parallel download of matching SRA runs +- Separate outputs for paired-end and single-end reads +- Configurable search parameters: + - Minimum shared k-mer proportion (default: 0.5) + - Z-value for k-mer extension sensitivity (default: 6) + - Maximum number of hits to download +- Comprehensive workflow documentation in README +- Test suite with sample query sequence diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/README.md b/workflows/data-fetching/kmindex-logan-sra-retrieval/README.md new file mode 100644 index 0000000000..b91274a800 --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/README.md @@ -0,0 +1,56 @@ +# KMIndex / Logan SRA Hit Retrieval + +## Overview + +Search a query sequence against a KMIndex/Logan index and rapidly download matching SRA runs into your Galaxy history. + +This workflow uses k-mer–based matching for fast identification of highly similar sequences. + +## Inputs + +- **Query sequence** (FASTA) — nucleotide sequence to search +- **Index to query** — KMIndex/Logan database to search against +- **Max hits to download** — maximum number of SRA runs to retrieve +- **Minimum shared k-mer proportion** (0.0–1.0, default: 0.5) — threshold for match inclusion +- **Z-value** (k-mer extension factor, default: 6) — controls k-mer matching sensitivity + +## Outputs + +- **Accession list** (TXT) — list of downloaded SRA IDs +- **Paired-end reads** (collection) — paired FASTQ files from matching runs +- **Single-end reads** (collection) — single FASTQ files from matching runs + +## Parameter Tips + +**More stringent** (fewer, closer matches): +- ↑ shared k-mer proportion + +**More permissive** (more, broader matches): +- ↓ shared k-mer proportion + +**Z-value**: +- Higher → more specific, may miss distant matches +- Lower → more sensitive, may include weaker matches + +## When to Use KMIndex / Logan + +Use this workflow when you need: +- Fast searches at scale +- Exact or near-exact matches +- Minimal parameter tuning + +Use the LexicMap workflow if you need: +- Approximate matching (mismatches/gaps) +- Sensitivity to divergent sequences +- BLAST-like alignment scoring + +## Rule of thumb + +- High similarity → use KMIndex / Logan +- Unknown or divergent sequences → use LexicMap + +## Notes + +- Designed for speed; less sensitive to divergent sequences than alignment-based methods +- Very low thresholds may return weak or spurious matches +- Outputs are split into paired-end and single-end collections for downstream use diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/kmindex-logan-sra-retrieval-tests.yml b/workflows/data-fetching/kmindex-logan-sra-retrieval/kmindex-logan-sra-retrieval-tests.yml new file mode 100644 index 0000000000..c17cf4e512 --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/kmindex-logan-sra-retrieval-tests.yml @@ -0,0 +1,22 @@ +- doc: Test KMIndex/Logan SRA retrieval with query sequence + job: + Query Sequence: + class: File + path: test-data/query-sequence.fasta + hashes: + - hash_function: SHA-1 + hash_value: 69b9d3d941720ef225f5545a711e9ab8a209da49 + Index To Query: "VIRALRNA_ROD" + Z-value (k-mer extension factor): 6 + Minimum shared k-mer proportion: 0.5 + How many accessions to keep: 5 + outputs: + KMIndex/ Logan Matching Accessions List: + file: test-data/expected-accession-list.txt + compare: contains + Paired End Reads: + class: Collection + count: 5 + Single End Reads: + class: Collection + count: 0 diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/kmindex-logan-sra-retrieval.ga b/workflows/data-fetching/kmindex-logan-sra-retrieval/kmindex-logan-sra-retrieval.ga new file mode 100644 index 0000000000..da4c9762d1 --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/kmindex-logan-sra-retrieval.ga @@ -0,0 +1,830 @@ +{ + "a_galaxy_workflow": "true", + "annotation": "run kmindex over logan unitigs, parse results for SRA accessions that matched the query sequence, and download them", + "comments": [], + "creator": [ + { + "class": "Person", + "identifier": "https://orcid.org/0009-0009-3690-8372", + "name": "Danielle Callan" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "KMIndex / Logan SRA Hit Retrieval", + "readme": "# KMIndex / Logan SRA Hit Retrieval\n\n## Overview\n\nSearch a query sequence against a KMIndex/Logan index and rapidly download matching SRA runs into your Galaxy history.\n\nThis workflow uses k-mer\u2013based matching for fast identification of highly similar sequences.\n\n## Inputs\n\n- Query sequence (FASTA)\n- Index to query\n- Max hits to download\n- Minimum shared k-mer proportion (0.0\u20131.0, default: 0.5)\n- Z-value (k-mer extension factor) (default: 6) Controls k-mer matching sensitivity. Default is recommended for most use cases.\n\n## Outputs\n\n - Accession list (TXT) \u2014 downloaded SRA IDs\n - Paired-end reads (collection)\n - Single-end reads (collection)\n\n## Parameter Tips\n\nMore stringent (fewer, closer matches):\n - \u2191 shared k-mer proportion\n\nMore permissive (more, broader matches):\n - \u2193 shared k-mer proportion\n\nZ-value:\n - Higher \u2192 more specific, may miss distant matches\n - Lower \u2192 more sensitive, may include weaker matches\n\n## When to Use KMIndex / Logan\n\nUse this workflow when you need:\n\n - Fast searches at scale\n - Exact or near-exact matches\n - Minimal parameter tuning\n\n Use the LexicMap workflow if you need:\n\n - Approximate matching (mismatches/gaps)\n - Sensitivity to divergent sequences\n - BLAST-like alignment scoring\n\n## Rule of thumb:\n\n - High similarity \u2192 use KMIndex / Logan\n - Unknown or divergent sequences \u2192 use LexicMap\n\n## Notes\n\n - Designed for speed; less sensitive to divergent sequences than alignment-based methods\n - Very low thresholds may return weak or spurious matches\n - Outputs are split into paired-end and single-end collections for downstream use", + "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": "KMIndex index/database to search against. Determines the set of sequences that will be queried for matches.", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "KMIndex index/database to search against. Determines the set of sequences that will be queried for matches.", + "name": "Index To Query" + } + ], + "label": "Index To Query", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 320 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "5ff7f185-a300-421b-8600-b9a12c8b2524", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "Nucleotide sequence (FASTA) to search against the selected index.", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "Nucleotide sequence (FASTA) to search against the selected index.", + "name": "Query Sequence" + } + ], + "label": "Query Sequence", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 440 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"format\": [\"fasta\"], \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "45d87a46-75ca-4dcf-8b4e-0bc8b6d7ae57", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "Controls k-mer matching sensitivity. Higher values increase specificity but may miss more divergent matches. Default is recommended for most use cases.", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "Controls k-mer matching sensitivity. Higher values increase specificity but may miss more divergent matches. Default is recommended for most use cases.", + "name": "Z-value (k-mer extension factor)" + } + ], + "label": "Z-value (k-mer extension factor)", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 580 + }, + "tool_id": null, + "tool_state": "{\"default\": 6, \"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "dce92ce8-b592-4560-9207-b5bd9af5973f", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "Minimum fraction of k-mers shared between the query and a target sequence. Higher values require more similar sequences.", + "content_id": null, + "errors": null, + "id": 3, + "input_connections": {}, + "inputs": [ + { + "description": "Minimum fraction of k-mers shared between the query and a target sequence. Higher values require more similar sequences.", + "name": "Minimum shared k-mer proportion" + } + ], + "label": "Minimum shared k-mer proportion", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 720 + }, + "tool_id": null, + "tool_state": "{\"default\": 0.5, \"validators\": [{\"min\": 0.1, \"max\": 1.0, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "4f1b843c-2b97-45ff-8352-2714c8f5eb9b", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "Integer representing the first N SRA accessions to keep from the kmindex query", + "content_id": null, + "errors": null, + "id": 4, + "input_connections": {}, + "inputs": [ + { + "description": "Integer representing the first N SRA accessions to keep from the kmindex query", + "name": "How many accessions to keep" + } + ], + "label": "How many accessions to keep", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1250, + "top": 210 + }, + "tool_id": null, + "tool_state": "{\"validators\": [{\"min\": 0, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "0320b827-5a19-47b7-b470-fece6e02d22e", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/kmindex/kmindex_query/0.6.0+galaxy2", + "errors": null, + "id": 5, + "input_connections": { + "db_opts|kmindex": { + "id": 0, + "output_name": "output" + }, + "fastx": { + "id": 1, + "output_name": "output" + }, + "threshold": { + "id": 3, + "output_name": "output" + }, + "zvalue": { + "id": 2, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool kmindex query", + "name": "db_opts" + } + ], + "label": null, + "name": "kmindex query", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 350, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/kmindex/kmindex_query/0.6.0+galaxy2", + "tool_shed_repository": { + "changeset_revision": "40066bb1d9ed", + "name": "kmindex", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"db_opts\": {\"db_opts_selector\": \"db\", \"__current_case__\": 1, \"kmindex\": {\"__class__\": \"ConnectedValue\"}}, \"fast\": false, \"fastx\": {\"__class__\": \"ConnectedValue\"}, \"format\": \"json\", \"threshold\": {\"__class__\": \"ConnectedValue\"}, \"verbose\": \"info\", \"zvalue\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.6.0+galaxy2", + "type": "tool", + "uuid": "d92335e4-bc1c-4d6d-b70b-3362d0bdab7d", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "If number of accessions to keep is 0 we should keep all of them, and this boolean indicating whether to take a subset should be false.", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0", + "errors": null, + "id": 6, + "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": "(Boolean) Subset Accessions", + "name": "Map parameter value", + "outputs": [ + { + "name": "output_param_boolean", + "type": "expression.json" + } + ], + "position": { + "left": 1550, + "top": 0 + }, + "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\": \"integer\", \"__current_case__\": 1, \"input_param\": {\"__class__\": \"ConnectedValue\"}, \"mappings\": [{\"__index__\": 0, \"from\": \"0\", \"to\": \"false\"}]}, \"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": "8711c5a8-d252-4863-85e7-bb84b4f34150", + "when": null, + "workflow_outputs": [] + }, + "7": { + "annotation": "Parse JSON list for SRA accessions", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_awk_tool/9.5+galaxy3", + "errors": null, + "id": 7, + "input_connections": { + "infile": { + "id": 5, + "output_name": "output" + } + }, + "inputs": [], + "label": "Parse SRA Accessions", + "name": "Text reformatting", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 650, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_awk_tool/9.5+galaxy3", + "tool_shed_repository": { + "changeset_revision": "ab83aa685821", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"code\": \"match($0, /\\\"(SRR[0-9]+)\\\"[[:space:]]*:[[:space:]]*([0-9.]+)/, m) {\\n print m[1] \\\"\\\\t\\\" m[2]\\n}\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"variables\": [], \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "9.5+galaxy3", + "type": "tool", + "uuid": "b06f7633-3909-4d3c-8ad4-429c23acc7db", + "when": null, + "workflow_outputs": [] + }, + "8": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/nml/collapse_collections/collapse_dataset/5.1.0", + "errors": null, + "id": 8, + "input_connections": { + "input_list": { + "id": 7, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Collapse Collection", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 950, + "top": 420 + }, + "post_job_actions": { + "ChangeDatatypeActionoutput": { + "action_arguments": { + "newtype": "tabular" + }, + "action_type": "ChangeDatatypeAction", + "output_name": "output" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/nml/collapse_collections/collapse_dataset/5.1.0", + "tool_shed_repository": { + "changeset_revision": "90981f86000f", + "name": "collapse_collections", + "owner": "nml", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"filename\": {\"add_name\": false, \"__current_case__\": 1}, \"input_list\": {\"__class__\": \"ConnectedValue\"}, \"one_header\": false, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "5.1.0", + "type": "tool", + "uuid": "bb9c901e-ad3d-4b1b-a8fe-9e961385536d", + "when": null, + "workflow_outputs": [] + }, + "9": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/9.5+galaxy3", + "errors": null, + "id": 9, + "input_connections": { + "infile": { + "id": 8, + "output_name": "output" + } + }, + "inputs": [], + "label": "Sort Accessions By Best Match", + "name": "Sort", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 1250, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/9.5+galaxy3", + "tool_shed_repository": { + "changeset_revision": "ab83aa685821", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"header\": \"0\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"sortkeys\": [{\"__index__\": 0, \"column\": \"2\", \"start_charpos\": null, \"end_charpos\": null, \"order\": \"r\", \"style\": \"V\", \"ignore_case\": false, \"ignore_leading_blanks\": false}], \"unique\": false, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "9.5+galaxy3", + "type": "tool", + "uuid": "8831fd1a-2d9a-4a73-8243-cf3d32f84d9a", + "when": null, + "workflow_outputs": [] + }, + "10": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 10, + "input_connections": { + "input": { + "id": 9, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 1550, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"columnList\": \"c1\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.2", + "type": "tool", + "uuid": "cc718211-11d2-4eeb-bd27-d8cebda4aebc", + "when": null, + "workflow_outputs": [] + }, + "11": { + "annotation": "", + "content_id": "Show beginning1", + "errors": null, + "id": 11, + "input_connections": { + "input": { + "id": 10, + "output_name": "out_file1" + }, + "lineNum": { + "id": 4, + "output_name": "output" + }, + "when": { + "id": 6, + "output_name": "output_param_boolean" + } + }, + "inputs": [], + "label": "Subset Accessions", + "name": "Select first", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 1850, + "top": 190 + }, + "post_job_actions": {}, + "tool_id": "Show beginning1", + "tool_state": "{\"header\": false, \"input\": {\"__class__\": \"ConnectedValue\"}, \"lineNum\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.2", + "type": "tool", + "uuid": "d1c89953-bf19-4225-81a8-9630b19d90d4", + "when": "$(inputs.when)", + "workflow_outputs": [] + }, + "12": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "errors": null, + "id": 12, + "input_connections": { + "style_cond|type_cond|pick_from_0|value": { + "id": 11, + "output_name": "out_file1" + }, + "style_cond|type_cond|pick_from_1|value": { + "id": 10, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": "Choose Subset or Full Set of Accessions", + "name": "Pick parameter value", + "outputs": [ + { + "name": "data_param", + "type": "input" + } + ], + "position": { + "left": 2150, + "top": 400 + }, + "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": "00f29b97-cf31-40b7-aa89-ae3fb3512582", + "when": null, + "workflow_outputs": [ + { + "label": "KMIndex/ Logan Matching Accessions List", + "output_name": "data_param", + "uuid": "3d52298d-da10-4aca-8e72-1c1ed5460103" + } + ] + }, + "13": { + "annotation": "", + "id": 13, + "input_connections": { + "Run accessions": { + "id": 12, + "input_subworkflow_step_id": 0, + "output_name": "data_param" + } + }, + "inputs": [], + "label": null, + "name": "Parallel Accession Download", + "outputs": [], + "position": { + "left": 2450, + "top": 400 + }, + "subworkflow": { + "a_galaxy_workflow": "true", + "annotation": "", + "comments": [], + "creator": [ + { + "class": "Person", + "identifier": "https://orcid.org/0000-0002-9676-7032", + "name": "Marius van den Beek" + }, + { + "class": "Organization", + "name": "IWC", + "url": "https://github.com/galaxyproject/iwc" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "Parallel Accession Download", + "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": "Text file containing run accessions (starting with SRR, ERR or DRR), one per line.", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Text file containing run accessions (starting with SRR, ERR or DRR), one per line.", + "name": "Run accessions" + } + ], + "label": "Run accessions", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 0 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"format\": [\"txt\"], \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "e9e5605e-29e1-4f90-9693-0e40a2ddfd8f", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/split_file_to_collection/split_file_to_collection/0.5.2", + "errors": null, + "id": 1, + "input_connections": { + "split_parms|input": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Split file", + "name": "split_parms" + } + ], + "label": "Split accessions to collection", + "name": "Split file", + "outputs": [ + { + "name": "list_output_txt", + "type": "input" + } + ], + "position": { + "left": 300, + "top": 0 + }, + "post_job_actions": { + "HideDatasetActionlist_output_txt": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "list_output_txt" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/split_file_to_collection/split_file_to_collection/0.5.2", + "tool_shed_repository": { + "changeset_revision": "2dae863c8f42", + "name": "split_file_to_collection", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"split_parms\": {\"select_ftype\": \"txt\", \"__current_case__\": 5, \"input\": {\"__class__\": \"ConnectedValue\"}, \"select_mode\": {\"mode\": \"chunk\", \"__current_case__\": 0, \"chunksize\": \"1\"}, \"newfilenames\": \"split_file\", \"select_allocate\": {\"allocate\": \"byrow\", \"__current_case__\": 2}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.5.2", + "type": "tool", + "uuid": "f8d776ff-e1ba-4bde-9b4b-392d825fd2b7", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/sra_tools/fasterq_dump/3.1.1+galaxy0", + "errors": null, + "id": 2, + "input_connections": { + "input|file_list": { + "id": 1, + "output_name": "list_output_txt" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Faster Download and Extract Reads in FASTQ", + "name": "input" + } + ], + "label": "fasterq-dump", + "name": "Faster Download and Extract Reads in FASTQ", + "outputs": [ + { + "name": "list_paired", + "type": "input" + }, + { + "name": "output_collection", + "type": "input" + }, + { + "name": "output_collection_other", + "type": "input" + }, + { + "name": "log", + "type": "txt" + } + ], + "position": { + "left": 600, + "top": 0 + }, + "post_job_actions": { + "HideDatasetActionlist_paired": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "list_paired" + }, + "HideDatasetActionlog": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "log" + }, + "HideDatasetActionoutput_collection": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output_collection" + }, + "HideDatasetActionoutput_collection_other": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output_collection_other" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/sra_tools/fasterq_dump/3.1.1+galaxy0", + "tool_shed_repository": { + "changeset_revision": "516a54ddf218", + "name": "sra_tools", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"adv\": {\"seq_defline\": \"@$sn/$ri\", \"minlen\": null, \"split\": \"--split-3\", \"skip_technical\": true}, \"input\": {\"input_select\": \"file_list\", \"__current_case__\": 2, \"file_list\": {\"__class__\": \"ConnectedValue\"}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "3.1.1+galaxy0", + "type": "tool", + "uuid": "4d328e7b-df7d-4d3e-a60f-1ea12925f317", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "", + "content_id": "__APPLY_RULES__", + "errors": null, + "id": 3, + "input_connections": { + "input": { + "id": 2, + "output_name": "list_paired" + } + }, + "inputs": [], + "label": "flatten paired output", + "name": "Apply rules", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 900, + "top": 0 + }, + "post_job_actions": { + "TagDatasetActionoutput": { + "action_arguments": { + "tags": "name:PE" + }, + "action_type": "TagDatasetAction", + "output_name": "output" + } + }, + "tool_id": "__APPLY_RULES__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"rules\": {\"mapping\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"columns\": [1], \"connectable\": true, \"editing\": false, \"is_workflow\": false, \"type\": \"list_identifiers\"}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"columns\": [2], \"connectable\": true, \"is_workflow\": false, \"type\": \"paired_identifier\"}], \"rules\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier0\", \"warn\": null}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier1\", \"warn\": null}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier2\", \"warn\": null}]}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "924d2152-5640-40cd-bec3-0ced45469d84", + "when": null, + "workflow_outputs": [ + { + "label": "Paired End Reads", + "output_name": "output", + "uuid": "b431f0a1-391e-45e1-b739-27dd0fc83087" + } + ] + }, + "4": { + "annotation": "", + "content_id": "__APPLY_RULES__", + "errors": null, + "id": 4, + "input_connections": { + "input": { + "id": 2, + "output_name": "output_collection" + } + }, + "inputs": [], + "label": "flatten single end output", + "name": "Apply rules", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 900, + "top": 210 + }, + "post_job_actions": { + "TagDatasetActionoutput": { + "action_arguments": { + "tags": "name:SE" + }, + "action_type": "TagDatasetAction", + "output_name": "output" + } + }, + "tool_id": "__APPLY_RULES__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"rules\": {\"mapping\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"columns\": [1], \"connectable\": true, \"editing\": false, \"is_workflow\": false, \"type\": \"list_identifiers\"}], \"rules\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier0\", \"warn\": null}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier1\", \"warn\": null}]}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "946d9610-c363-4915-b93a-f074169ef812", + "when": null, + "workflow_outputs": [ + { + "label": "Single End Reads", + "output_name": "output", + "uuid": "e2bf276c-0956-473e-a778-b3b3df7351f5" + } + ] + } + }, + "tags": [], + "uuid": "cfd98148-1d4a-4100-b016-2f307e0184ee" + }, + "tool_id": null, + "type": "subworkflow", + "uuid": "9fb319f7-0b94-4dd1-b267-a591be41b242", + "when": null, + "workflow_outputs": [ + { + "label": "Single End Reads", + "output_name": "Single End Reads", + "uuid": "5f0ef3c1-5893-42e1-bb5b-d136c713adc8" + }, + { + "label": "Paired End Reads", + "output_name": "Paired End Reads", + "uuid": "40cf268a-9b0a-4ab7-ac57-3db83bba0920" + } + ] + } + }, + "tags": [], + "uuid": "6d7736a4-66d8-4724-a8a2-050e7dfefbf4", + "version": 24, + "release": "0.1" +} \ No newline at end of file diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/test-data/expected-accession-list.txt b/workflows/data-fetching/kmindex-logan-sra-retrieval/test-data/expected-accession-list.txt new file mode 100644 index 0000000000..66e106bd1e --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/test-data/expected-accession-list.txt @@ -0,0 +1,5 @@ +SRR23005254 +SRR23495233 +SRR23495266 +SRR23495247 +SRR23495267 diff --git a/workflows/data-fetching/kmindex-logan-sra-retrieval/test-data/query-sequence.fasta b/workflows/data-fetching/kmindex-logan-sra-retrieval/test-data/query-sequence.fasta new file mode 100644 index 0000000000..c8775aa5e5 --- /dev/null +++ b/workflows/data-fetching/kmindex-logan-sra-retrieval/test-data/query-sequence.fasta @@ -0,0 +1,9 @@ +>SRR22426064.1 1 length=495 +ATTGCTTCGTTCAGTTACGTATTGCTGTCGGAACTACGACGGTATCTGATCGTCTTCGAACCTCCGACTT +TCGTTCTTGATTAATGAAAACATTCTTGGCAAAATGCTTTCGCTCTGGTCCGTCTTGCGCCGGTCCAAGA +ATTTCACCTCTAGCGGCGCAATACGAATGCCCCGGCGTCCTCTGTAAATGTGGCCTCCAGTTCCGAAAGC +CAAATAATAGAACCGCGGTCCTATTCCGTATTCCTAGCTGCGGTATCCAGGCGGCTCGGGCCTGCACTTT +GGAGCACTCTAATTTTTCAAAGTAAACGCTTCCGGGCCCCGCGGGACACTCAGCTAAGAGCATCGAGGGG +GCGCCGAGAGGCAAGGGCGGACAGGCGGTGGCTCGCCGCGGCGGACCGCCCGCGCCGGCTCCAAGATCAA +CTACGAGCTTTTTAACTGCCGGCAACTTTAATATACGCTATTGGAGCTGGAATTACCGCGGCTGCTGGCG +CAGAC diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/.dockstore.yml b/workflows/data-fetching/lexicmap-sra-retrieval/.dockstore.yml new file mode 100644 index 0000000000..640478f720 --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/.dockstore.yml @@ -0,0 +1,11 @@ +version: 1.2 +workflows: +- name: main + subclass: Galaxy + publish: true + primaryDescriptorPath: /lexicmap-sra-retrieval.ga + testParameterFiles: + - /lexicmap-sra-retrieval-tests.yml + authors: + - name: Danielle Callan + orcid: 0009-0009-3690-8372 diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/CHANGELOG.md b/workflows/data-fetching/lexicmap-sra-retrieval/CHANGELOG.md new file mode 100644 index 0000000000..817b9a3a20 --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/CHANGELOG.md @@ -0,0 +1,19 @@ +# Changelog + +## [0.1] - 2026-04-18 + +### Added + +- Initial release of LexicMap SRA Hit Retrieval workflow +- BLAST-like sequence search against LexicMap indexes +- Automatic SRA accession identification from search results +- Parallel download of matching SRA runs +- Separate outputs for paired-end and single-end reads +- Configurable search parameters: + - Minimum percent identity (default: 70%) + - Minimum alignment length (default: 50 bp) + - Maximum E-value (default: 10) + - Optional query and genome coverage thresholds + - Maximum number of hits to download +- Comprehensive workflow documentation in README +- Test suite with sample query sequence diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/README.md b/workflows/data-fetching/lexicmap-sra-retrieval/README.md new file mode 100644 index 0000000000..a07d5e3387 --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/README.md @@ -0,0 +1,63 @@ +# LexicMap SRA Hit Retrieval + +## Overview + +Search a query sequence against a LexicMap index and automatically download matching SRA runs into your Galaxy history. + +This workflow supports BLAST-like matching with configurable thresholds for identity, alignment length, and significance. + +## Inputs + +**Required** +- **Query sequence** (FASTA) — nucleotide sequence to search +- **Index to query** — LexicMap database to search against +- **Max hits to download** — maximum number of SRA runs to retrieve +- **Minimum percent identity** (%, default: 70) — minimum sequence identity threshold +- **Minimum alignment length** (bp, default: 50) — minimum alignment length threshold +- **Maximum E-value** (default: 10) — maximum significance threshold + +**Optional** +- **Minimum query coverage per alignment** (%) — minimum fraction of query covered per hit +- **Minimum total query coverage per genome** (%) — minimum total coverage across all hits from same genome + +## Outputs + +- **Accession list** (TXT) — list of downloaded SRA IDs +- **Paired-end reads** (collection) — paired FASTQ files from matching runs +- **Single-end reads** (collection) — single FASTQ files from matching runs + +## Parameter Tips + +**More stringent** (fewer, higher-confidence hits): +- ↑ identity +- ↑ alignment length +- ↓ E-value +- ↑ coverage thresholds + +**More permissive** (more, broader hits): +- ↓ identity +- ↓ alignment length +- ↑ E-value +- ↓/omit coverage thresholds + +## When to Use LexicMap + +Use this workflow when you need: +- Approximate matching (not exact sequence identity) +- Sensitivity to divergent sequences +- Control over alignment thresholds + +Use the KMIndex/Logan workflow if you want: +- Fast, exact or near-exact matches +- High-throughput searches with minimal tuning + +## Rule of thumb + +- High similarity → use KMIndex / Logan +- Unknown or divergent sequences → use LexicMap + +## Notes + +- Strict filters may return fewer than the requested number of hits +- Coverage thresholds help avoid short/fragmentary matches +- Outputs are split into paired-end and single-end collections for downstream use diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/lexicmap-sra-retrieval-tests.yml b/workflows/data-fetching/lexicmap-sra-retrieval/lexicmap-sra-retrieval-tests.yml new file mode 100644 index 0000000000..c843cf15d5 --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/lexicmap-sra-retrieval-tests.yml @@ -0,0 +1,23 @@ +- doc: Test LexicMap SRA retrieval with query sequence + job: + Query Sequence: + class: File + path: test-data/query-sequence.fasta + hashes: + - hash_function: SHA-1 + hash_value: 69b9d3d941720ef225f5545a711e9ab8a209da49 + LexicMap Index: "BacteriaGenomic" + Minimum percent identity (%): 70 + Minimum alignment length (bp): 50 + Maximum E-value: 10 + How many accessions to keep: 5 + outputs: + LexicMap Matched Accessions List: + file: test-data/expected-accession-list.txt + compare: contains + Paired End Reads: + class: Collection + count: 4 + Single End Reads: + class: Collection + count: 0 diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/lexicmap-sra-retrieval.ga b/workflows/data-fetching/lexicmap-sra-retrieval/lexicmap-sra-retrieval.ga new file mode 100644 index 0000000000..0293314c9d --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/lexicmap-sra-retrieval.ga @@ -0,0 +1,894 @@ +{ + "a_galaxy_workflow": "true", + "annotation": "run LexicMap search, parse results for SRA accessions that matched the query sequence, and download them", + "comments": [], + "creator": [ + { + "class": "Person", + "identifier": "https://orcid.org/0009-0009-3690-8372", + "name": "Danielle Callan" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "LexicMap SRA Hit Retrieval", + "readme": "# LexicMap SRA Hit Retrieval Workflow\n\n## Overview\n\nSearch a query sequence against a LexicMap index and automatically download matching SRA runs into your Galaxy history.\n\nThis workflow supports BLAST-like matching with configurable thresholds for identity, alignment length, and significance.\n\n## Inputs\n\n*Required*\n - Query sequence (FASTA)\n - Index to query\n - Max hits to download\n - Minimum percent identity (%) (default: 70)\n - Minimum alignment length (bp) (default: 50)\n - Maximum E-value (default: 10)\n\n*Optional*\n - Minimum query coverage per alignment (%)\n - Minimum total query coverage per genome (%)\n\n## Outputs\n\n - Accession list (TXT) \u2014 downloaded SRA IDs\n - Paired-end reads (collection)\n - Single-end reads (collection)\n\n## Parameter Tips\n\nMore stringent (fewer, higher-confidence hits):\n - \u2191 identity\n - \u2191 alignment length\n - \u2193 E-value\n - \u2191 coverage thresholds\n\nMore permissive (more, broader hits):\n - \u2193 identity\n - \u2193 alignment length\n - \u2191 E-value\n - \u2193/omit coverage thresholds\n\n## When to Use LexicMap\n\nUse this workflow when you need:\n\n - Approximate matching (not exact sequence identity)\n - Sensitivity to divergent sequences\n - Control over alignment thresholds\n\nUse the KMIndex/Logan workflow if you want:\n\n - Fast, exact or near-exact matches\n - High-throughput searches with minimal tuning\n\nRule of thumb:\n\n - High similarity \u2192 use KMIndex / Logan\n - Unknown or divergent sequences \u2192 use LexicMap\n\n## Notes\n - Strict filters may return fewer than the requested number of hits\n - Coverage thresholds help avoid short/fragmentary matches\n - Outputs are split into paired-end and single-end collections for downstream use", + "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": "Nucleotide sequence (FASTA) to search against the selected index.", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Nucleotide sequence (FASTA) to search against the selected index.", + "name": "Query Sequence" + } + ], + "label": "Query Sequence", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 60 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"format\": [\"fasta\"], \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "ea7fe9b8-16ea-4de0-b843-65d2918a65f1", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "LexicMap index/database to search against. Determines the set of sequences that will be queried for matches.", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "LexicMap index/database to search against. Determines the set of sequences that will be queried for matches.", + "name": "LexicMap Index" + } + ], + "label": "LexicMap Index", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 200 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "83ca02d8-0ad5-4f7f-82f6-d30e0f55b41a", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "Minimum length of an aligned segment. Short matches below this threshold are ignored.", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "Minimum length of an aligned segment. Short matches below this threshold are ignored.", + "name": "Minimum alignment length (bp)" + } + ], + "label": "Minimum alignment length (bp)", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 340 + }, + "tool_id": null, + "tool_state": "{\"default\": 50, \"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "0fcb6f30-d4bf-44d7-a2cf-9e0faab4c148", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "Minimum sequence identity required for an alignment segment to be considered a hit. Increase to restrict results to more similar sequences.", + "content_id": null, + "errors": null, + "id": 3, + "input_connections": {}, + "inputs": [ + { + "description": "Minimum sequence identity required for an alignment segment to be considered a hit. Increase to restrict results to more similar sequences.", + "name": "Minimum percent identity (%)" + } + ], + "label": "Minimum percent identity (%)", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 480 + }, + "tool_id": null, + "tool_state": "{\"default\": 70.0, \"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "75c733ee-2ef8-4c9c-a217-5efbfcec32af", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "Maximum expected number of random matches. Lower values are more stringent (e.g., 1e-5 is stricter than 1e-2).", + "content_id": null, + "errors": null, + "id": 4, + "input_connections": {}, + "inputs": [ + { + "description": "Maximum expected number of random matches. Lower values are more stringent (e.g., 1e-5 is stricter than 1e-2).", + "name": "Maximum E-value" + } + ], + "label": "Maximum E-value", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 620 + }, + "tool_id": null, + "tool_state": "{\"default\": 10.0, \"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "48708a6a-92a6-42c2-adf7-1f32af2bd35f", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "Minimum fraction of the query covered across all alignments to a genome. Useful for requiring broader support across the sequence.", + "content_id": null, + "errors": null, + "id": 5, + "input_connections": {}, + "inputs": [ + { + "description": "Minimum fraction of the query covered across all alignments to a genome. Useful for requiring broader support across the sequence.", + "name": "Minimum total query coverage per genome (%)" + } + ], + "label": "Minimum total query coverage per genome (%)", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 760 + }, + "tool_id": null, + "tool_state": "{\"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": true}", + "tool_version": null, + "type": "parameter_input", + "uuid": "14d9eac0-aa33-4869-87a9-34b31d5158c8", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "Minimum fraction of the query sequence covered by a single alignment segment. Helps filter out short, local matches.", + "content_id": null, + "errors": null, + "id": 6, + "input_connections": {}, + "inputs": [ + { + "description": "Minimum fraction of the query sequence covered by a single alignment segment. Helps filter out short, local matches.", + "name": "Minimum query coverage per alignment (%)" + } + ], + "label": "Minimum query coverage per alignment (%)", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0, + "top": 920 + }, + "tool_id": null, + "tool_state": "{\"validators\": [{\"min\": null, \"max\": null, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"float\", \"optional\": true}", + "tool_version": null, + "type": "parameter_input", + "uuid": "060b86b2-8e38-4f3c-b4ac-46edb9b49c95", + "when": null, + "workflow_outputs": [] + }, + "7": { + "annotation": "Number of top-scoring matches to retrieve and download from SRA after filtering.", + "content_id": null, + "errors": null, + "id": 7, + "input_connections": {}, + "inputs": [ + { + "description": "Number of top-scoring matches to retrieve and download from SRA after filtering.", + "name": "How many accessions to keep" + } + ], + "label": "How many accessions to keep", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 1000, + "top": 210 + }, + "tool_id": null, + "tool_state": "{\"default\": 10, \"validators\": [{\"min\": 1, \"max\": 1000, \"negate\": false, \"type\": \"in_range\"}], \"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "6be1ae7c-0754-4e60-bd95-25790d0552c6", + "when": null, + "workflow_outputs": [] + }, + "8": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/lexicmap/lexicmap_search/0.8.1+galaxy0", + "errors": null, + "id": 8, + "input_connections": { + "advanced_settings|align_min_match_len": { + "id": 2, + "output_name": "output" + }, + "advanced_settings|align_min_match_pident": { + "id": 3, + "output_name": "output" + }, + "advanced_settings|max_evalue": { + "id": 4, + "output_name": "output" + }, + "advanced_settings|min_qcov_per_genome": { + "id": 5, + "output_name": "output" + }, + "advanced_settings|min_qcov_per_hsp": { + "id": 6, + "output_name": "output" + }, + "db_opts|lexicmap_index": { + "id": 1, + "output_name": "output" + }, + "query": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool LexicMap Search", + "name": "advanced_settings" + }, + { + "description": "runtime parameter for tool LexicMap Search", + "name": "advanced_settings" + }, + { + "description": "runtime parameter for tool LexicMap Search", + "name": "advanced_settings" + }, + { + "description": "runtime parameter for tool LexicMap Search", + "name": "advanced_settings" + }, + { + "description": "runtime parameter for tool LexicMap Search", + "name": "advanced_settings" + }, + { + "description": "runtime parameter for tool LexicMap Search", + "name": "db_opts" + } + ], + "label": null, + "name": "LexicMap Search", + "outputs": [ + { + "name": "out_file", + "type": "tabular" + } + ], + "position": { + "left": 400, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/lexicmap/lexicmap_search/0.8.1+galaxy0", + "tool_shed_repository": { + "changeset_revision": "f0e5afff062b", + "name": "lexicmap", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"advanced_settings\": {\"align_band\": \"100\", \"align_ext_len\": \"1000\", \"align_max_gap\": \"20\", \"align_min_match_len\": {\"__class__\": \"ConnectedValue\"}, \"align_min_match_pident\": {\"__class__\": \"ConnectedValue\"}, \"all\": false, \"load_whole_seeds\": false, \"max_evalue\": {\"__class__\": \"ConnectedValue\"}, \"max_query_conc\": \"12\", \"min_qcov_per_genome\": {\"__class__\": \"ConnectedValue\"}, \"min_qcov_per_hsp\": {\"__class__\": \"ConnectedValue\"}, \"seed_max_dist\": \"1000\", \"seed_max_gap\": \"1000\", \"seed_min_prefix\": \"17\", \"seed_min_single_prefix\": \"19\"}, \"db_opts\": {\"db_opts_selector\": \"db\", \"__current_case__\": 1, \"lexicmap_index\": {\"__class__\": \"ConnectedValue\"}}, \"query\": {\"__class__\": \"ConnectedValue\"}, \"top_n_genomes\": \"0\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.8.1+galaxy0", + "type": "tool", + "uuid": "41fb9c27-4c86-4ba9-b5ab-ed4e1b5a2caf", + "when": null, + "workflow_outputs": [] + }, + "9": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0", + "errors": null, + "id": 9, + "input_connections": { + "input_param_type|input_param": { + "id": 7, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Map parameter value", + "name": "input_param_type" + } + ], + "label": "(Boolean) Subset Accessions", + "name": "Map parameter value", + "outputs": [ + { + "name": "output_param_boolean", + "type": "expression.json" + } + ], + "position": { + "left": 1300, + "top": 0 + }, + "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\": \"integer\", \"__current_case__\": 1, \"input_param\": {\"__class__\": \"ConnectedValue\"}, \"mappings\": [{\"__index__\": 0, \"from\": \"0\", \"to\": \"false\"}]}, \"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": "9605aac1-adcf-4ccd-b4b2-67bf193bbab3", + "when": null, + "workflow_outputs": [] + }, + "10": { + "annotation": "", + "content_id": "Remove beginning1", + "errors": null, + "id": 10, + "input_connections": { + "input": { + "id": 8, + "output_name": "out_file" + } + }, + "inputs": [], + "label": "Remove Header Line", + "name": "Remove beginning", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 700, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "Remove beginning1", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"num_lines\": \"1\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.0", + "type": "tool", + "uuid": "8c1b487d-1f05-4123-9f16-bebc5aef00dc", + "when": null, + "workflow_outputs": [] + }, + "11": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 11, + "input_connections": { + "input": { + "id": 10, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": "Extract Accessions", + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 1000, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"columnList\": \"c4\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.2", + "type": "tool", + "uuid": "99864d8c-3c33-4d28-8a8a-4595d556f4ee", + "when": null, + "workflow_outputs": [ + { + "label": "LexicMap Matched Accessions List", + "output_name": "out_file1", + "uuid": "3efdd58f-28b3-442f-bba6-bdfe3e39aca7" + } + ] + }, + "12": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/unique/bg_uniq/0.3", + "errors": null, + "id": 12, + "input_connections": { + "input": { + "id": 11, + "output_name": "out_file1" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Unique", + "name": "input" + } + ], + "label": null, + "name": "Unique", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 1300, + "top": 420 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/unique/bg_uniq/0.3", + "tool_shed_repository": { + "changeset_revision": "7ce75adb93be", + "name": "unique", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"adv_opts\": {\"adv_opts_selector\": \"basic\", \"__current_case__\": 0}, \"ignore_case\": false, \"input\": {\"__class__\": \"RuntimeValue\"}, \"is_numeric\": false, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.3", + "type": "tool", + "uuid": "af520e09-0923-4c0a-8f1d-77defc726b9c", + "when": null, + "workflow_outputs": [] + }, + "13": { + "annotation": "", + "content_id": "Show beginning1", + "errors": null, + "id": 13, + "input_connections": { + "input": { + "id": 12, + "output_name": "outfile" + }, + "lineNum": { + "id": 7, + "output_name": "output" + }, + "when": { + "id": 9, + "output_name": "output_param_boolean" + } + }, + "inputs": [], + "label": "Subset Accessions", + "name": "Select first", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 1600, + "top": 190 + }, + "post_job_actions": {}, + "tool_id": "Show beginning1", + "tool_state": "{\"header\": false, \"input\": {\"__class__\": \"ConnectedValue\"}, \"lineNum\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.0.2", + "type": "tool", + "uuid": "047c9abc-9429-4a4f-983e-3de5981a3248", + "when": "$(inputs.when)", + "workflow_outputs": [] + }, + "14": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0", + "errors": null, + "id": 14, + "input_connections": { + "style_cond|type_cond|pick_from_0|value": { + "id": 13, + "output_name": "out_file1" + }, + "style_cond|type_cond|pick_from_1|value": { + "id": 12, + "output_name": "outfile" + } + }, + "inputs": [], + "label": "Choose Subset or Full Set of Accessions", + "name": "Pick parameter value", + "outputs": [ + { + "name": "data_param", + "type": "input" + } + ], + "position": { + "left": 1900, + "top": 400 + }, + "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": "06bfa374-6fdd-4eb2-b66b-f4d13b156204", + "when": null, + "workflow_outputs": [] + }, + "15": { + "annotation": "", + "id": 15, + "input_connections": { + "Run accessions": { + "id": 14, + "input_subworkflow_step_id": 0, + "output_name": "data_param" + } + }, + "inputs": [], + "label": null, + "name": "Parallel Accession Download", + "outputs": [], + "position": { + "left": 2200, + "top": 400 + }, + "subworkflow": { + "a_galaxy_workflow": "true", + "annotation": "", + "comments": [], + "creator": [ + { + "class": "Person", + "identifier": "https://orcid.org/0000-0002-9676-7032", + "name": "Marius van den Beek" + }, + { + "class": "Organization", + "name": "IWC", + "url": "https://github.com/galaxyproject/iwc" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "Parallel Accession Download", + "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": "Text file containing run accessions (starting with SRR, ERR or DRR), one per line.", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Text file containing run accessions (starting with SRR, ERR or DRR), one per line.", + "name": "Run accessions" + } + ], + "label": "Run accessions", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 0 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"format\": [\"txt\"], \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "e9e5605e-29e1-4f90-9693-0e40a2ddfd8f", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/split_file_to_collection/split_file_to_collection/0.5.2", + "errors": null, + "id": 1, + "input_connections": { + "split_parms|input": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Split file", + "name": "split_parms" + } + ], + "label": "Split accessions to collection", + "name": "Split file", + "outputs": [ + { + "name": "list_output_txt", + "type": "input" + } + ], + "position": { + "left": 300, + "top": 0 + }, + "post_job_actions": { + "HideDatasetActionlist_output_txt": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "list_output_txt" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/split_file_to_collection/split_file_to_collection/0.5.2", + "tool_shed_repository": { + "changeset_revision": "2dae863c8f42", + "name": "split_file_to_collection", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"split_parms\": {\"select_ftype\": \"txt\", \"__current_case__\": 5, \"input\": {\"__class__\": \"ConnectedValue\"}, \"select_mode\": {\"mode\": \"chunk\", \"__current_case__\": 0, \"chunksize\": \"1\"}, \"newfilenames\": \"split_file\", \"select_allocate\": {\"allocate\": \"byrow\", \"__current_case__\": 2}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "0.5.2", + "type": "tool", + "uuid": "f8d776ff-e1ba-4bde-9b4b-392d825fd2b7", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/sra_tools/fasterq_dump/3.1.1+galaxy0", + "errors": null, + "id": 2, + "input_connections": { + "input|file_list": { + "id": 1, + "output_name": "list_output_txt" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Faster Download and Extract Reads in FASTQ", + "name": "input" + } + ], + "label": "fasterq-dump", + "name": "Faster Download and Extract Reads in FASTQ", + "outputs": [ + { + "name": "list_paired", + "type": "input" + }, + { + "name": "output_collection", + "type": "input" + }, + { + "name": "output_collection_other", + "type": "input" + }, + { + "name": "log", + "type": "txt" + } + ], + "position": { + "left": 600, + "top": 0 + }, + "post_job_actions": { + "HideDatasetActionlist_paired": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "list_paired" + }, + "HideDatasetActionlog": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "log" + }, + "HideDatasetActionoutput_collection": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output_collection" + }, + "HideDatasetActionoutput_collection_other": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output_collection_other" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/sra_tools/fasterq_dump/3.1.1+galaxy0", + "tool_shed_repository": { + "changeset_revision": "516a54ddf218", + "name": "sra_tools", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"adv\": {\"seq_defline\": \"@$sn/$ri\", \"minlen\": null, \"split\": \"--split-3\", \"skip_technical\": true}, \"input\": {\"input_select\": \"file_list\", \"__current_case__\": 2, \"file_list\": {\"__class__\": \"ConnectedValue\"}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "3.1.1+galaxy0", + "type": "tool", + "uuid": "4d328e7b-df7d-4d3e-a60f-1ea12925f317", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "", + "content_id": "__APPLY_RULES__", + "errors": null, + "id": 3, + "input_connections": { + "input": { + "id": 2, + "output_name": "list_paired" + } + }, + "inputs": [], + "label": "flatten paired output", + "name": "Apply rules", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 900, + "top": 0 + }, + "post_job_actions": { + "TagDatasetActionoutput": { + "action_arguments": { + "tags": "name:PE" + }, + "action_type": "TagDatasetAction", + "output_name": "output" + } + }, + "tool_id": "__APPLY_RULES__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"rules\": {\"mapping\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"columns\": [1], \"connectable\": true, \"editing\": false, \"is_workflow\": false, \"type\": \"list_identifiers\"}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"columns\": [2], \"connectable\": true, \"is_workflow\": false, \"type\": \"paired_identifier\"}], \"rules\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier0\", \"warn\": null}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier1\", \"warn\": null}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier2\", \"warn\": null}]}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "924d2152-5640-40cd-bec3-0ced45469d84", + "when": null, + "workflow_outputs": [ + { + "label": "Paired End Reads", + "output_name": "output", + "uuid": "b431f0a1-391e-45e1-b739-27dd0fc83087" + } + ] + }, + "4": { + "annotation": "", + "content_id": "__APPLY_RULES__", + "errors": null, + "id": 4, + "input_connections": { + "input": { + "id": 2, + "output_name": "output_collection" + } + }, + "inputs": [], + "label": "flatten single end output", + "name": "Apply rules", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 900, + "top": 210 + }, + "post_job_actions": { + "TagDatasetActionoutput": { + "action_arguments": { + "tags": "name:SE" + }, + "action_type": "TagDatasetAction", + "output_name": "output" + } + }, + "tool_id": "__APPLY_RULES__", + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"rules\": {\"mapping\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"columns\": [1], \"connectable\": true, \"editing\": false, \"is_workflow\": false, \"type\": \"list_identifiers\"}], \"rules\": [{\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier0\", \"warn\": null}, {\"collapsible_value\": {\"__class__\": \"RuntimeValue\"}, \"connectable\": true, \"error\": null, \"is_workflow\": false, \"type\": \"add_column_metadata\", \"value\": \"identifier1\", \"warn\": null}]}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "1.1.0", + "type": "tool", + "uuid": "946d9610-c363-4915-b93a-f074169ef812", + "when": null, + "workflow_outputs": [ + { + "label": "Single End Reads", + "output_name": "output", + "uuid": "e2bf276c-0956-473e-a778-b3b3df7351f5" + } + ] + } + }, + "tags": [], + "uuid": "cfd98148-1d4a-4100-b016-2f307e0184ee" + }, + "tool_id": null, + "type": "subworkflow", + "uuid": "c38de79c-affd-46f0-adc1-b95496631d96", + "when": null, + "workflow_outputs": [ + { + "label": "Paired End Reads", + "output_name": "Paired End Reads", + "uuid": "d2f919ae-37d7-435e-9a7a-672fd31449c2" + }, + { + "label": "Single End Reads", + "output_name": "Single End Reads", + "uuid": "663c4ec2-9fe2-49ec-b317-4fee840b9641" + } + ] + } + }, + "tags": [], + "uuid": "a9ba6df8-5f46-4169-bef6-941b10c7f5b4", + "version": 30, + "release": "0.1" +} \ No newline at end of file diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/test-data/expected-accession-list.txt b/workflows/data-fetching/lexicmap-sra-retrieval/test-data/expected-accession-list.txt new file mode 100644 index 0000000000..8ba38b1e25 --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/test-data/expected-accession-list.txt @@ -0,0 +1,5 @@ +SRR6045676 +SRR2508899 +SRR14160342 +ERR697466 +SRR14275035 diff --git a/workflows/data-fetching/lexicmap-sra-retrieval/test-data/query-sequence.fasta b/workflows/data-fetching/lexicmap-sra-retrieval/test-data/query-sequence.fasta new file mode 100644 index 0000000000..c8775aa5e5 --- /dev/null +++ b/workflows/data-fetching/lexicmap-sra-retrieval/test-data/query-sequence.fasta @@ -0,0 +1,9 @@ +>SRR22426064.1 1 length=495 +ATTGCTTCGTTCAGTTACGTATTGCTGTCGGAACTACGACGGTATCTGATCGTCTTCGAACCTCCGACTT +TCGTTCTTGATTAATGAAAACATTCTTGGCAAAATGCTTTCGCTCTGGTCCGTCTTGCGCCGGTCCAAGA +ATTTCACCTCTAGCGGCGCAATACGAATGCCCCGGCGTCCTCTGTAAATGTGGCCTCCAGTTCCGAAAGC +CAAATAATAGAACCGCGGTCCTATTCCGTATTCCTAGCTGCGGTATCCAGGCGGCTCGGGCCTGCACTTT +GGAGCACTCTAATTTTTCAAAGTAAACGCTTCCGGGCCCCGCGGGACACTCAGCTAAGAGCATCGAGGGG +GCGCCGAGAGGCAAGGGCGGACAGGCGGTGGCTCGCCGCGGCGGACCGCCCGCGCCGGCTCCAAGATCAA +CTACGAGCTTTTTAACTGCCGGCAACTTTAATATACGCTATTGGAGCTGGAATTACCGCGGCTGCTGGCG +CAGAC