Mercurial > repos > rv43 > tomo
annotate msnc_tools.py @ 48:059819ea1f0e draft
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
| author | rv43 | 
|---|---|
| date | Wed, 27 Apr 2022 17:28:26 +0000 | 
| parents | ef5c2f7b49ec | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python3 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
3 # -*- coding: utf-8 -*- | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
4 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
5 Created on Mon Dec 6 15:36:22 2021 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
6 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
7 @author: rv43 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
8 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
9 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
10 import logging | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
11 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
12 import os | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
13 import sys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
14 import re | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
15 import yaml | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
16 import h5py | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
17 try: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
18 import pyinputplus as pyip | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
19 except: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
20 pass | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
21 import numpy as np | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
22 import imageio as img | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
23 import matplotlib.pyplot as plt | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
24 from time import time | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
25 from ast import literal_eval | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
26 try: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
27 from lmfit.models import StepModel, RectangleModel | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
28 except: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
29 pass | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
30 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
31 def depth_list(L): return isinstance(L, list) and max(map(depth_list, L))+1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
32 def depth_tuple(T): return isinstance(T, tuple) and max(map(depth_tuple, T))+1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
33 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
34 def is_int(v, v_min=None, v_max=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
35 """Value is an integer in range v_min <= v <= v_max. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
36 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
37 if not isinstance(v, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
38 return False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
39 if (v_min is not None and v < v_min) or (v_max is not None and v > v_max): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
40 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
41 return True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
42 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
43 def is_num(v, v_min=None, v_max=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
44 """Value is a number in range v_min <= v <= v_max. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
45 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
46 if not isinstance(v, (int,float)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
47 return False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
48 if (v_min is not None and v < v_min) or (v_max is not None and v > v_max): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
49 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
50 return True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
51 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
52 def is_index(v, v_min=0, v_max=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
53 """Value is an array index in range v_min <= v < v_max. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
54 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
55 if not isinstance(v, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
56 return False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
57 if v < v_min or (v_max is not None and v >= v_max): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
58 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
59 return True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
60 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
61 def is_index_range(v, v_min=0, v_max=None): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
62 """Value is an array index range in range v_min <= v[0] <= v[1] <= v_max. | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
63 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
64 if not (isinstance(v, list) and len(v) == 2 and isinstance(v[0], int) and | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
65 isinstance(v[1], int)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
66 return False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
67 if not 0 <= v[0] <= v[1] or (v_max is not None and v[1] > v_max): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
68 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
69 return True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
70 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
71 def illegal_value(name, value, location=None, exit_flag=False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
72 if not isinstance(location, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
73 location = '' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
74 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
75 location = f'in {location} ' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
76 if isinstance(name, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
77 logging.error(f'Illegal value for {name} {location}({value}, {type(value)})') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
78 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
79 logging.error(f'Illegal value {location}({value}, {type(value)})') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
80 if exit_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
81 exit(1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
82 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
83 def get_trailing_int(string): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
84 indexRegex = re.compile(r'\d+$') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
85 mo = indexRegex.search(string) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
86 if mo is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
87 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
88 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
89 return int(mo.group()) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
90 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
91 def findImageFiles(path, filetype, name=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
92 if isinstance(name, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
93 name = f' {name} ' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
94 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
95 name = ' ' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
96 # Find available index range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
97 if filetype == 'tif': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
98 if not isinstance(path, str) and not os.path.isdir(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
99 illegal_value('path', path, 'findImageRange') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
100 return -1, 0, [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
101 indexRegex = re.compile(r'\d+') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
102 # At this point only tiffs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
103 files = sorted([f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f)) and | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
104 f.endswith('.tif') and indexRegex.search(f)]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
105 num_imgs = len(files) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
106 if num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
107 logging.warning('No available'+name+'files') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
108 return -1, 0, [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
109 first_index = indexRegex.search(files[0]).group() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
110 last_index = indexRegex.search(files[-1]).group() | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
111 if first_index is None or last_index is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
112 logging.error('Unable to find correctly indexed'+name+'images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
113 return -1, 0, [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
114 first_index = int(first_index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
115 last_index = int(last_index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
116 if num_imgs != last_index-first_index+1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
117 logging.error('Non-consecutive set of indices for'+name+'images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
118 return -1, 0, [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
119 paths = [os.path.join(path, f) for f in files] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
120 elif filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
121 if not isinstance(path, str) or not os.path.isfile(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
122 illegal_value('path', path, 'findImageRange') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
123 return -1, 0, [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
124 # At this point only h5 in alamo2 detector style | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
125 first_index = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
126 with h5py.File(path, 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
127 num_imgs = f['entry/instrument/detector/data'].shape[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
128 last_index = num_imgs-1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
129 paths = [path] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
130 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
131 illegal_value('filetype', filetype, 'findImageRange') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
132 return -1, 0, [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
133 logging.debug('\nNumber of available'+name+f'images: {num_imgs}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
134 logging.debug('Index range of available'+name+f'images: [{first_index}, '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
135 f'{last_index}]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
136 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
137 return first_index, num_imgs, paths | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
138 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
139 def selectImageRange(first_index, offset, num_imgs, name=None, num_required=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
140 if isinstance(name, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
141 name = f' {name} ' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
142 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
143 name = ' ' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
144 # Check existing values | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
145 use_input = 'no' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
146 if (is_int(first_index, 0) and is_int(offset, 0) and is_int(num_imgs, 1)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
147 if offset < 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
148 use_input = pyip.inputYesNo('\nCurrent'+name+f'first index = {first_index}, '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
149 'use this value ([y]/n)? ', blank=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
150 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
151 use_input = pyip.inputYesNo('\nCurrent'+name+'first index/offset = '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
152 f'{first_index}/{offset}, use these values ([y]/n)? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
153 blank=True) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
154 if num_required is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
155 if use_input != 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
156 use_input = pyip.inputYesNo('Current number of'+name+'images = '+ | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
157 f'{num_imgs}, use this value ([y]/n)? ', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
158 blank=True) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
159 if use_input != 'no': | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
160 return first_index, offset, num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
161 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
162 # Check range against requirements | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
163 if num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
164 logging.warning('No available'+name+'images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
165 return -1, -1, 0 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
166 if num_required is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
167 if num_imgs == 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
168 return first_index, 0, 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
169 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
170 if not is_int(num_required, 1): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
171 illegal_value('num_required', num_required, 'selectImageRange') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
172 return -1, -1, 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
173 if num_imgs < num_required: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
174 logging.error('Unable to find the required'+name+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
175 f'images ({num_imgs} out of {num_required})') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
176 return -1, -1, 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
177 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
178 # Select index range | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
179 print('\nThe number of available'+name+f'images is {num_imgs}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
180 if num_required is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
181 last_index = first_index+num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
182 use_all = f'Use all ([{first_index}, {last_index}])' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
183 pick_offset = 'Pick a first index offset and a number of images' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
184 pick_bounds = 'Pick the first and last index' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
185 menuchoice = pyip.inputMenu([use_all, pick_offset, pick_bounds], numbered=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
186 if menuchoice == use_all: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
187 offset = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
188 elif menuchoice == pick_offset: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
189 offset = pyip.inputInt('Enter the first index offset'+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
190 f' [0, {last_index-first_index}]: ', min=0, max=last_index-first_index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
191 first_index += offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
192 if first_index == last_index: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
193 num_imgs = 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
194 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
195 num_imgs = pyip.inputInt(f'Enter the number of images [1, {num_imgs-offset}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
196 min=1, max=num_imgs-offset) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
197 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
198 offset = pyip.inputInt(f'Enter the first index [{first_index}, {last_index}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
199 min=first_index, max=last_index)-first_index | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
200 first_index += offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
201 num_imgs = pyip.inputInt(f'Enter the last index [{first_index}, {last_index}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
202 min=first_index, max=last_index)-first_index+1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
203 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
204 use_all = f'Use ([{first_index}, {first_index+num_required-1}])' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
205 pick_offset = 'Pick the first index offset' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
206 menuchoice = pyip.inputMenu([use_all, pick_offset], numbered=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
207 offset = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
208 if menuchoice == pick_offset: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
209 offset = pyip.inputInt('Enter the first index offset'+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
210 f'[0, {num_imgs-num_required}]: ', min=0, max=num_imgs-num_required) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
211 first_index += offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
212 num_imgs = num_required | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
213 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
214 return first_index, offset, num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
215 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
216 def loadImage(f, img_x_bounds=None, img_y_bounds=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
217 """Load a single image from file. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
218 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
219 if not os.path.isfile(f): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
220 logging.error(f'Unable to load {f}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
221 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
222 img_read = img.imread(f) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
223 if not img_x_bounds: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
224 img_x_bounds = [0, img_read.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
225 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
226 if (not isinstance(img_x_bounds, list) or len(img_x_bounds) != 2 or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
227 not (0 <= img_x_bounds[0] < img_x_bounds[1] <= img_read.shape[0])): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
228 logging.error(f'inconsistent row dimension in {f}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
229 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
230 if not img_y_bounds: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
231 img_y_bounds = [0, img_read.shape[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
232 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
233 if (not isinstance(img_y_bounds, list) or len(img_y_bounds) != 2 or | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
234 not (0 <= img_y_bounds[0] < img_y_bounds[1] <= img_read.shape[1])): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
235 logging.error(f'inconsistent column dimension in {f}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
236 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
237 return img_read[img_x_bounds[0]:img_x_bounds[1],img_y_bounds[0]:img_y_bounds[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
238 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
239 def loadImageStack(files, filetype, img_offset, num_imgs, num_img_skip=0, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
240 img_x_bounds=None, img_y_bounds=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
241 """Load a set of images and return them as a stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
242 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
243 logging.debug(f'img_offset = {img_offset}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
244 logging.debug(f'num_imgs = {num_imgs}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
245 logging.debug(f'num_img_skip = {num_img_skip}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
246 logging.debug(f'\nfiles:\n{files}\n') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
247 img_stack = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
248 if filetype == 'tif': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
249 img_read_stack = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
250 i = 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
251 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
252 for f in files[img_offset:img_offset+num_imgs:num_img_skip+1]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
253 if not i%20: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
254 logging.info(f' loading {i}/{num_imgs}: {f}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
255 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
256 logging.debug(f' loading {i}/{num_imgs}: {f}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
257 img_read = loadImage(f, img_x_bounds, img_y_bounds) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
258 img_read_stack.append(img_read) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
259 i += num_img_skip+1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
260 img_stack = np.stack([img_read for img_read in img_read_stack]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
261 logging.info(f'... done in {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
262 logging.debug(f'img_stack shape = {np.shape(img_stack)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
263 del img_read_stack, img_read | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
264 elif filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
265 if not isinstance(files[0], str) and not os.path.isfile(files[0]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
266 illegal_value('files[0]', files[0], 'loadImageStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
267 return img_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
268 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
269 logging.info(f'Loading {files[0]}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
270 with h5py.File(files[0], 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
271 shape = f['entry/instrument/detector/data'].shape | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
272 if len(shape) != 3: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
273 logging.error(f'inconsistent dimensions in {files[0]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
274 if not img_x_bounds: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
275 img_x_bounds = [0, shape[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
276 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
277 if (not isinstance(img_x_bounds, list) or len(img_x_bounds) != 2 or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
278 not (0 <= img_x_bounds[0] < img_x_bounds[1] <= shape[1])): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
279 logging.error(f'inconsistent row dimension in {files[0]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
280 if not img_y_bounds: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
281 img_y_bounds = [0, shape[2]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
282 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
283 if (not isinstance(img_y_bounds, list) or len(img_y_bounds) != 2 or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
284 not (0 <= img_y_bounds[0] < img_y_bounds[1] <= shape[2])): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
285 logging.error(f'inconsistent column dimension in {files[0]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
286 img_stack = f.get('entry/instrument/detector/data')[ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
287 img_offset:img_offset+num_imgs:num_img_skip+1, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
288 img_x_bounds[0]:img_x_bounds[1],img_y_bounds[0]:img_y_bounds[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
289 logging.info(f'... done in {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
290 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
291 illegal_value('filetype', filetype, 'findImageRange') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
292 return img_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
293 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
294 def combine_tiffs_in_h5(files, num_imgs, h5_filename): | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
295 img_stack = loadImageStack(files, 'tif', 0, num_imgs) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
296 with h5py.File(h5_filename, 'w') as f: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
297 f.create_dataset('entry/instrument/detector/data', data=img_stack) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
298 del img_stack | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
299 return [h5_filename] | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
300 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
301 def clearFig(title): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
302 if not isinstance(title, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
303 illegal_value('title', title, 'clearFig') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
304 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
305 plt.close(fig=re.sub(r"\s+", '_', title)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
306 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
307 def quickImshow(a, title=None, path=None, name=None, save_fig=False, save_only=False, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
308 clear=True, extent=None, show_grid=False, grid_color='w', grid_linewidth=1, **kwargs): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
309 if title is not None and not isinstance(title, str): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
310 illegal_value('title', title, 'quickImshow') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
311 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
312 if path is not None and not isinstance(path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
313 illegal_value('path', path, 'quickImshow') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
314 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
315 if not isinstance(save_fig, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
316 illegal_value('save_fig', save_fig, 'quickImshow') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
317 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
318 if not isinstance(save_only, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
319 illegal_value('save_only', save_only, 'quickImshow') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
320 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
321 if not isinstance(clear, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
322 illegal_value('clear', clear, 'quickImshow') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
323 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
324 if not title: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
325 title='quick_imshow' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
326 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
327 title = re.sub(r"\s+", '_', title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
328 if name is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
329 if path is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
330 path = f'{title}.png' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
331 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
332 path = f'{path}/{title}.png' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
333 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
334 if path is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
335 path = name | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
336 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
337 path = f'{path}/{name}' | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
338 if extent is None: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
339 extent = (0, a.shape[1], a.shape[0], 0) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
340 if clear: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
341 plt.close(fig=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
342 if save_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
343 plt.figure(title) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
344 plt.imshow(a, extent=extent, **kwargs) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
345 if show_grid: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
346 ax = plt.gca() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
347 ax.grid(color=grid_color, linewidth=grid_linewidth) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
348 if title != 'quick_imshow': | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
349 plt.title = title | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
350 plt.savefig(path) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
351 plt.close(fig=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
352 #plt.imsave(f'{title}.png', a, **kwargs) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
353 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
354 plt.ion() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
355 plt.figure(title) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
356 plt.imshow(a, extent=extent, **kwargs) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
357 if show_grid: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
358 ax = plt.gca() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
359 ax.grid(color=grid_color, linewidth=grid_linewidth) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
360 if title != 'quick_imshow': | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
361 plt.title = title | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
362 if save_fig: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
363 plt.savefig(path) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
364 plt.pause(1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
365 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
366 def quickPlot(*args, title=None, path=None, name=None, save_fig=False, save_only=False, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
367 clear=True, show_grid=False, **kwargs): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
368 if title is not None and not isinstance(title, str): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
369 illegal_value('title', title, 'quickPlot') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
370 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
371 if path is not None and not isinstance(path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
372 illegal_value('path', path, 'quickPlot') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
373 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
374 if not isinstance(save_fig, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
375 illegal_value('save_fig', save_fig, 'quickPlot') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
376 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
377 if not isinstance(save_only, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
378 illegal_value('save_only', save_only, 'quickPlot') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
379 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
380 if not isinstance(clear, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
381 illegal_value('clear', clear, 'quickPlot') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
382 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
383 if not title: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
384 title = 'quick_plot' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
385 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
386 title = re.sub(r"\s+", '_', title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
387 if name is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
388 if path is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
389 path = f'{title}.png' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
390 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
391 path = f'{path}/{title}.png' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
392 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
393 if path is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
394 path = name | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
395 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
396 path = f'{path}/{name}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
397 if clear: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
398 plt.close(fig=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
399 if save_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
400 plt.figure(title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
401 if depth_tuple(args) > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
402 for y in args: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
403 plt.plot(*y, **kwargs) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
404 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
405 plt.plot(*args, **kwargs) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
406 if show_grid: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
407 ax = plt.gca() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
408 ax.grid(color='k')#, linewidth=1) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
409 if title != 'quick_plot': | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
410 plt.title = title | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
411 plt.savefig(path) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
412 plt.close(fig=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
413 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
414 plt.ion() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
415 plt.figure(title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
416 if depth_tuple(args) > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
417 for y in args: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
418 plt.plot(*y, **kwargs) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
419 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
420 plt.plot(*args, **kwargs) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
421 if show_grid: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
422 ax = plt.gca() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
423 ax.grid(color='k')#, linewidth=1) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
424 if title != 'quick_plot': | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
425 plt.title = title | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
426 if save_fig: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
427 plt.savefig(path) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
428 plt.pause(1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
429 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
430 def selectArrayBounds(a, x_low=None, x_upp=None, num_x_min=None, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
431 title='select array bounds'): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
432 """Interactively select the lower and upper data bounds for a numpy array. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
433 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
434 if not isinstance(a, np.ndarray) or a.ndim != 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
435 logging.error('Illegal array type or dimension in selectArrayBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
436 return None | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
437 x_low_save = x_low | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
438 x_upp_save = x_upp | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
439 num_x_min_save = num_x_min | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
440 if num_x_min is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
441 num_x_min = 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
442 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
443 if num_x_min < 2 or num_x_min > a.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
444 logging.warning('Illegal input for num_x_min in selectArrayBounds, input ignored') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
445 num_x_min = 1 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
446 if x_low is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
447 x_min = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
448 x_max = a.size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
449 x_low_max = a.size-num_x_min | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
450 while True: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
451 quickPlot(range(x_min, x_max), a[x_min:x_max], title=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
452 zoom_flag = pyip.inputInt('Set lower data bound (0) or zoom in (1)?: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
453 min=0, max=1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
454 if zoom_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
455 x_min = pyip.inputInt(f' Set lower zoom index [0, {x_low_max}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
456 min=0, max=x_low_max) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
457 x_max = pyip.inputInt(f' Set upper zoom index [{x_min+1}, {x_low_max+1}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
458 min=x_min+1, max=x_low_max+1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
459 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
460 x_low = pyip.inputInt(f' Set lower data bound [0, {x_low_max}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
461 min=0, max=x_low_max) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
462 break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
463 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
464 if not is_int(x_low, 0, a.size-num_x_min): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
465 illegal_value('x_low', x_low, 'selectArrayBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
466 return None | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
467 if x_upp is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
468 x_min = x_low+num_x_min | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
469 x_max = a.size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
470 x_upp_min = x_min | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
471 while True: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
472 quickPlot(range(x_min, x_max), a[x_min:x_max], title=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
473 zoom_flag = pyip.inputInt('Set upper data bound (0) or zoom in (1)?: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
474 min=0, max=1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
475 if zoom_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
476 x_min = pyip.inputInt(f' Set upper zoom index [{x_upp_min}, {a.size-1}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
477 min=x_upp_min, max=a.size-1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
478 x_max = pyip.inputInt(f' Set upper zoom index [{x_min+1}, {a.size}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
479 min=x_min+1, max=a.size) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
480 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
481 x_upp = pyip.inputInt(f' Set upper data bound [{x_upp_min}, {a.size}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
482 min=x_upp_min, max=a.size) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
483 break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
484 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
485 if not is_int(x_upp, x_low+num_x_min, a.size): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
486 illegal_value('x_upp', x_upp, 'selectArrayBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
487 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
488 bounds = [x_low, x_upp] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
489 print(f'lower bound = {x_low} (inclusive)\nupper bound = {x_upp} (exclusive)]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
490 #quickPlot(range(bounds[0], bounds[1]), a[bounds[0]:bounds[1]], title=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
491 quickPlot((range(a.size), a), ([bounds[0], bounds[0]], [a.min(), a.max()], 'r-'), | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
492 ([bounds[1], bounds[1]], [a.min(), a.max()], 'r-'), title=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
493 if pyip.inputYesNo('Accept these bounds ([y]/n)?: ', blank=True) == 'no': | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
494 bounds = selectArrayBounds(a, x_low_save, x_upp_save, num_x_min_save, title=title) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
495 return bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
496 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
497 def selectImageBounds(a, axis, low=None, upp=None, num_min=None, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
498 title='select array bounds'): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
499 """Interactively select the lower and upper data bounds for a 2D numpy array. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
500 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
501 if not isinstance(a, np.ndarray) or a.ndim != 2: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
502 logging.error('Illegal array type or dimension in selectImageBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
503 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
504 if axis < 0 or axis >= a.ndim: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
505 illegal_value('axis', axis, 'selectImageBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
506 return None | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
507 low_save = low | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
508 upp_save = upp | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
509 num_min_save = num_min | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
510 if num_min is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
511 num_min = 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
512 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
513 if num_min < 2 or num_min > a.shape[axis]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
514 logging.warning('Illegal input for num_min in selectImageBounds, input ignored') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
515 num_min = 1 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
516 if low is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
517 min_ = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
518 max_ = a.shape[axis] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
519 low_max = a.shape[axis]-num_min | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
520 while True: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
521 if axis: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
522 quickImshow(a[:,min_:max_], title=title, aspect='auto', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
523 extent=[min_,max_,a.shape[0],0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
524 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
525 quickImshow(a[min_:max_,:], title=title, aspect='auto', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
526 extent=[0,a.shape[1], max_,min_]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
527 zoom_flag = pyip.inputInt('Set lower data bound (0) or zoom in (1)?: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
528 min=0, max=1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
529 if zoom_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
530 min_ = pyip.inputInt(f' Set lower zoom index [0, {low_max}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
531 min=0, max=low_max) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
532 max_ = pyip.inputInt(f' Set upper zoom index [{min_+1}, {low_max+1}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
533 min=min_+1, max=low_max+1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
534 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
535 low = pyip.inputInt(f' Set lower data bound [0, {low_max}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
536 min=0, max=low_max) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
537 break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
538 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
539 if not is_int(low, 0, a.shape[axis]-num_min): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
540 illegal_value('low', low, 'selectImageBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
541 return None | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
542 if upp is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
543 min_ = low+num_min | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
544 max_ = a.shape[axis] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
545 upp_min = min_ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
546 while True: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
547 if axis: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
548 quickImshow(a[:,min_:max_], title=title, aspect='auto', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
549 extent=[min_,max_,a.shape[0],0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
550 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
551 quickImshow(a[min_:max_,:], title=title, aspect='auto', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
552 extent=[0,a.shape[1], max_,min_]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
553 zoom_flag = pyip.inputInt('Set upper data bound (0) or zoom in (1)?: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
554 min=0, max=1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
555 if zoom_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
556 min_ = pyip.inputInt(f' Set upper zoom index [{upp_min}, {a.shape[axis]-1}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
557 min=upp_min, max=a.shape[axis]-1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
558 max_ = pyip.inputInt(f' Set upper zoom index [{min_+1}, {a.shape[axis]}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
559 min=min_+1, max=a.shape[axis]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
560 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
561 upp = pyip.inputInt(f' Set upper data bound [{upp_min}, {a.shape[axis]}]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
562 min=upp_min, max=a.shape[axis]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
563 break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
564 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
565 if not is_int(upp, low+num_min, a.shape[axis]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
566 illegal_value('upp', upp, 'selectImageBounds') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
567 return None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
568 bounds = [low, upp] | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
569 a_tmp = np.copy(a) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
570 a_tmp_max = a.max() | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
571 if axis: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
572 a_tmp[:,bounds[0]] = a_tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
573 a_tmp[:,bounds[1]-1] = a_tmp_max | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
574 else: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
575 a_tmp[bounds[0],:] = a_tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
576 a_tmp[bounds[1]-1,:] = a_tmp_max | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
577 print(f'lower bound = {low} (inclusive)\nupper bound = {upp} (exclusive)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
578 quickImshow(a_tmp, title=title) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
1 
diff
changeset
 | 
579 del a_tmp | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
580 if pyip.inputYesNo('Accept these bounds ([y]/n)?: ', blank=True) == 'no': | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
581 bounds = selectImageBounds(a, axis, low=low_save, upp=upp_save, num_min=num_min_save, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
582 title=title) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
583 return bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
584 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
585 def fitStep(x=None, y=None, model='step', form='arctan'): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
586 if not isinstance(y, np.ndarray) or y.ndim != 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
587 logging.error('Illegal array type or dimension for y in fitStep') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
588 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
589 if isinstance(x, type(None)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
590 x = np.array(range(y.size)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
591 elif not isinstance(x, np.ndarray) or x.ndim != 1 or x.size != y.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
592 logging.error('Illegal array type or dimension for x in fitStep') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
593 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
594 if not isinstance(model, str) or not model in ('step', 'rectangle'): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
595 illegal_value('model', model, 'fitStepModel') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
596 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
597 if not isinstance(form, str) or not form in ('linear', 'atan', 'arctan', 'erf', 'logistic'): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
598 illegal_value('form', form, 'fitStepModel') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
599 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
600 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
601 if model == 'step': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
602 mod = StepModel(form=form) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
603 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
604 mod = RectangleModel(form=form) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
605 pars = mod.guess(y, x=x) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
606 out = mod.fit(y, pars, x=x) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
7 
diff
changeset
 | 
607 #print(f'fit_report:\n{out.fit_report()}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
608 #quickPlot((x,y),(x,out.best_fit)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
609 return out.best_values | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
610 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
611 class Config: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
612 """Base class for processing a config file or dictionary. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
613 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
614 def __init__(self, config_file=None, config_dict=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
615 self.config = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
616 self.load_flag = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
617 self.suffix = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
618 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
619 # Load config file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
620 if config_file is not None and config_dict is not None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
621 logging.warning('Ignoring config_dict (both config_file and config_dict are specified)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
622 if config_file is not None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
623 self.loadFile(config_file) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
624 elif config_dict is not None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
625 self.loadDict(config_dict) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
626 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
627 def loadFile(self, config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
628 """Load a config file. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
629 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
630 if self.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
631 logging.warning('Overwriting any previously loaded config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
632 self.config = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
633 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
634 # Ensure config file exists | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
635 if not os.path.isfile(config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
636 logging.error(f'Unable to load {config_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
637 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
638 | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
6 
diff
changeset
 | 
639 # Load config file (for now for Galaxy, allow .dat extension) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
640 self.suffix = os.path.splitext(config_file)[1] | 
| 
6
 
baf9f5eef128
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 47f763393ddfbfa788158e789ed3814f45e0aeee"
 
rv43 
parents: 
3 
diff
changeset
 | 
641 if self.suffix == '.yml' or self.suffix == '.yaml' or self.suffix == '.dat': | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
642 with open(config_file, 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
643 self.config = yaml.safe_load(f) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
644 elif self.suffix == '.txt': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
645 with open(config_file, 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
646 lines = f.read().splitlines() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
647 self.config = {item[0].strip():literal_eval(item[1].strip()) for item in | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
648 [line.split('#')[0].split('=') for line in lines if '=' in line.split('#')[0]]} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
649 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
650 logging.error(f'Illegal config file extension: {self.suffix}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
651 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
652 # Make sure config file was correctly loaded | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
653 if isinstance(self.config, dict): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
654 self.load_flag = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
655 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
656 logging.error(f'Unable to load dictionary from config file: {config_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
657 self.config = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
658 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
659 def loadDict(self, config_dict): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
660 """Takes a dictionary and places it into self.config. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
661 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
662 exit('loadDict not tested yet, what format do we follow: txt or yaml?') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
663 if self.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
664 logging.warning('Overwriting the previously loaded config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
665 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
666 if isinstance(config_dict, dict): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
667 self.config = config_dict | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
668 self.load_flag = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
669 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
670 logging.error(f'Illegal dictionary config object: {config_dict}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
671 self.config = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
672 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
673 def saveFile(self, config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
674 """Save the config file (as a yaml file only right now). | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
675 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
676 suffix = os.path.splitext(config_file)[1] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
677 if suffix != '.yml' and suffix != '.yaml': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
678 logging.error(f'Illegal config file extension: {suffix}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
679 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
680 # Check if config file exists | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
681 if os.path.isfile(config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
682 logging.info(f'Updating {config_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
683 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
684 logging.info(f'Saving {config_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
685 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
686 # Save config file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
687 with open(config_file, 'w') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
688 yaml.dump(self.config, f) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
689 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
690 def validate(self, pars_required, pars_missing=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
691 """Returns False if any required first level keys are missing. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
692 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
693 if not self.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
694 logging.error('Load a config file prior to calling Config.validate') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
695 pars = [p for p in pars_required if p not in self.config] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
696 if isinstance(pars_missing, list): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
697 pars_missing.extend(pars) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
698 elif pars_missing is not None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
699 illegal_value('pars_missing', pars_missing, 'Config.validate') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
700 if len(pars) > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
701 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
702 return True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
703 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
704 #RV FIX this is for a txt file, obsolete? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
705 # def update_txt(self, config_file, key, value, search_string=None, header=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
706 # if not self.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
707 # logging.error('Load a config file prior to calling Config.update') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
708 # | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
709 # if not os.path.isfile(config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
710 # logging.error(f'Unable to load {config_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
711 # lines = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
712 # else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
713 # with open(config_file, 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
714 # lines = f.read().splitlines() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
715 # config = {item[0].strip():literal_eval(item[1].strip()) for item in | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
716 # [line.split('#')[0].split('=') for line in lines if '=' in line.split('#')[0]]} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
717 # if not isinstance(key, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
718 # illegal_value('key', key, 'Config.update') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
719 # return config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
720 # if isinstance(value, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
721 # newline = f"{key} = '{value}'" | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
722 # else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
723 # newline = f'{key} = {value}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
724 # if key in config.keys(): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
725 # # Update key with value | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
726 # for index,line in enumerate(lines): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
727 # if '=' in line: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
728 # item = line.split('#')[0].split('=') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
729 # if item[0].strip() == key: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
730 # lines[index] = newline | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
731 # break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
732 # else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
733 # # Insert new key/value pair | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
734 # if search_string is not None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
735 # if isinstance(search_string, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
736 # search_string = [search_string] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
737 # elif not isinstance(search_string, (tuple, list)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
738 # illegal_value('search_string', search_string, 'Config.update') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
739 # search_string = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
740 # update_flag = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
741 # if search_string is not None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
742 # indices = [[index for index,line in enumerate(lines) if item in line] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
743 # for item in search_string] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
744 # for i,index in enumerate(indices): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
745 # if index: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
746 # if len(search_string) > 1 and key < search_string[i]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
747 # lines.insert(index[0], newline) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
748 # else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
749 # lines.insert(index[0]+1, newline) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
750 # update_flag = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
751 # break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
752 # if not update_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
753 # if isinstance(header, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
754 # lines += ['', header, newline] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
755 # else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
756 # lines += ['', newline] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
757 # # Write updated config file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
758 # with open(config_file, 'w') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
759 # for line in lines: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
760 # f.write(f'{line}\n') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
761 # # Update loaded config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
762 # config['key'] = value | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
763 # | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
764 #RV update and bring into Config if needed again | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
765 #def search(config_file, search_string): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
766 # if not os.path.isfile(config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
767 # logging.error(f'Unable to load {config_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
768 # return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
769 # with open(config_file, 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
770 # lines = f.read() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
771 # if search_string in lines: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
772 # return True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
773 # return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
774 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
775 class Detector: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
776 """Class for processing a detector info file or dictionary. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
777 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
778 def __init__(self, detector_id): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
779 self.detector = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
780 self.load_flag = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
781 self.validate_flag = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
782 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
783 # Load detector file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
784 self.loadFile(detector_id) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
785 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
786 def loadFile(self, detector_id): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
787 """Load a detector file. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
788 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
789 if self.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
790 logging.warning('Overwriting the previously loaded detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
791 self.detector = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
792 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
793 # Ensure detector file exists | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
794 if not isinstance(detector_id, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
795 illegal_value('detector_id', detector_id, 'Detector.loadFile') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
796 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
797 detector_file = f'{detector_id}.yaml' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
798 if not os.path.isfile(detector_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
799 detector_file = self.config['detector_id']+'.yaml' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
800 if not os.path.isfile(detector_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
801 logging.error(f'Unable to load detector info file for {detector_id}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
802 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
803 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
804 # Load detector file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
805 with open(detector_file, 'r') as f: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
806 self.detector = yaml.safe_load(f) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
807 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
808 # Make sure detector file was correctly loaded | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
809 if isinstance(self.detector, dict): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
810 self.load_flag = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
811 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
812 logging.error(f'Unable to load dictionary from detector file: {detector_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
813 self.detector = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
814 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
815 def validate(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
816 """Returns False if any config parameters is illegal or missing. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
817 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
818 if not self.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
819 logging.error('Load a detector file prior to calling Detector.validate') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
820 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
821 # Check for required first-level keys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
822 pars_required = ['detector', 'lens_magnification'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
823 pars_missing = [p for p in pars_required if p not in self.detector] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
824 if len(pars_missing) > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
825 logging.error(f'Missing item(s) in detector file: {", ".join(pars_missing)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
826 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
827 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
828 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
829 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
830 # Check detector pixel config keys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
831 pixels = self.detector['detector'].get('pixels') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
832 if not pixels: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
833 pars_missing.append('detector:pixels') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
834 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
835 rows = pixels.get('rows') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
836 if not rows: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
837 pars_missing.append('detector:pixels:rows') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
838 columns = pixels.get('columns') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
839 if not columns: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
840 pars_missing.append('detector:pixels:columns') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
841 size = pixels.get('size') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
842 if not size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
843 pars_missing.append('detector:pixels:size') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
844 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
845 if not len(pars_missing): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
846 self.validate_flag = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
847 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
848 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
849 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
850 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
851 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
852 def getPixelSize(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
853 """Returns the detector pixel size. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
854 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
855 if not self.validate_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
856 logging.error('Validate detector file info prior to calling Detector.getPixelSize') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
857 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
858 lens_magnification = self.detector.get('lens_magnification') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
859 if not isinstance(lens_magnification, (int,float)) or lens_magnification <= 0.: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
860 illegal_value('lens_magnification', lens_magnification, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
861 return 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
862 pixel_size = self.detector['detector'].get('pixels').get('size') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
863 if isinstance(pixel_size, (int,float)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
864 if pixel_size <= 0.: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
865 illegal_value('pixel_size', pixel_size, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
866 return 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
867 pixel_size /= lens_magnification | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
868 elif isinstance(pixel_size, list): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
869 if ((len(pixel_size) > 2) or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
870 (len(pixel_size) == 2 and pixel_size[0] != pixel_size[1])): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
871 illegal_value('pixel size', pixel_size, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
872 return 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
873 elif not is_num(pixel_size[0], 0.): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
874 illegal_value('pixel size', pixel_size, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
875 return 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
876 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
877 pixel_size = pixel_size[0]/lens_magnification | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
878 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
879 illegal_value('pixel size', pixel_size, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
880 return 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
881 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
882 return pixel_size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
883 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
884 def getDimensions(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
885 """Returns the detector pixel dimensions. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
886 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
887 if not self.validate_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
888 logging.error('Validate detector file info prior to calling Detector.getDimensions') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
889 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
890 pixels = self.detector['detector'].get('pixels') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
891 num_rows = pixels.get('rows') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
892 if not is_int(num_rows, 1): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
893 illegal_value('rows', num_rows, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
894 return (0, 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
895 num_columns = pixels.get('columns') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
896 if not is_int(num_columns, 1): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
897 illegal_value('columns', num_columns, 'detector file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
898 return (0, 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
899 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
900 return num_rows, num_columns | 
