From 6257ad718a494556514b8b906980dc6011a74d13 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 13:12:21 -0400 Subject: [PATCH 1/7] Add collapse_collection tool with polished UI and help Imported from phac-nml/galaxy_tools, renamed merge.xml to collapse_collection.xml. Rewrote help with structured Synopsis/Description/Examples format. Added inline SVG diagram via macros.xml. Improved input labels and help attributes. Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/collapse_collection/.shed.yml | 4 + .../collapse_collection.xml | 197 ++++++++++++++++++ tools/collapse_collection/macros.xml | 51 +++++ .../collapse_collection/test-data/answer.txt | 8 + .../collapse_collection/test-data/answer2.tsv | 5 + .../collapse_collection/test-data/answer3.tsv | 5 + tools/collapse_collection/test-data/input1 | 4 + tools/collapse_collection/test-data/input2 | 4 + .../collapse_collection/test-data/strain1.tsv | 3 + .../collapse_collection/test-data/strain2.tsv | 3 + 10 files changed, 284 insertions(+) create mode 100644 tools/collapse_collection/.shed.yml create mode 100644 tools/collapse_collection/collapse_collection.xml create mode 100644 tools/collapse_collection/macros.xml create mode 100644 tools/collapse_collection/test-data/answer.txt create mode 100644 tools/collapse_collection/test-data/answer2.tsv create mode 100644 tools/collapse_collection/test-data/answer3.tsv create mode 100644 tools/collapse_collection/test-data/input1 create mode 100644 tools/collapse_collection/test-data/input2 create mode 100644 tools/collapse_collection/test-data/strain1.tsv create mode 100644 tools/collapse_collection/test-data/strain2.tsv diff --git a/tools/collapse_collection/.shed.yml b/tools/collapse_collection/.shed.yml new file mode 100644 index 00000000000..c17b39dc166 --- /dev/null +++ b/tools/collapse_collection/.shed.yml @@ -0,0 +1,4 @@ +categories: [Sequence Analysis] +description: Collection tool that collapses a list of files into a single datasset in order of appears in collection +name: collapse_collections +owner: nml diff --git a/tools/collapse_collection/collapse_collection.xml b/tools/collapse_collection/collapse_collection.xml new file mode 100644 index 00000000000..8d04e5c31b2 --- /dev/null +++ b/tools/collapse_collection/collapse_collection.xml @@ -0,0 +1,197 @@ + + into single dataset in order of the collection + + macros.xml + + + gawk + + + $output + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `_ at the National Microbiology Laboratory (PHAC). + + ]]> + + + diff --git a/tools/collapse_collection/macros.xml b/tools/collapse_collection/macros.xml new file mode 100644 index 00000000000..d25434811e9 --- /dev/null +++ b/tools/collapse_collection/macros.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + Input: A collection + + + strain1.tsv + seq_namemedianmean... + mcr_15252.74 + mcr_201.61 + + + strain2.tsv + seq_namemedianmean... + mcr_18585.62 + mcr_203.05 + + + Collapse + header + names + + + Output: A single dataset + + Sampleseq_namemedianmean + + + strain1.tsvmcr_15252.74 + strain1.tsvmcr_201.61 + + strain2.tsvmcr_18585.62 + strain2.tsvmcr_203.05 + + single header kept, dataset name prepended as a column on every row + + ]]> + diff --git a/tools/collapse_collection/test-data/answer.txt b/tools/collapse_collection/test-data/answer.txt new file mode 100644 index 00000000000..6d9cbb40d45 --- /dev/null +++ b/tools/collapse_collection/test-data/answer.txt @@ -0,0 +1,8 @@ +first file +second +third +fourth line +second file +second +third +fourth line diff --git a/tools/collapse_collection/test-data/answer2.tsv b/tools/collapse_collection/test-data/answer2.tsv new file mode 100644 index 00000000000..7ccd9cd7e54 --- /dev/null +++ b/tools/collapse_collection/test-data/answer2.tsv @@ -0,0 +1,5 @@ +Sample seq_name median mean gc% seq_length invalid_bases %_invalid non_zero_bases %_non_zero %_non_zero_corrected +strain1.tsv mcr_1 52 52.74000 0.49139 1626 0 0.00000 1600 100.00000 100.00000 +strain1.tsv mcr_2 0 1.60905 0.48114 1617 0 0.00000 56 3.51980 3.51980 +strain2.tsv mcr_1 85 85.61500 0.49139 1626 0 0.00000 1600 100.00000 100.00000 +strain2.tsv mcr_2 0 3.05343 0.48114 1617 0 0.00000 66 4.14833 4.14833 diff --git a/tools/collapse_collection/test-data/answer3.tsv b/tools/collapse_collection/test-data/answer3.tsv new file mode 100644 index 00000000000..7d4cff3db3d --- /dev/null +++ b/tools/collapse_collection/test-data/answer3.tsv @@ -0,0 +1,5 @@ +seq_name median mean gc% seq_length invalid_bases %_invalid non_zero_bases %_non_zero %_non_zero_corrected +mcr_1 52 52.74000 0.49139 1626 0 0.00000 1600 100.00000 100.00000 +mcr_2 0 1.60905 0.48114 1617 0 0.00000 56 3.51980 3.51980 +mcr_1 85 85.61500 0.49139 1626 0 0.00000 1600 100.00000 100.00000 +mcr_2 0 3.05343 0.48114 1617 0 0.00000 66 4.14833 4.14833 diff --git a/tools/collapse_collection/test-data/input1 b/tools/collapse_collection/test-data/input1 new file mode 100644 index 00000000000..44f88264a3a --- /dev/null +++ b/tools/collapse_collection/test-data/input1 @@ -0,0 +1,4 @@ +first file +second +third +fourth line diff --git a/tools/collapse_collection/test-data/input2 b/tools/collapse_collection/test-data/input2 new file mode 100644 index 00000000000..d601dc95e7f --- /dev/null +++ b/tools/collapse_collection/test-data/input2 @@ -0,0 +1,4 @@ +second file +second +third +fourth line diff --git a/tools/collapse_collection/test-data/strain1.tsv b/tools/collapse_collection/test-data/strain1.tsv new file mode 100644 index 00000000000..a7c44fd4c9f --- /dev/null +++ b/tools/collapse_collection/test-data/strain1.tsv @@ -0,0 +1,3 @@ +seq_name median mean gc% seq_length invalid_bases %_invalid non_zero_bases %_non_zero %_non_zero_corrected +mcr_1 52 52.74000 0.49139 1626 0 0.00000 1600 100.00000 100.00000 +mcr_2 0 1.60905 0.48114 1617 0 0.00000 56 3.51980 3.51980 diff --git a/tools/collapse_collection/test-data/strain2.tsv b/tools/collapse_collection/test-data/strain2.tsv new file mode 100644 index 00000000000..cd15019dad6 --- /dev/null +++ b/tools/collapse_collection/test-data/strain2.tsv @@ -0,0 +1,3 @@ +seq_name median mean gc% seq_length invalid_bases %_invalid non_zero_bases %_non_zero %_non_zero_corrected +mcr_1 85 85.61500 0.49139 1626 0 0.00000 1600 100.00000 100.00000 +mcr_2 0 3.05343 0.48114 1617 0 0.00000 66 4.14833 4.14833 From afecd64bebf13e1ffde76f72cbd0b0b80fb9a3c0 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 13:14:39 -0400 Subject: [PATCH 2/7] Bump version to 5.2.0 and profile to 24.2 Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/collapse_collection/collapse_collection.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/collapse_collection/collapse_collection.xml b/tools/collapse_collection/collapse_collection.xml index 8d04e5c31b2..7cd80c3d600 100644 --- a/tools/collapse_collection/collapse_collection.xml +++ b/tools/collapse_collection/collapse_collection.xml @@ -1,4 +1,4 @@ - + into single dataset in order of the collection macros.xml From 514617e486b1c872fce5d4faf2ab7ffd1d946da8 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 15:22:49 -0400 Subject: [PATCH 3/7] Fix CI lint: shed metadata, boolean conditional to select Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/collapse_collection/.shed.yml | 12 +++++++++--- tools/collapse_collection/collapse_collection.xml | 13 ++++++++----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/tools/collapse_collection/.shed.yml b/tools/collapse_collection/.shed.yml index c17b39dc166..b61af6690e6 100644 --- a/tools/collapse_collection/.shed.yml +++ b/tools/collapse_collection/.shed.yml @@ -1,4 +1,10 @@ -categories: [Sequence Analysis] -description: Collection tool that collapses a list of files into a single datasset in order of appears in collection +categories: [Text Manipulation] +description: Collapse a list collection into a single dataset, with options to keep a common header and prepend dataset names. +long_description: | + Concatenates every file in a list collection into a single output dataset, + preserving collection order. Supports header deduplication and dataset name + prepending in several placement modes. name: collapse_collections -owner: nml +owner: galaxyproject +remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/collapse_collection +homepage_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/collapse_collection diff --git a/tools/collapse_collection/collapse_collection.xml b/tools/collapse_collection/collapse_collection.xml index 7cd80c3d600..67c5c148b9f 100644 --- a/tools/collapse_collection/collapse_collection.xml +++ b/tools/collapse_collection/collapse_collection.xml @@ -11,7 +11,7 @@ ( #if $one_header: - #if $filename.add_name: + #if str($filename.add_name) == "true": awk '{if (NR==1) {print "Sample\t"$0}}' "$input_list[0]"; #else: awk '{if (NR==1) {print}}' "$input_list[0]"; @@ -19,7 +19,7 @@ #end if #for $f in $input_list# - #if $filename.add_name: + #if str($filename.add_name) == "true": #if str($filename.place_name) == "same_once": #if $one_header: printf "$f.element_identifier\t"; tail -q -n +2 "$f"; @@ -58,7 +58,10 @@ - + + + + @@ -66,7 +69,7 @@ - + @@ -81,7 +84,7 @@ - + From d057e37a592e419df4b252e9801f04237eb05702 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 15:26:59 -0400 Subject: [PATCH 4/7] Address review: PNG diagram, select widget, shed metadata, citation - Replace raw HTML SVG with PNG via $PATH_TO_IMAGES - Ship SVG source in static/images/ - Remove display="checkboxes" from one_header - Clean up output tag (self-closing) - Add citation for phac-nml/galaxy_tools - .shed.yml: add long_description, remote_repository_url, homepage_url Co-Authored-By: Claude Opus 4.6 (1M context) --- .../collapse_collection.xml | 10 +++- tools/collapse_collection/macros.xml | 50 ++---------------- .../static/images/collapse.png | Bin 0 -> 69305 bytes .../static/images/collapse.svg | 38 +++++++++++++ 4 files changed, 49 insertions(+), 49 deletions(-) create mode 100644 tools/collapse_collection/static/images/collapse.png create mode 100644 tools/collapse_collection/static/images/collapse.svg diff --git a/tools/collapse_collection/collapse_collection.xml b/tools/collapse_collection/collapse_collection.xml index 67c5c148b9f..3727198eb93 100644 --- a/tools/collapse_collection/collapse_collection.xml +++ b/tools/collapse_collection/collapse_collection.xml @@ -56,7 +56,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -196,5 +196,11 @@ Originally developed by `Philip Mabon (Takadonet) ]]> + @misc{phac_nml_galaxy_tools, + title={Galaxy Tools}, + author={{Public Health Agency of Canada, National Microbiology Laboratory}}, + url={https://github.com/phac-nml/galaxy_tools}, + note={Original source repository} + } diff --git a/tools/collapse_collection/macros.xml b/tools/collapse_collection/macros.xml index d25434811e9..0bae76d9d21 100644 --- a/tools/collapse_collection/macros.xml +++ b/tools/collapse_collection/macros.xml @@ -1,51 +1,7 @@ - - - - - - - - - - - - - Input: A collection - - - strain1.tsv - seq_namemedianmean... - mcr_15252.74 - mcr_201.61 - - - strain2.tsv - seq_namemedianmean... - mcr_18585.62 - mcr_203.05 - - - Collapse - header + names - - - Output: A single dataset - - Sampleseq_namemedianmean - - - strain1.tsvmcr_15252.74 - strain1.tsvmcr_201.61 - - strain2.tsvmcr_18585.62 - strain2.tsvmcr_203.05 - - single header kept, dataset name prepended as a column on every row - +.. image:: $PATH_TO_IMAGES/collapse.png + :alt: Collapse a list collection into a single dataset + :width: 700 ]]> diff --git a/tools/collapse_collection/static/images/collapse.png b/tools/collapse_collection/static/images/collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4dc8d2c5e2345cc65e05dc9be406ebf16afc19 GIT binary patch literal 69305 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 NSt&)yN^#@Q{}%#jQ|SNz literal 0 HcmV?d00001 diff --git a/tools/collapse_collection/static/images/collapse.svg b/tools/collapse_collection/static/images/collapse.svg new file mode 100644 index 00000000000..bf455176628 --- /dev/null +++ b/tools/collapse_collection/static/images/collapse.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + Input: A collection + + strain1.tsv + seq_namemedianmean... + mcr_15252.74 + mcr_201.61 + + strain2.tsv + seq_namemedianmean... + mcr_18585.62 + mcr_203.05 + + Collapse + header + names + + Output: A single dataset + Sampleseq_namemedianmean + + strain1.tsvmcr_15252.74 + strain1.tsvmcr_201.61 + + strain2.tsvmcr_18585.62 + strain2.tsvmcr_203.05 + single header kept, dataset name prepended as a column on every row + From be1bbdfd38eea650fcff441fc1c4fbd7ece8cc92 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 15:28:37 -0400 Subject: [PATCH 5/7] Update .shed.yml category to Collection operations Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/collapse_collection/.shed.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/collapse_collection/.shed.yml b/tools/collapse_collection/.shed.yml index b61af6690e6..81972adf4f7 100644 --- a/tools/collapse_collection/.shed.yml +++ b/tools/collapse_collection/.shed.yml @@ -1,4 +1,4 @@ -categories: [Text Manipulation] +categories: [Collection operations ] description: Collapse a list collection into a single dataset, with options to keep a common header and prepend dataset names. long_description: | Concatenates every file in a list collection into a single output dataset, From 84cf269a353b6ec404895f4eac7094a3da9c66f6 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 15:49:32 -0400 Subject: [PATCH 6/7] Change .shed.yml owner to iuc Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/collapse_collection/.shed.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/collapse_collection/.shed.yml b/tools/collapse_collection/.shed.yml index 81972adf4f7..18202381964 100644 --- a/tools/collapse_collection/.shed.yml +++ b/tools/collapse_collection/.shed.yml @@ -5,6 +5,6 @@ long_description: | preserving collection order. Supports header deduplication and dataset name prepending in several placement modes. name: collapse_collections -owner: galaxyproject +owner: iuc remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/collapse_collection homepage_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/collapse_collection From 8f4efc2aa3b1bfa8aaf83f47ebfe8b592fc35d66 Mon Sep 17 00:00:00 2001 From: nekrut Date: Sun, 22 Mar 2026 16:03:56 -0400 Subject: [PATCH 7/7] Fix .shed.yml category to valid Text Manipulation Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/collapse_collection/.shed.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/collapse_collection/.shed.yml b/tools/collapse_collection/.shed.yml index 18202381964..1d7ff8e05c1 100644 --- a/tools/collapse_collection/.shed.yml +++ b/tools/collapse_collection/.shed.yml @@ -1,4 +1,4 @@ -categories: [Collection operations ] +categories: [Text Manipulation] description: Collapse a list collection into a single dataset, with options to keep a common header and prepend dataset names. long_description: | Concatenates every file in a list collection into a single output dataset,