Mercurial > repos > galaxyp > qupath_roi_splitter
changeset 3:24ccdcfbabac draft
planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 00029e8a3ee400f69a6dbe9e556ec9c27c6979cb
author | galaxyp |
---|---|
date | Thu, 25 Apr 2024 15:13:22 +0000 |
parents | 7bee859bbd11 |
children | 9f136ebf73ac |
files | qupath_roi_splitter.py qupath_roi_splitter.xml |
diffstat | 2 files changed, 29 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/qupath_roi_splitter.py Thu Apr 11 07:52:58 2024 +0000 +++ b/qupath_roi_splitter.py Thu Apr 25 15:13:22 2024 +0000 @@ -25,20 +25,22 @@ # Polygon with holes if not isinstance(sub_roi[0][0], list): if first_roi: - input_img = draw_poly(sub_roi, input_img, fill=fill) first_roi = False + col = (0, 0, 0) else: # holes in ROI - input_img = draw_poly(sub_roi, input_img, col=(255, 255, 255), fill=fill) + col = (255, 255, 255) if not fill else (0, 0, 0) + input_img = draw_poly(sub_roi, input_img, col=col, fill=fill) else: # MultiPolygon with holes for sub_coord in sub_roi: if first_roi: - input_img = draw_poly(sub_coord, input_img, fill=fill) first_roi = False + col = (0, 0, 0) else: # holes in ROI - input_img = draw_poly(sub_coord, input_img, col=(255, 255, 255), fill=fill) + col = (255, 255, 255) if not fill else (0, 0, 0) + input_img = draw_poly(sub_coord, input_img, col=col, fill=fill) return input_img @@ -89,6 +91,10 @@ coords_df.to_csv("{}_{}.txt".format(tma_name, cell_type), sep='\t', index=False) + # img save + if args.img: + cv2.imwrite("{}_{}.png".format(tma_name, cell_type), img) + if __name__ == "__main__": parser = argparse.ArgumentParser(description="Split ROI coordinates of QuPath TMA annotation by cell type (classfication)") @@ -96,6 +102,7 @@ parser.add_argument("--fill", action="store_true", required=False, help="Fill pixels in ROIs") parser.add_argument('--version', action='version', version='%(prog)s 0.1.0') 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() if args.qupath_roi:
--- a/qupath_roi_splitter.xml Thu Apr 11 07:52:58 2024 +0000 +++ b/qupath_roi_splitter.xml Thu Apr 25 15:13:22 2024 +0000 @@ -1,14 +1,14 @@ <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.2.0</token> + <token name="@VERSION@">0.2.1</token> <token name="@VERSION_SUFFIX@">0</token> </macros> <requirements> <requirement type="package" version="3.0.1">geojson</requirement> <requirement type="package" version="1.24.2">numpy</requirement> <requirement type="package" version="4.7.0">opencv</requirement> - <requirement type="package" version="2.0.0">pandas</requirement> + <requirement type="package" version="2.0.0">pandas</requirement> </requirements> <command detect_errors="exit_code"><![CDATA[ #for $input in $input_collection @@ -16,21 +16,27 @@ --qupath_roi '$input' $optional.fill $optional.all + $optional.img && #end for mkdir out && mv *.txt out/ + && mv *.png out/ ]]></command> <inputs> <param name="input_collection" type="data_collection" format="geojson" label="Input QuPath annotation" help="Collection containing GeoJSON files"/> <section name="optional" title="Optional"> <param name="fill" type="boolean" truevalue="--fill" falsevalue="" checked="false" label="Fill ROIs" help="Fill pixels in ROIs"/> <param name="all" type="boolean" truevalue="--all" falsevalue="" checked="false" label="Extract all" help="Extracts all ROIs"/> + <param name="img" type="boolean" truevalue="--img" falsevalue="" checked="false" label="Generate image" help="Generates image from ROIs"/> </section> </inputs> <outputs> <collection name="output_txts" type="list" label="${tool.name} on ${on_string}: ROI data"> - <discover_datasets pattern="__name_and_ext__" directory="out" visible="false" format="txt"/> + <discover_datasets pattern="(?P<name>.*\.txt)" directory="out" visible="false" ext="txt"/> + </collection> + <collection name="output_imgs" type="list" label="${tool.name} on ${on_string}: Images of ROIs"> + <discover_datasets pattern="(?P<name>.*\.png)" directory="out" visible="false" ext="png"/> </collection> </outputs> <tests> @@ -43,9 +49,10 @@ </param> <section name="optional"> <param name="fill" value="true"/> + <param name="img" value="true"/> </section> <output_collection name="output_txts" type="list" count="4"> - <element name="F-5_Stroma"> + <element name="F-5_Stroma.txt"> <assert_contents> <has_text text="x"/> <has_text text="y"/> @@ -54,6 +61,13 @@ </assert_contents> </element> </output_collection> + <output_collection name="output_imgs" type="list" count="4"> + <element name="E-5_Tumor.png"> + <assert_contents> + <has_size value="1309478"/> + </assert_contents> + </element> + </output_collection> </test> </tests> <help><![CDATA[