annotate detection_viz.py @ 0:f5f85c63737c draft

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
author thomaswollmann
date Wed, 12 Dec 2018 04:35:39 -0500
parents
children 69218d7300e5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
1 import argparse
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
2 import sys
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
3 import os
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
4 import csv
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
5
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
6 import matplotlib
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
7 matplotlib.use('Agg')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
8 import matplotlib.pyplot as plt
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
9
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
10 import skimage.io
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
11
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
12 def plot_circles(file_name, ax, color, stroke_size, radius):
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
13 resfile = open(file_name, 'rb')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
14 rd = csv.reader(resfile, delimiter=',')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
15 for row in rd:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
16 circ = plt.Circle((int(row[1]), int(row[0])), lw=stroke_size, radius=radius, color=color, fill=False)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
17 ax.add_patch(circ)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
18 resfile.close()
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
19
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
20 def detection_viz(input_file, output_file, tp=None, fn=None, fp=None, stroke_size=3, circle_radius=50):
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
21 img = skimage.io.imread(input_file)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
22
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
23 fig = plt.figure(figsize=(40, 40))
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
24 ax = fig.add_axes([0, 0, 1, 1])
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
25 ax.axis('off')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
26
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
27 plt.imshow(img)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
28 if tp is not None:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
29 plot_circles(tp, ax, '#00FF00', stroke_size, circle_radius)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
30 if fn is not None:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
31 plot_circles(fn, ax, 'red', stroke_size, circle_radius)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
32 if fp is not None:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
33 plot_circles(fp, ax, 'darkorange', stroke_size, circle_radius)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
34
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
35 fig.canvas.print_png("tmp.png", dpi=1800)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
36 os.rename("tmp.png", output_file)
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
37
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
38 if __name__ == "__main__":
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
39 parser = argparse.ArgumentParser()
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
40 parser.add_argument('input_file', type=argparse.FileType('r'), help='original file')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
41 # output file should not be of type argparse.FileType('w') sine it is created immediately in this case which leads to an error in renaming
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
42 parser.add_argument('out_file_str', type=str, help='string of output file name')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
43 parser.add_argument('--tp', dest='input_tp_file', type=argparse.FileType('r'), help='input TP file')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
44 parser.add_argument('--fn', dest='input_fn_file', type=argparse.FileType('r'), help='input FN file')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
45 parser.add_argument('--fp', dest='input_fp_file', type=argparse.FileType('r'), help='input FP file')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
46 parser.add_argument('--stroke_size', dest='thickness', default=3, type=float, help='stroke thickness')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
47 parser.add_argument('--circle_radius', dest='circle_radius', type=float, default=50, help='circle radius')
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
48 args = parser.parse_args()
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
49
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
50 tp=None
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
51 if args.input_tp_file:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
52 tp=args.input_tp_file.name
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
53 fn=None
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
54 if args.input_fn_file:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
55 fn=args.input_fn_file.name
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
56 fp=None
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
57 if args.input_fp_file:
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
58 fp=args.input_fp_file.name
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
59
f5f85c63737c planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/detection_viz/ commit a0ba841e8b3aee770a3243155bedfac0adf9a5a6
thomaswollmann
parents:
diff changeset
60 detection_viz(args.input_file.name, args.out_file_str, tp=tp, fn=fn, fp=fp, stroke_size=args.thickness, circle_radius=args.circle_radius)