From 5718e20f840a1664557affa3eaacba63ea0b9657 Mon Sep 17 00:00:00 2001 From: planemo-autoupdate Date: Mon, 1 Jun 2026 10:58:26 +0000 Subject: [PATCH] Updating workflows/imaging/histological-staining-area-quantification from 0.1.1 to 0.1.2 --- .../CHANGELOG.md | 7 +++ ...stological-staining-area-quantification.ga | 45 +++++++++---------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/workflows/imaging/histological-staining-area-quantification/CHANGELOG.md b/workflows/imaging/histological-staining-area-quantification/CHANGELOG.md index 58217ded83..b78eca2d17 100644 --- a/workflows/imaging/histological-staining-area-quantification/CHANGELOG.md +++ b/workflows/imaging/histological-staining-area-quantification/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.1.2] - 2026-06-01 + +### Automatic update +- `toolshed.g2.bx.psu.edu/repos/imgteam/image_info/ip_imageinfo/5.7.1+galaxy1` was updated to `toolshed.g2.bx.psu.edu/repos/imgteam/image_info/ip_imageinfo/8.0.0+galaxy0` +- `toolshed.g2.bx.psu.edu/repos/imgteam/split_image/ip_split_image/2.3.5+galaxy0` was updated to `toolshed.g2.bx.psu.edu/repos/imgteam/split_image/ip_split_image/2.3.5+galaxy1` +- `toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2` was updated to `toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.3` + ## [0.1.1] - 2026-05-28 ### Fixed diff --git a/workflows/imaging/histological-staining-area-quantification/histological-staining-area-quantification.ga b/workflows/imaging/histological-staining-area-quantification/histological-staining-area-quantification.ga index 636e597a6a..e71b130eff 100644 --- a/workflows/imaging/histological-staining-area-quantification/histological-staining-area-quantification.ga +++ b/workflows/imaging/histological-staining-area-quantification/histological-staining-area-quantification.ga @@ -113,9 +113,9 @@ { "child_steps": [ 2, - 4, 12, 25, + 4, 6, 7, 9, @@ -149,9 +149,8 @@ ], "format-version": "0.1", "license": "CC-BY-4.0", - "release": "0.1.1", "name": "Histological Staining Area Quantification", - "readme": "# Histological Staining Area Quantification\n\n## Overview\nThis workflow quantifies stained tissue areas in brightfield histological images \nusing colour deconvolution and automated thresholding. It is designed for \n3-channel stainings compatible with the H-E-DAB (HED) colour space, such as \nMasson's Trichrome (MT) and Immunohistochemistry (IHC).\n\n## What does this workflow do?\n1. **Colour deconvolution** separates the input image into individual stain channels (HED).\n2. **Channel splitting and extraction** isolates the target stain channel (default: Channel 2).\n3. **Automated thresholding** (Li method) generates a binary mask of stained vs. unstained regions.\n4. **Feature extraction** quantifies staining area and intensity per sample.\n5. **Output collation** merges all per-sample results into a single tabular file.\n\n## Input data requirements\n- **Format:** TIFF\n- **Type:** Brightfield microscopy images\n- **Staining:** Compatible with HED colour deconvolution (e.g., Masson's Trichrome, IHC)\n- **Content:** Whole slide images or pre-cropped regions of interest (ROIs)\n- **Structure:** Dataset collection (list) \u2014 one image per sample\n\n> \u26a0\ufe0f Images must be pre-cropped to the region of interest before use.\n> The workflow does not perform ROI selection.\n\n## Output\nA tabular file (TSV) containing one row per sample with the following columns:\n- `sample_id` \u2014 sample identifier\n- `label` \u2014 pixel label (1 = stained region)\n- `mean_intensity` \u2014 mean pixel intensity within the stained region\n- `area` \u2014 total number of stained pixels\n- `area_filled` \u2014 stained area with internal holes filled\n- `total_area` \u2014 total pixel count of the input image (width \u00d7 height)\n- `percent_area` \u2014 staining area as percentage of total image area\n\n## Important notes\n- Verify that **Channel 2** corresponds to your stain of interest before running.\n This can be checked by inspecting the deconvolved image output.\n- The thresholding method is **Li**. If results are suboptimal, adjust the offset \n in the Threshold step.\n- The workflow processes images as a **collection**, enabling batch analysis \n of multiple samples in a single run.\n\n## Compatible stainings\n| Staining | Target channel |\n|----------|---------------|\n| Masson's Trichrome (MT) | Channel 2 (Eosin/collagen) |\n| Immunohistochemistry (IHC) | Channel 2 (DAB) |\n\n## Citation\nIf you use this workflow, please cite it via its WorkflowHub DOI.", + "readme": "# Histological Staining Area Quantification\n\n## Overview\nThis workflow quantifies stained tissue areas in brightfield histological images \nusing colour deconvolution and automated thresholding. It is designed for \n3-channel stainings compatible with the H-E-DAB (HED) colour space, such as \nMasson's Trichrome (MT) and Immunohistochemistry (IHC).\n\n## What does this workflow do?\n1. **Colour deconvolution** separates the input image into individual stain channels (HED).\n2. **Channel splitting and extraction** isolates the target stain channel (default: Channel 2).\n3. **Automated thresholding** (Li method) generates a binary mask of stained vs. unstained regions.\n4. **Feature extraction** quantifies staining area and intensity per sample.\n5. **Output collation** merges all per-sample results into a single tabular file.\n\n## Input data requirements\n- **Format:** TIFF\n- **Type:** Brightfield microscopy images\n- **Staining:** Compatible with HED colour deconvolution (e.g., Masson's Trichrome, IHC)\n- **Content:** Whole slide images or pre-cropped regions of interest (ROIs)\n- **Structure:** Dataset collection (list) — one image per sample\n\n> ⚠️ Images must be pre-cropped to the region of interest before use.\n> The workflow does not perform ROI selection.\n\n## Output\nA tabular file (TSV) containing one row per sample with the following columns:\n- `sample_id` — sample identifier\n- `label` — pixel label (1 = stained region)\n- `mean_intensity` — mean pixel intensity within the stained region\n- `area` — total number of stained pixels\n- `area_filled` — stained area with internal holes filled\n- `total_area` — total pixel count of the input image (width × height)\n- `percent_area` — staining area as percentage of total image area\n\n## Important notes\n- Verify that **Channel 2** corresponds to your stain of interest before running.\n This can be checked by inspecting the deconvolved image output.\n- The thresholding method is **Li**. If results are suboptimal, adjust the offset \n in the Threshold step.\n- The workflow processes images as a **collection**, enabling batch analysis \n of multiple samples in a single run.\n\n## Compatible stainings\n| Staining | Target channel |\n|----------|---------------|\n| Masson's Trichrome (MT) | Channel 2 (Eosin/collagen) |\n| Immunohistochemistry (IHC) | Channel 2 (DAB) |\n\n## Citation\nIf you use this workflow, please cite it via its WorkflowHub DOI.", "report": { "markdown": "# Histological Staining Area Quantification\n\n```galaxy\ninvocation_time()\n```\n\n---\n\n## Summary\n\nThis workflow is designed to quantify the area and intensity of a specific stain in brightfield histological images. It takes a collection of input images, applies H-E-DAB colour deconvolution to separate the target stain channel from the haematoxylin counterstain, then uses automated thresholding to segment positive-staining pixels. Per-sample measurements are collated into a single tabular output.\n\nCompatible staining types include immunohistochemistry (IHC) with a DAB chromogen and Masson's Trichrome (MT). The workflow expects RGB TIFF images — one region of interest (ROI) per collection element.\n\n```galaxy\nworkflow_image()\n```\n\n---\n\n## Input Images\n\nThe input to this workflow is a list collection of brightfield microscopy images. Each element should represent one region of interest from a tissue section. The images provided for this run are shown below.\n\n```galaxy\nvisualization(visualization_id=tiffviewer, input=\"ROI image for staining analysis\")\n```\n\n---\n\n## Staining Mask\n\nIf the run completed successfully, each input image will have been converted into a binary mask via colour deconvolution and automated thresholding. In this mask, **white pixels** represent regions classified as positively stained and **black pixels** represent background. This mask is what the quantification measurements are derived from.\n\n```galaxy\nvisualization(visualization_id=tiffviewer, output=\"Selected Stain Channel Thresholded\")\n```\n\n---\n\n## Results\n\nIf the workflow completed successfully, the table below shows per-sample staining measurements — one row per input image. The expected columns are described below.\n\n| Column | Description |\n|--------|-------------|\n| `sample_id` | Identifier derived from the input image filename |\n| `label` | Region label assigned by the thresholding step |\n| `mean_intensity` | Average pixel intensity within the detected region (lower = stronger stain, due to deconvolution inversion) |\n| `area` | Pixel count of the positively stained region |\n| `area_filled` | Stained area with internal holes filled |\n| `total_area` | Total pixel count of the input image (width × height) |\n| `percent_area` | Staining area as a percentage of total image area (`area / total_area × 100`) |\n\n```galaxy\nhistory_dataset_as_table(output=\"Tabular File: Staining Feature Results\", title=\"Staining Feature Results\")\n```\n\n```galaxy\nhistory_dataset_link(output=\"Tabular File: Staining Feature Results\", label=\"Download results (TSV)\")\n```\n\n---\n\n## Reproducibility\n\n```galaxy\nhistory_link()\n```\n\n```galaxy\nworkflow_license()\n```\n" }, @@ -317,7 +316,7 @@ }, "4": { "annotation": "", - "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_info/ip_imageinfo/5.7.1+galaxy1", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_info/ip_imageinfo/8.0.0+galaxy0", "errors": null, "id": 4, "input_connections": { @@ -340,16 +339,16 @@ "top": 974.2997227256178 }, "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_info/ip_imageinfo/5.7.1+galaxy1", + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_info/ip_imageinfo/8.0.0+galaxy0", "tool_shed_repository": { - "changeset_revision": "f8b4eada923c", + "changeset_revision": "e28851b24032", "name": "image_info", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu" }, "tool_state": "{\"input_file\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", "tool_uuid": null, - "tool_version": "5.7.1+galaxy1", + "tool_version": "8.0.0+galaxy0", "type": "tool", "uuid": "8ffc6557-6365-46b2-961e-28019975c4b9", "when": null, @@ -357,7 +356,7 @@ }, "5": { "annotation": "Splits multi-channel image into single-channel images. Extracts the target stain channel from the split image collection. Default index: 1 (Channel 2). Verify this corresponds to your stain of interest before running the workflow. The pixel data type is preserved.", - "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/split_image/ip_split_image/2.3.5+galaxy0", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/split_image/ip_split_image/2.3.5+galaxy1", "errors": null, "id": 5, "input_connections": { @@ -380,16 +379,16 @@ "top": 317.55286708436944 }, "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/split_image/ip_split_image/2.3.5+galaxy0", + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/split_image/ip_split_image/2.3.5+galaxy1", "tool_shed_repository": { - "changeset_revision": "390943df8a35", + "changeset_revision": "7191fd16988f", "name": "split_image", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu" }, - "tool_state": "{\"axis\": \"C\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"squeeze\": false, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_state": "{\"axis\": \"C\", \"count\": null, \"input\": {\"__class__\": \"ConnectedValue\"}, \"offset\": \"0\", \"squeeze\": false, \"step\": \"1\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", "tool_uuid": null, - "tool_version": "2.3.5+galaxy0", + "tool_version": "2.3.5+galaxy1", "type": "tool", "uuid": "32f6700c-df06-4bcc-a070-22d77b2d01c7", "when": null, @@ -700,12 +699,7 @@ "output_name": "output" } }, - "inputs": [ - { - "description": "runtime parameter for tool Analyze particles", - "name": "input" - } - ], + "inputs": [], "label": "Generate ROIs of stained region", "name": "Analyze particles", "outputs": [ @@ -922,7 +916,7 @@ }, "18": { "annotation": "", - "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.3", "errors": null, "id": 18, "input_connections": { @@ -945,16 +939,16 @@ "top": 628.6593583390311 }, "post_job_actions": {}, - "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2", + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.3", "tool_shed_repository": { - "changeset_revision": "d3c07d270a50", + "changeset_revision": "3e27acfa4830", "name": "collection_element_identifiers", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu" }, "tool_state": "{\"input_collection\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": 0, \"__rerun_remap_job_id__\": null}", "tool_uuid": null, - "tool_version": "0.0.2", + "tool_version": "0.0.3", "type": "tool", "uuid": "d1deeb80-d601-43a7-a6f8-0e8fac4db155", "when": null, @@ -1399,6 +1393,7 @@ "name:BrightfieldMicroscopy", "name:ColorDeconvolution" ], - "uuid": "68f8ddf9-c6c3-47a8-bb96-0ba8850ab24e", - "version": 43 -} + "uuid": "55358da3-746c-445b-aa4e-17980ebd8e47", + "version": 1, + "release": "0.1.2" +} \ No newline at end of file