changeset 5:17c54a716a5b draft

planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit e3d24f3dc7a9812f8fa4447c9391e5bd3b5d4dc6
author galaxyp
date Tue, 30 Jul 2024 12:59:11 +0000
parents 9f136ebf73ac
children 6a8cf86fd3b7
files qupath_roi_splitter.py qupath_roi_splitter.xml
diffstat 2 files changed, 20 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/qupath_roi_splitter.py	Fri Jul 19 14:33:40 2024 +0000
+++ b/qupath_roi_splitter.py	Tue Jul 30 12:59:11 2024 +0000
@@ -22,15 +22,20 @@
     else:
         coord_index = 0
         for sub_roi in input_roi["geometry"]["coordinates"]:
-            # Polygon with holes or MultiPolygon
-            if not isinstance(sub_roi[0][0], list):
-                all_coords.extend(collect_coords(sub_roi, feature_index, coord_index))
-                coord_index += len(sub_roi)
+            if len(sub_roi) == 2:
+                # Special case: LMD data
+                all_coords.extend(collect_coords([sub_roi], feature_index, coord_index))
+                coord_index += 1
             else:
-                # MultiPolygon with holes
-                for sub_coord in sub_roi:
-                    all_coords.extend(collect_coords(sub_coord, feature_index, coord_index))
-                    coord_index += len(sub_coord)
+                # Polygon with holes or MultiPolygon
+                if not isinstance(sub_roi[0][0], list):
+                    all_coords.extend(collect_coords(sub_roi, feature_index, coord_index))
+                    coord_index += len(sub_roi)
+                else:
+                    # MultiPolygon with holes
+                    for sub_coord in sub_roi:
+                        all_coords.extend(collect_coords(sub_coord, feature_index, coord_index))
+                        coord_index += len(sub_coord)
     return all_coords
 
 
@@ -103,7 +108,7 @@
     parser = argparse.ArgumentParser(description="Split ROI coordinates of QuPath TMA annotation by cell type (classification)")
     parser.add_argument("--qupath_roi", default=False, help="Input QuPath annotation (GeoJSON file)")
     parser.add_argument("--fill", action="store_true", required=False, help="Fill pixels in ROIs (order of coordinates will be lost)")
-    parser.add_argument('--version', action='version', version='%(prog)s 0.3.0')
+    parser.add_argument('--version', action='version', version='%(prog)s 0.3.1')
     parser.add_argument("--all", action="store_true", required=False, help="Extracts all ROIs")
     parser.add_argument("--img", action="store_true", required=False, help="Generates image of ROIs")
     args = parser.parse_args()
--- a/qupath_roi_splitter.xml	Fri Jul 19 14:33:40 2024 +0000
+++ b/qupath_roi_splitter.xml	Tue Jul 30 12:59:11 2024 +0000
@@ -1,7 +1,7 @@
 <tool id="qupath_roi_splitter" name="QuPath ROI Splitter" version="@VERSION@+galaxy@VERSION_SUFFIX@">
     <description>Split ROI coordinates of QuPath TMA annotation by cell type (classification)</description>
     <macros>
-        <token name="@VERSION@">0.3.0</token>
+        <token name="@VERSION@">0.3.1</token>
         <token name="@VERSION_SUFFIX@">0</token>
     </macros>
     <requirements>
@@ -21,7 +21,9 @@
         #end for
         mkdir out
         && mv *.txt out/
+        #if $optional.img
         && mv *.png out/
+        #end if
     ]]></command>
     <inputs>
         <param name="input_collection" type="data_collection" format="geojson" label="Input QuPath annotation" help="Collection containing GeoJSON files"/>
@@ -33,14 +35,15 @@
     </inputs>
     <outputs>
         <collection name="output_txts" type="list" label="${tool.name} on ${on_string}: ROI data">
-            <discover_datasets pattern="(?P&lt;name&gt;.*\.txt)" directory="out" visible="false" ext="txt"/>
+            <discover_datasets pattern="(?P&lt;name&gt;.*\.txt)" directory="out" visible="false" ext="tabular"/>
         </collection>
         <collection name="output_imgs" type="list" label="${tool.name} on ${on_string}: Images of ROIs">
+            <filter>optional['img']</filter>
             <discover_datasets pattern="(?P&lt;name&gt;.*\.png)" directory="out" visible="false" ext="png"/>
         </collection>
     </outputs>
     <tests>
-        <test>
+        <test expect_num_outputs="2">
             <param name="input_collection">
                 <collection type="list">
                     <element name="annotations_TMA_E-5.geojson" value="annotations_TMA_E-5.geojson" />