annotate qupath_roi_splitter.py @ 2:7bee859bbd11 draft

planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
author galaxyp
date Thu, 11 Apr 2024 07:52:58 +0000
parents 064b53fd3131
children 24ccdcfbabac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
1 import argparse
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
2
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
3 import cv2
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
4 import geojson
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
5 import numpy as np
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
6 import pandas as pd
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
7
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
8
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
9 def draw_poly(input_df, input_img, col=(0, 0, 0), fill=False):
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
10 s = np.array(input_df)
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
11 if fill:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
12 output_img = cv2.fillPoly(input_img, pts=np.int32([s]), color=col)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
13 else:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
14 output_img = cv2.polylines(input_img, np.int32([s]), True, color=col, thickness=1)
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
15 return output_img
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
16
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
17
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
18 def draw_roi(input_roi, input_img, fill):
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
19 if len(input_roi["geometry"]["coordinates"]) == 1:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
20 # Polygon w/o holes
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
21 input_img = draw_poly(input_roi["geometry"]["coordinates"][0], input_img, fill=fill)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
22 else:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
23 first_roi = True
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
24 for sub_roi in input_roi["geometry"]["coordinates"]:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
25 # Polygon with holes
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
26 if not isinstance(sub_roi[0][0], list):
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
27 if first_roi:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
28 input_img = draw_poly(sub_roi, input_img, fill=fill)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
29 first_roi = False
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
30 else:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
31 # holes in ROI
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
32 input_img = draw_poly(sub_roi, input_img, col=(255, 255, 255), fill=fill)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
33 else:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
34 # MultiPolygon with holes
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
35 for sub_coord in sub_roi:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
36 if first_roi:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
37 input_img = draw_poly(sub_coord, input_img, fill=fill)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
38 first_roi = False
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
39 else:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
40 # holes in ROI
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
41 input_img = draw_poly(sub_coord, input_img, col=(255, 255, 255), fill=fill)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
42
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
43 return input_img
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
44
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
45
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
46 def split_qupath_roi(in_roi):
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
47 with open(in_roi) as file:
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
48 qupath_roi = geojson.load(file)
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
49
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
50 # HE dimensions
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
51 dim_plt = [qupath_roi["dim"]["width"], qupath_roi["dim"]["height"]]
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
52
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
53 tma_name = qupath_roi["name"]
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
54 cell_types = [ct.rsplit(" - ", 1)[-1] for ct in qupath_roi["featureNames"]]
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
55
1
064b53fd3131 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit e08a178a7c35c0673f6bfc163614a8fc730ffc6c
galaxyp
parents: 0
diff changeset
56 for cell_type in cell_types:
064b53fd3131 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit e08a178a7c35c0673f6bfc163614a8fc730ffc6c
galaxyp
parents: 0
diff changeset
57 # create numpy array with white background
064b53fd3131 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit e08a178a7c35c0673f6bfc163614a8fc730ffc6c
galaxyp
parents: 0
diff changeset
58 img = np.zeros((dim_plt[1], dim_plt[0], 3), dtype="uint8")
064b53fd3131 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit e08a178a7c35c0673f6bfc163614a8fc730ffc6c
galaxyp
parents: 0
diff changeset
59 img.fill(255)
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
60
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
61 for i, roi in enumerate(qupath_roi["features"]):
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
62 if not args.all:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
63 if "classification" not in roi["properties"]:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
64 continue
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
65 if roi["properties"]["classification"]["name"] == cell_type:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
66 img = draw_roi(roi, img, args.fill)
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
67 else:
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
68 img = draw_roi(roi, img, args.fill)
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
69
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
70 # get all black pixel
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
71 coords_arr = np.column_stack(np.where(img == (0, 0, 0)))
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
72
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
73 # remove duplicated rows
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
74 coords_arr_xy = coords_arr[coords_arr[:, 2] == 0]
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
75
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
76 # remove last column
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
77 coords_arr_xy = np.delete(coords_arr_xy, 2, axis=1)
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
78
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
79 # to pandas and rename columns to x and y
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
80 coords_df = pd.DataFrame(coords_arr_xy, columns=['y', 'x'])
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
81
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
82 # reorder columns
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
83 coords_df = coords_df[['x', 'y']]
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
84
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
85 # drop duplicates
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
86 coords_df = coords_df.drop_duplicates(
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
87 subset=['x', 'y'],
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
88 keep='last').reset_index(drop=True)
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
89
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
90 coords_df.to_csv("{}_{}.txt".format(tma_name, cell_type), sep='\t', index=False)
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
91
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
92
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
93 if __name__ == "__main__":
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
94 parser = argparse.ArgumentParser(description="Split ROI coordinates of QuPath TMA annotation by cell type (classfication)")
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
95 parser.add_argument("--qupath_roi", default=False, help="Input QuPath annotation (GeoJSON file)")
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
96 parser.add_argument("--fill", action="store_true", required=False, help="Fill pixels in ROIs")
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
97 parser.add_argument('--version', action='version', version='%(prog)s 0.1.0')
2
7bee859bbd11 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit 7391296e0c7c8d48b42a129d154b50b29fd41737
galaxyp
parents: 1
diff changeset
98 parser.add_argument("--all", action="store_true", required=False, help="Extracts all ROIs")
0
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
99 args = parser.parse_args()
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
100
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
101 if args.qupath_roi:
b5e9cebb27e3 planemo upload for repository hhttps://github.com/npinter/ROIsplitter commit cdf3e9652b10c7a0b179202129a797e32fd95909
galaxyp
parents:
diff changeset
102 split_qupath_roi(args.qupath_roi)