Mercurial > repos > rv43 > tomo
annotate tomo.py @ 56:ca61007a60fa draft
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit fc9b26da497e467c28b0adf3f94422b4cb61f59c"
| author | rv43 | 
|---|---|
| date | Tue, 02 Aug 2022 19:52:47 +0000 | 
| parents | 26f99fdd8d61 | 
| children | 75dd6e15f628 | 
| 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 Fri Dec 10 09:54:37 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 getopt | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
15 import re | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
16 import io | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
17 import argparse | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
18 import numpy as np | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
19 try: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
20 import numexpr as ne | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
21 except: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
22 pass | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
23 import multiprocessing as mp | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
24 try: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
25 import scipy.ndimage as spi | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
26 except: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
27 pass | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
28 try: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
29 import tomopy | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
30 except: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
31 pass | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
32 from time import time | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
33 try: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
34 from skimage.transform import iradon | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
35 except: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
36 pass | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
37 try: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
38 from skimage.restoration import denoise_tv_chambolle | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
39 except: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
40 pass | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
41 | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
42 from detector import TomoDetectorConfig | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
43 from fit import Fit | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
44 #from msnctools.general import illegal_value, is_int, is_num, is_index_range, get_trailing_int, \ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
45 from general import illegal_value, is_int, is_num, is_index_range, get_trailing_int, \ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
46 input_int, input_num, input_yesno, input_menu, findImageFiles, loadImageStack, clearPlot, \ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
47 draw_mask_1d, quickPlot, clearImshow, quickImshow, combine_tiffs_in_h5, Config | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
48 from general import selectArrayBounds,selectImageRange, selectImageBounds | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
49 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
50 # the following tomopy routines don't run with more than 24 cores on Galaxy-Dev | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
51 # - tomopy.find_center_vo | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
52 # - tomopy.prep.stripe.remove_stripe_fw | 
| 
46
 
d73e715e975b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac"
 
rv43 
parents: 
45 
diff
changeset
 | 
53 num_core_tomopy_limit = 24 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
54 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
55 class set_numexpr_threads: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
56 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
57 def __init__(self, num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
58 cpu_count = mp.cpu_count() | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
59 logging.debug(f'start: num_core={num_core} cpu_count={cpu_count}') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
60 if num_core is None or num_core < 1 or num_core > cpu_count: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
61 self.num_core = cpu_count | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
62 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
63 self.num_core = num_core | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
64 logging.debug(f'self.num_core={self.num_core}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
65 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
66 def __enter__(self): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
67 self.num_core_org = ne.set_num_threads(self.num_core) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
68 logging.debug(f'self.num_core={self.num_core}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
69 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
70 def __exit__(self, exc_type, exc_value, traceback): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
71 ne.set_num_threads(self.num_core_org) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
72 | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
73 class ConfigTomo(Config): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
74 """Class for processing a config file. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
75 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
76 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
77 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
 | 
78 super().__init__(config_file, config_dict) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
79 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
80 def _validate_txt(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
81 """Returns False if any required config parameter is illegal or missing. | 
| 
 
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 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
84 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
85 # Check for required first-level keys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
86 pars_required = ['tdf_data_path', 'tbf_data_path', 'detector_id'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
87 pars_missing = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
88 is_valid = super().validate(pars_required, pars_missing) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
89 if len(pars_missing) > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
90 logging.error(f'Missing item(s) in config file: {", ".join(pars_missing)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
91 self.detector_id = self.config.get('detector_id') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
92 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
93 # Find tomography dark field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
94 self.tdf_data_path = self.config.get('tdf_data_path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
95 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
96 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
97 self.tbf_data_path = self.config.get('tbf_data_path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
98 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
99 # Check number of tomography image stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
100 self.num_tomo_stacks = self.config.get('num_tomo_stacks', 1) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
101 if not is_int(self.num_tomo_stacks, 1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
102 self.num_tomo_stacks = None | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
103 illegal_value(self.num_tomo_stacks, 'num_tomo_stacks', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
104 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
105 logging.info(f'num_tomo_stacks = {self.num_tomo_stacks}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
106 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
107 # Find tomography images file/folders and stack parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
108 tomo_data_paths_indices = sorted({key:value for key,value in self.config.items() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
109 if 'tomo_data_path' in key}.items()) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
110 if len(tomo_data_paths_indices) != self.num_tomo_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
111 logging.error(f'Incorrect number of tomography data path names in config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
112 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
113 self.tomo_data_paths = [tomo_data_paths_indices[i][1] for i in range(self.num_tomo_stacks)] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
114 self.tomo_data_indices = [get_trailing_int(tomo_data_paths_indices[i][0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
115 if get_trailing_int(tomo_data_paths_indices[i][0]) else None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
116 for i in range(self.num_tomo_stacks)] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
117 tomo_ref_height_indices = sorted({key:value for key,value in self.config.items() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
118 if 'z_pos' in key}.items()) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
119 if self.num_tomo_stacks > 1 and len(tomo_ref_height_indices) != self.num_tomo_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
120 logging.error(f'Incorrect number of tomography reference heights in config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
121 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
122 if len(tomo_ref_height_indices): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
123 self.tomo_ref_heights = [ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
124 tomo_ref_height_indices[i][1] for i in range(self.num_tomo_stacks)] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
125 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
126 self.tomo_ref_heights = [0.0]*self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
127 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
128 # Check tomo angle (theta) range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
129 self.start_theta = self.config.get('start_theta', 0.) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
130 if not is_num(self.start_theta, 0.): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
131 illegal_value(self.start_theta, 'start_theta', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
132 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
133 logging.debug(f'start_theta = {self.start_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
134 self.end_theta = self.config.get('end_theta', 180.) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
135 if not is_num(self.end_theta, self.start_theta): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
136 illegal_value(self.end_theta, 'end_theta', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
137 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
138 logging.debug(f'end_theta = {self.end_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
139 self.num_thetas = self.config.get('num_thetas') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
140 if not (self.num_thetas is None or is_int(self.num_thetas, 1)): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
141 illegal_value(self.num_thetas, 'num_thetas', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
142 self.num_thetas = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
143 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
144 logging.debug(f'num_thetas = {self.num_thetas}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
145 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
146 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
147 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
148 def _validate_yaml(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
149 """Returns False if any required config parameter is illegal or missing. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
150 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
151 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
152 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
153 # Check for required first-level keys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
154 pars_required = ['dark_field', 'bright_field', 'stack_info', 'detector'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
155 pars_missing = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
156 is_valid = super().validate(pars_required, pars_missing) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
157 if len(pars_missing) > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
158 logging.error(f'Missing item(s) in config file: {", ".join(pars_missing)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
159 self.detector_id = self.config['detector'].get('id') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
160 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
161 # Find tomography dark field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
162 self.tdf_data_path = self.config['dark_field'].get('data_path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
163 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
164 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
165 self.tbf_data_path = self.config['bright_field'].get('data_path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
166 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
167 # Check number of tomography image stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
168 stack_info = self.config['stack_info'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
169 self.num_tomo_stacks = stack_info.get('num', 1) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
170 if not is_int(self.num_tomo_stacks, 1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
171 self.num_tomo_stacks = None | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
172 illegal_value(self.num_tomo_stacks, 'num_tomo_stacks', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
173 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
174 logging.info(f'num_tomo_stacks = {self.num_tomo_stacks}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
175 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
176 # Find tomography images file/folders and stack parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
177 stacks = stack_info.get('stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
178 if stacks is None or len(stacks) is not self.num_tomo_stacks: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
179 illegal_value(stacks, 'stacks', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
180 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
181 self.tomo_data_paths = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
182 self.tomo_data_indices = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
183 self.tomo_ref_heights = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
184 for stack in stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
185 self.tomo_data_paths.append(stack.get('data_path')) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
186 self.tomo_data_indices.append(stack.get('index')) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
187 self.tomo_ref_heights.append(stack.get('ref_height')) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
188 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
189 # Check tomo angle (theta) range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
190 theta_range = self.config.get('theta_range') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
191 if theta_range is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
192 self.start_theta = 0. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
193 self.end_theta = 180. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
194 self.num_thetas = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
195 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
196 self.start_theta = theta_range.get('start', 0.) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
197 if not is_num(self.start_theta, 0.): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
198 illegal_value(self.start_theta, 'theta_range:start', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
199 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
200 logging.debug(f'start_theta = {self.start_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
201 self.end_theta = theta_range.get('end', 180.) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
202 if not is_num(self.end_theta, self.start_theta): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
203 illegal_value(self.end_theta, 'theta_range:end', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
204 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
205 logging.debug(f'end_theta = {self.end_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
206 self.num_thetas = theta_range.get('num') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
207 if self.num_thetas and not is_int(self.num_thetas, 1): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
208 illegal_value(self.num_thetas, 'theta_range:num', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
209 self.num_thetas = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
210 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
211 logging.debug(f'num_thetas = {self.num_thetas}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
212 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
213 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
214 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
215 def validate(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
216 """Returns False if any required config parameter is illegal or missing. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
217 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
218 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
219 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
220 # Check work_folder (shared by both file formats) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
221 work_folder = os.path.abspath(self.config.get('work_folder', '')) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
222 if not os.path.isdir(work_folder): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
223 illegal_value(work_folder, 'work_folder', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
224 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
225 logging.info(f'work_folder: {work_folder}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
226 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
227 # Check data filetype (shared by both file formats) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
228 self.data_filetype = self.config.get('data_filetype', 'tif') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
229 if not isinstance(self.data_filetype, str) or (self.data_filetype != 'tif' and | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
230 self.data_filetype != 'h5'): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
231 illegal_value(self.data_filetype, 'data_filetype', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
232 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
233 if self.suffix == '.yml' or self.suffix == '.yaml': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
234 is_valid = self._validate_yaml() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
235 elif self.suffix == '.txt': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
236 is_valid = self._validate_txt() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
237 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
238 logging.error(f'Undefined or illegal config file extension: {self.suffix}') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
239 is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
240 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
241 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
242 if self.tdf_data_path: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
243 if self.data_filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
244 if isinstance(self.tdf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
245 if not os.path.isabs(self.tdf_data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
246 self.tdf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
247 f'{work_folder}/{self.tdf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
248 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
249 illegal_value(tdf_data_fil, 'tdf_data_path', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
250 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
251 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
252 if isinstance(self.tdf_data_path, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
253 self.tdf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
254 f'{work_folder}/{self.tdf_data_path}/nf') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
255 elif isinstance(self.tdf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
256 if not os.path.isabs(self.tdf_data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
257 self.tdf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
258 f'{work_folder}/{self.tdf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
259 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
260 illegal_value(self.tdf_data_path, 'tdf_data_path', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
261 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
262 logging.info(f'dark field images path = {self.tdf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
263 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
264 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
265 if self.tbf_data_path: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
266 if self.data_filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
267 if isinstance(self.tbf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
268 if not os.path.isabs(self.tbf_data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
269 self.tbf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
270 f'{work_folder}/{self.tbf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
271 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
272 illegal_value(tbf_data_fil, 'tbf_data_path', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
273 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
274 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
275 if isinstance(self.tbf_data_path, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
276 self.tbf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
277 f'{work_folder}/{self.tbf_data_path}/nf') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
278 elif isinstance(self.tbf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
279 if not os.path.isabs(self.tbf_data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
280 self.tbf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
281 f'{work_folder}/{self.tbf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
282 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
283 illegal_value(self.tbf_data_path, 'tbf_data_path', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
284 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
285 logging.info(f'bright field images path = {self.tbf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
286 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
287 # Find tomography images file/folders and stack parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
288 tomo_data_paths = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
289 tomo_data_indices = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
290 tomo_ref_heights = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
291 for data_path, index, ref_height in zip(self.tomo_data_paths, self.tomo_data_indices, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
292 self.tomo_ref_heights): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
293 if self.data_filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
294 if isinstance(data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
295 if not os.path.isabs(data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
296 data_path = os.path.abspath(f'{work_folder}/{data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
297 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
298 illegal_value(data_path, 'stack_info:stacks:data_path', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
299 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
300 data_path = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
301 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
302 if isinstance(data_path, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
303 data_path = os.path.abspath(f'{work_folder}/{data_path}/nf') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
304 elif isinstance(data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
305 if not os.path.isabs(data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
306 data_path = os.path.abspath(f'{work_folder}/{data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
307 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
308 illegal_value(data_path, 'stack_info:stacks:data_path', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
309 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
310 data_path = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
311 tomo_data_paths.append(data_path) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
312 if index is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
313 if self.num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
314 logging.error('Missing stack_info:stacks:index in config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
315 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
316 index = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
317 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
318 index = 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
319 elif not isinstance(index, int): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
320 illegal_value(index, 'stack_info:stacks:index', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
321 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
322 index = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
323 tomo_data_indices.append(index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
324 if ref_height is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
325 if self.num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
326 logging.error('Missing stack_info:stacks:ref_height in config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
327 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
328 ref_height = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
329 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
330 ref_height = 0. | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
331 elif not is_num(ref_height): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
332 illegal_value(ref_height, 'stack_info:stacks:ref_height', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
333 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
334 ref_height = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
335 # Set reference heights relative to first stack | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
336 if (len(tomo_ref_heights) and is_num(ref_height) and | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
337 is_num(tomo_ref_heights[0])): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
338 ref_height = (round(ref_height-tomo_ref_heights[0], 3)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
339 tomo_ref_heights.append(ref_height) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
340 tomo_ref_heights[0] = 0.0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
341 logging.info('tomography data paths:') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
342 for i in range(self.num_tomo_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
343 logging.info(f' {tomo_data_paths[i]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
344 logging.info(f'tomography data path indices: {tomo_data_indices}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
345 logging.info(f'tomography reference heights: {tomo_ref_heights}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
346 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
347 # Update config in memory | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
348 if self.suffix == '.txt': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
349 self.config = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
350 dark_field = self.config.get('dark_field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
351 if dark_field is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
352 self.config['dark_field'] = {'data_path' : self.tdf_data_path} | 
| 
 
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 self.config['dark_field']['data_path'] = self.tdf_data_path | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
355 bright_field = self.config.get('bright_field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
356 if bright_field is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
357 self.config['bright_field'] = {'data_path' : self.tbf_data_path} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
358 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
359 self.config['bright_field']['data_path'] = self.tbf_data_path | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
360 detector = self.config.get('detector') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
361 if detector is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
362 self.config['detector'] = {'id' : self.detector_id} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
363 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
364 detector['id'] = self.detector_id | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
365 self.config['work_folder'] = work_folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
366 self.config['data_filetype'] = self.data_filetype | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
367 stack_info = self.config.get('stack_info') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
368 if stack_info is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
369 stacks = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
370 for i in range(self.num_tomo_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
371 stacks.append({'data_path' : tomo_data_paths[i], 'index' : tomo_data_indices[i], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
372 'ref_height' : tomo_ref_heights[i]}) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
373 self.config['stack_info'] = {'num' : self.num_tomo_stacks, 'stacks' : stacks} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
374 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
375 stack_info['num'] = self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
376 stacks = stack_info.get('stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
377 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
378 stack['data_path'] = tomo_data_paths[i] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
379 stack['index'] = tomo_data_indices[i] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
380 stack['ref_height'] = tomo_ref_heights[i] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
381 if self.num_thetas: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
382 theta_range = {'start' : self.start_theta, 'end' : self.end_theta, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
383 'num' : self.num_thetas} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
384 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
385 theta_range = {'start' : self.start_theta, 'end' : self.end_theta} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
386 self.config['theta_range'] = theta_range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
387 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
388 # Cleanup temporary validation variables | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
389 del self.tdf_data_path | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
390 del self.tbf_data_path | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
391 del self.detector_id | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
392 del self.data_filetype | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
393 del self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
394 del self.tomo_data_paths | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
395 del self.tomo_data_indices | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
396 del self.tomo_ref_heights | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
397 del self.start_theta | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
398 del self.end_theta | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
399 del self.num_thetas | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
400 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
401 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
402 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
403 class Tomo: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
404 """Processing tomography data with misalignment. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
405 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
406 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
407 def __init__(self, config_file=None, config_dict=None, config_out=None, output_folder='.', | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
408 log_level='INFO', log_stream='tomo.log', galaxy_flag=False, test_mode=False, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
409 num_core=-1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
410 """Initialize with optional config input file or dictionary | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
411 """ | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
412 self.num_core = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
413 self.config_out = config_out | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
414 self.output_folder = output_folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
415 self.galaxy_flag = galaxy_flag | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
416 self.test_mode = test_mode | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
417 self.save_plots = True # Make input argument? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
418 self.save_plots_only = True # Make input argument? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
419 self.cf = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
420 self.config = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
421 self.is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
422 self.tdf = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
423 self.tbf = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
424 self.tomo_stacks = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
425 self.tomo_recon_stacks = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
426 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
427 # Validate input parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
428 if config_file is not None and not os.path.isfile(config_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
429 raise OSError(f'Invalid config_file input {config_file} {type(config_file)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
430 if config_dict is not None and not isinstance(config_dict, dict): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
431 raise ValueError(f'Invalid config_dict input {config_dict} {type(config_dict)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
432 if config_out is not None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
433 if isinstance(config_out, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
434 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
435 path = os.path.split(log_stream)[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
436 if path and not os.path.isdir(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
437 raise OSError(f'Invalid log_stream path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
438 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
439 raise OSError(f'Invalid config_out input {config_out} {type(config_out)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
440 if not os.path.isdir(output_folder): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
441 os.mkdir(os.path.abspath(output_folder)) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
442 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
443 path = os.path.split(log_stream)[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
444 if path and not os.path.isdir(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
445 raise OSError(f'Invalid log_stream path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
446 if not os.path.isabs(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
447 log_stream = f'{output_folder}/{log_stream}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
448 if not isinstance(galaxy_flag, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
449 raise ValueError(f'Invalid galaxy_flag input {galaxy_flag} {type(galaxy_flag)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
450 if not isinstance(test_mode, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
451 raise ValueError(f'Invalid test_mode input {test_mode} {type(test_mode)}') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
452 if not isinstance(num_core, int) or num_core < -1 or num_core == 0: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
453 raise ValueError(f'Invalid num_core input {num_core} {type(num_core)}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
454 if num_core == -1: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
455 self.num_core = mp.cpu_count() | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
456 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
457 self.num_core = num_core | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
458 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
459 # Set log configuration | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
460 logging_format = '%(asctime)s : %(levelname)s - %(module)s : %(funcName)s - %(message)s' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
461 if self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
462 self.save_plots_only = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
463 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
464 logging.basicConfig(filename=f'{log_stream}', filemode='w', | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
465 format=logging_format, level=logging.INFO, force=True) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
466 #format=logging_format, level=logging.WARNING, force=True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
467 elif isinstance(log_stream, io.TextIOWrapper): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
468 #logging.basicConfig(filemode='w', format=logging_format, level=logging.WARNING, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
469 logging.basicConfig(filemode='w', format=logging_format, level=logging.INFO, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
470 stream=log_stream, force=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
471 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
472 raise ValueError(f'Invalid log_stream: {log_stream}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
473 logging.warning('Ignoring log_level argument in test mode') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
474 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
475 level = getattr(logging, log_level.upper(), None) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
476 if not isinstance(level, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
477 raise ValueError(f'Invalid log_level: {log_level}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
478 if log_stream is sys.stdout: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
479 logging.basicConfig(format=logging_format, level=level, force=True, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
480 handlers=[logging.StreamHandler()]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
481 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
482 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
483 logging.basicConfig(filename=f'{log_stream}', filemode='w', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
484 format=logging_format, level=level, force=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
485 elif isinstance(log_stream, io.TextIOWrapper): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
486 logging.basicConfig(filemode='w', format=logging_format, level=level, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
487 stream=log_stream, force=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
488 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
489 raise ValueError(f'Invalid log_stream: {log_stream}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
490 stream_handler = logging.StreamHandler() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
491 logging.getLogger().addHandler(stream_handler) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
492 stream_handler.setLevel(logging.WARNING) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
493 stream_handler.setFormatter(logging.Formatter(logging_format)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
494 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
495 # Check/set output config file name | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
496 if self.config_out is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
497 self.config_out = f'{self.output_folder}/config.yaml' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
498 elif (self.config_out is os.path.basename(self.config_out) and | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
499 not os.path.isabs(self.config_out)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
500 self.config_out = f'{self.output_folder}/{self.config_out}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
501 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
502 # Create config object and load config file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
503 self.cf = ConfigTomo(config_file, config_dict) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
504 if not self.cf.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
505 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
506 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
507 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
508 if self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
509 assert(self.output_folder == '.') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
510 assert(self.test_mode is False) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
511 self.save_plots = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
512 self.save_plots_only = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
513 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
514 # Input validation is already performed during link_data_to_galaxy | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
515 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
516 # Check config file parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
517 self.is_valid = self.cf.validate() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
518 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
519 # Load detector info file | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
520 df = TomoDetectorConfig(self.cf.config['detector']['id']) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
521 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
522 # Check detector info file parameters | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
523 if df.valid: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
524 pixel_size = df.pixel_size | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
525 num_rows, num_columns = df.dimensions | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
526 if not pixel_size or not num_rows or not num_columns: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
527 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
528 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
529 pixel_size = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
530 num_rows = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
531 num_columns = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
532 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
533 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
534 # Update config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
535 self.cf.config['detector']['pixel_size'] = pixel_size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
536 self.cf.config['detector']['rows'] = num_rows | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
537 self.cf.config['detector']['columns'] = num_columns | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
538 logging.debug(f'pixel_size = self.cf.config["detector"]["pixel_size"]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
539 logging.debug(f'num_rows: {self.cf.config["detector"]["rows"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
540 logging.debug(f'num_columns: {self.cf.config["detector"]["columns"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
541 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
542 # Safe config to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
543 if self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
544 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
545 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
546 # Initialize shortcut to config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
547 self.config = self.cf.config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
548 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
549 # Initialize tomography stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
550 num_tomo_stacks = self.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
551 if num_tomo_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
552 self.tomo_stacks = [np.array([]) for _ in range(num_tomo_stacks)] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
553 self.tomo_recon_stacks = [np.array([]) for _ in range(num_tomo_stacks)] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
554 | 
| 
2
 
b8977c98800b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0c40fb274acc13ebf7054379bb49ed13acec918e"
 
rv43 
parents: 
1 
diff
changeset
 | 
555 logging.debug(f'num_core = {self.num_core}') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
556 logging.debug(f'config_file = {config_file}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
557 logging.debug(f'config_dict = {config_dict}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
558 logging.debug(f'config_out = {self.config_out}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
559 logging.debug(f'output_folder = {self.output_folder}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
560 logging.debug(f'log_stream = {log_stream}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
561 logging.debug(f'log_level = {log_level}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
562 logging.debug(f'galaxy_flag = {self.galaxy_flag}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
563 logging.debug(f'test_mode = {self.test_mode}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
564 logging.debug(f'save_plots = {self.save_plots}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
565 logging.debug(f'save_plots_only = {self.save_plots_only}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
566 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
567 def _selectImageRanges(self, available_stacks=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
568 """Select image files to be included in analysis. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
569 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
570 self.is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
571 stack_info = self.config['stack_info'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
572 if available_stacks is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
573 available_stacks = [False]*stack_info['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
574 elif len(available_stacks) != stack_info['num']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
575 logging.warning('Illegal dimension of available_stacks in getImageFiles '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
576 f'({len(available_stacks)}'); | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
577 available_stacks = [False]*stack_info['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
578 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
579 # Check number of tomography angles/thetas | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
580 num_thetas = self.config['theta_range'].get('num') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
581 if num_thetas is None: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
582 num_thetas = input_int('\nEnter the number of thetas', 1) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
583 elif not is_int(num_thetas, 0): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
584 illegal_value(num_thetas, 'num_thetas', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
585 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
586 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
587 self.config['theta_range']['num'] = num_thetas | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
588 logging.debug(f'num_thetas = {self.config["theta_range"]["num"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
589 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
590 # Find tomography dark field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
591 dark_field = self.config['dark_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
592 img_start = dark_field.get('img_start', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
593 img_offset = dark_field.get('img_offset', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
594 num_imgs = dark_field.get('num', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
595 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
596 img_start, img_offset, num_imgs = selectImageRange(img_start, img_offset, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
597 num_imgs, 'dark field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
598 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
599 logging.error('Unable to find suitable dark field images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
600 if dark_field['data_path']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
601 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
602 dark_field['img_start'] = img_start | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
603 dark_field['img_offset'] = img_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
604 dark_field['num'] = num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
605 logging.debug(f'Dark field image start index: {dark_field["img_start"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
606 logging.debug(f'Dark field image offset: {dark_field["img_offset"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
607 logging.debug(f'Number of dark field images: {dark_field["num"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
608 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
609 # Find tomography bright field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
610 bright_field = self.config['bright_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
611 img_start = bright_field.get('img_start', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
612 img_offset = bright_field.get('img_offset', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
613 num_imgs = bright_field.get('num', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
614 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
615 img_start, img_offset, num_imgs = selectImageRange(img_start, img_offset, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
616 num_imgs, 'bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
617 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
618 logging.error('Unable to find suitable bright field images') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
619 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
620 bright_field['img_start'] = img_start | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
621 bright_field['img_offset'] = img_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
622 bright_field['num'] = num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
623 logging.debug(f'Bright field image start index: {bright_field["img_start"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
624 logging.debug(f'Bright field image offset: {bright_field["img_offset"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
625 logging.debug(f'Number of bright field images: {bright_field["num"]}') | 
| 
 
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 # Find tomography images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
628 for i,stack in enumerate(stack_info['stacks']): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
629 # Check if stack is already loaded or available | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
630 if self.tomo_stacks[i].size or available_stacks[i]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
631 continue | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
632 index = stack['index'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
633 img_start = stack.get('img_start', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
634 img_offset = stack.get('img_offset', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
635 num_imgs = stack.get('num', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
636 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
637 img_start, img_offset, num_imgs = selectImageRange(img_start, img_offset, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
638 num_imgs, f'tomography stack {index}', num_thetas) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
639 if img_start < 0 or num_imgs != num_thetas: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
640 logging.error('Unable to find suitable tomography images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
641 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
642 stack['img_start'] = img_start | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
643 stack['img_offset'] = img_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
644 stack['num'] = num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
645 logging.debug(f'Tomography stack {index} image start index: {stack["img_start"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
646 logging.debug(f'Tomography stack {index} image offset: {stack["img_offset"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
647 logging.debug(f'Number of tomography images for stack {index}: {stack["num"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
648 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
649 # Safe updated config to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
650 if self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
651 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
652 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
653 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
654 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
655 def _genDark(self, tdf_files): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
656 """Generate dark field. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
657 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
658 # Load the dark field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
659 logging.debug('Loading dark field...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
660 dark_field = self.config['dark_field'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
661 tdf_stack = loadImageStack(tdf_files, self.config['data_filetype'], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
662 dark_field['img_offset'], dark_field['num']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
663 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
664 # Take median | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
665 self.tdf = np.median(tdf_stack, axis=0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
666 del tdf_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
667 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
668 # RV make input of some kind (not always needed) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
669 tdf_cutoff = 21 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
670 self.tdf[self.tdf > tdf_cutoff] = np.nan | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
671 tdf_mean = np.nanmean(self.tdf) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
672 logging.debug(f'tdf_cutoff = {tdf_cutoff}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
673 logging.debug(f'tdf_mean = {tdf_mean}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
674 np.nan_to_num(self.tdf, copy=False, nan=tdf_mean, posinf=tdf_mean, neginf=0.) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
675 if self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
676 quickImshow(self.tdf, title='dark field', path='setup_pngs', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
677 save_fig=True, save_only=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
678 elif not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
679 quickImshow(self.tdf, title='dark field', path=self.output_folder, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
680 save_fig=self.save_plots, save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
681 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
682 def _genBright(self, tbf_files): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
683 """Generate bright field. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
684 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
685 # Load the bright field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
686 logging.debug('Loading bright field...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
687 bright_field = self.config['bright_field'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
688 tbf_stack = loadImageStack(tbf_files, self.config['data_filetype'], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
689 bright_field['img_offset'], bright_field['num']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
690 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
691 # Take median | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
692 """Median or mean: It may be best to try the median because of some image | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
693 artifacts that arise due to crinkles in the upstream kapton tape windows | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
694 causing some phase contrast images to appear on the detector. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
695 One thing that also may be useful in a future implementation is to do a | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
696 brightfield adjustment on EACH frame of the tomo based on a ROI in the | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
697 corner of the frame where there is no sample but there is the direct X-ray | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
698 beam because there is frame to frame fluctuations from the incoming beam. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
699 We don’t typically account for them but potentially could. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
700 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
701 self.tbf = np.median(tbf_stack, axis=0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
702 del tbf_stack | 
| 
 
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 # Subtract dark field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
705 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
706 self.tbf -= self.tdf | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
707 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
708 logging.warning('Dark field unavailable') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
709 if self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
710 quickImshow(self.tbf, title='bright field', path='setup_pngs', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
711 save_fig=True, save_only=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
712 elif not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
713 quickImshow(self.tbf, title='bright field', path=self.output_folder, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
714 save_fig=self.save_plots, save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
715 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
716 def _setDetectorBounds(self, tomo_stack_files): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
717 """Set vertical detector bounds for image stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
718 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
719 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
720 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
721 img_x_bounds = [None, None] | 
| 
 
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 img_x_bounds = preprocess.get('img_x_bounds', [0, self.tbf.shape[0]]) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
724 if img_x_bounds[0] is not None and img_x_bounds[1] is not None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
725 if img_x_bounds[0] < 0: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
726 illegal_value(img_x_bounds[0], 'preprocess:img_x_bounds[0]', 'config file') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
727 img_x_bounds[0] = 0 | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
728 if not is_index_range(img_x_bounds, 0, self.tbf.shape[0]): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
729 illegal_value(img_x_bounds[1], 'preprocess:img_x_bounds[1]', 'config file') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
730 img_x_bounds[1] = self.tbf.shape[0] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
731 if self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
732 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
733 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
734 self.cf.config['preprocess'] = {'img_x_bounds' : [0, self.tbf.shape[0]]} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
735 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
736 preprocess['img_x_bounds'] = img_x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
737 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
738 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
739 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
740 # Check reference heights | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
741 pixel_size = self.config['detector']['pixel_size'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
742 if pixel_size is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
743 raise ValueError('Detector pixel size unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
744 if not self.tbf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
745 raise ValueError('Bright field unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
746 num_x_min = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
747 num_tomo_stacks = self.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
748 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
749 if num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
750 delta_z = stacks[1]['ref_height']-stacks[0]['ref_height'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
751 for i in range(2, num_tomo_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
752 delta_z = min(delta_z, stacks[i]['ref_height']-stacks[i-1]['ref_height']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
753 logging.debug(f'delta_z = {delta_z}') | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
754 num_x_min = int((delta_z-0.5*pixel_size)/pixel_size) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
755 logging.debug(f'num_x_min = {num_x_min}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
756 if num_x_min > self.tbf.shape[0]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
757 logging.warning('Image bounds and pixel size prevent seamless stacking') | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
758 num_x_min = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
759 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
760 # Select image bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
761 if self.galaxy_flag: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
762 x_sum = np.sum(self.tbf, 1) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
763 x_sum_min = x_sum.min() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
764 x_sum_max = x_sum.max() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
765 x_low = 0 | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
766 x_upp = x_sum.size | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
767 if num_x_min is not None: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
768 fit = Fit.fit_data(np.array(range(len(x_sum))), x_sum, models='rectangle', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
769 form='atan', guess=True) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
770 parameters = fit.best_values | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
771 x_low = parameters.get('center1', None) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
772 x_upp = parameters.get('center2', None) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
773 sig_low = parameters.get('sigma1', None) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
774 sig_upp = parameters.get('sigma2', None) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
775 if (x_low is not None and x_upp is not None and sig_low is not None and | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
776 sig_upp is not None and 0 <= x_low < x_upp <= x_sum.size and | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
777 (sig_low+sig_upp)/(x_upp-x_low) < 0.1): | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
778 if num_tomo_stacks == 1 or num_x_min is None: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
779 x_low = int(x_low-(x_upp-x_low)/10) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
780 x_upp = int(x_upp+(x_upp-x_low)/10) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
781 else: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
782 x_low = int((x_low+x_upp)/2-num_x_min/2) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
783 x_upp = x_low+num_x_min | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
784 if x_low < 0: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
785 x_low = 0 | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
786 if x_upp > x_sum.size: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
787 x_upp = x_sum.size | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
788 else: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
789 x_low = 0 | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
790 x_upp = x_sum.size | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
791 quickPlot((range(x_sum.size), x_sum), | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
792 ([x_low, x_low], [x_sum_min, x_sum_max], 'r-'), | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
793 ([x_upp-1, x_upp-1], [x_sum_min, x_sum_max], 'r-'), | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
794 title=f'sum bright field over theta/y (row bounds: [{x_low}, {x_upp}])', | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
795 path='setup_pngs', name='detectorbounds.png', save_fig=True, save_only=True, | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
796 show_grid=True) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
797 for i,stack in enumerate(stacks): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
798 tomo_stack = loadImageStack(tomo_stack_files[i], self.config['data_filetype'], | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
799 stack['img_offset'], 1) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
800 tomo_stack = tomo_stack[0,:,:] | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
801 if num_x_min is not None: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
802 tomo_stack_max = tomo_stack.max() | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
803 tomo_stack[x_low,:] = tomo_stack_max | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
804 tomo_stack[x_upp-1,:] = tomo_stack_max | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
805 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
806 quickImshow(tomo_stack, title=title, path='setup_pngs', | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
807 name=f'tomo_{stack["index"]}.png', save_fig=True, save_only=True, | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
808 show_grid=True) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
809 del tomo_stack | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
810 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
811 # Update config and save to file | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
812 img_x_bounds = [x_low, x_upp] | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
813 logging.debug(f'img_x_bounds: {img_x_bounds}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
814 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
815 self.cf.config['preprocess'] = {'img_x_bounds' : img_x_bounds} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
816 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
817 preprocess['img_x_bounds'] = img_x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
818 self.cf.saveFile(self.config_out) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
819 del x_sum | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
820 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
821 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
822 # For one tomography stack only: load the first image | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
823 title = None | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
824 quickImshow(self.tbf, title='bright field') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
825 if num_tomo_stacks == 1: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
826 tomo_stack = loadImageStack(tomo_stack_files[0], self.config['data_filetype'], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
827 stacks[0]['img_offset'], 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
828 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
829 quickImshow(tomo_stack[0,:,:], title=title) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
830 tomo_or_bright = input_menu(['bright field', 'first tomography image'], | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
831 header='\nSelect image bounds from') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
832 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
833 print('\nSelect image bounds from bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
834 tomo_or_bright = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
835 if tomo_or_bright: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
836 x_sum = np.sum(tomo_stack[0,:,:], 1) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
837 use_bounds = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
838 if img_x_bounds[0] is not None and img_x_bounds[1] is not None: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
839 tmp = np.copy(tomo_stack[0,:,:]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
840 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
841 tmp[img_x_bounds[0],:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
842 tmp[img_x_bounds[1]-1,:] = tmp_max | 
| 
43
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
843 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
844 quickImshow(tmp, title=title) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
845 del tmp | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
846 x_sum_min = x_sum.min() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
847 x_sum_max = x_sum.max() | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
848 quickPlot((range(x_sum.size), x_sum), | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
849 ([img_x_bounds[0], img_x_bounds[0]], [x_sum_min, x_sum_max], 'r-'), | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
850 ([img_x_bounds[1]-1, img_x_bounds[1]-1], [x_sum_min, x_sum_max], 'r-'), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
851 title='sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
852 print(f'lower bound = {img_x_bounds[0]} (inclusive)\n'+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
853 f'upper bound = {img_x_bounds[1]} (exclusive)]') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
854 use_bounds = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
855 if not use_bounds: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
856 img_x_bounds = list(selectImageBounds(tomo_stack[0,:,:], 0, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
857 img_x_bounds[0], img_x_bounds[1], num_x_min, | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
858 f'tomography image at theta={self.config["theta_range"]["start"]}')) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
859 if num_x_min is not None and img_x_bounds[1]-img_x_bounds[0]+1 < num_x_min: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
860 logging.warning('Image bounds and pixel size prevent seamless stacking') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
861 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
862 quickImshow(tomo_stack[0,:,:], title=title, path=self.output_folder, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
863 save_fig=self.save_plots, save_only=True) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
864 quickPlot(range(img_x_bounds[0], img_x_bounds[1]), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
865 x_sum[img_x_bounds[0]:img_x_bounds[1]], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
866 title='sum over theta and y', path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
867 save_fig=self.save_plots, save_only=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
868 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
869 x_sum = np.sum(self.tbf, 1) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
870 x_sum_min = x_sum.min() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
871 x_sum_max = x_sum.max() | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
872 use_bounds = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
873 if img_x_bounds[0] is not None and img_x_bounds[1] is not None: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
874 tmp = np.copy(self.tbf) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
875 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
876 tmp[img_x_bounds[0],:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
877 tmp[img_x_bounds[1]-1,:] = tmp_max | 
| 
43
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
878 title = 'bright field' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
879 quickImshow(tmp, title=title) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
880 del tmp | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
881 quickPlot((range(x_sum.size), x_sum), | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
882 ([img_x_bounds[0], img_x_bounds[0]], [x_sum_min, x_sum_max], 'r-'), | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
883 ([img_x_bounds[1]-1, img_x_bounds[1]-1], [x_sum_min, x_sum_max], 'r-'), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
884 title='sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
885 print(f'lower bound = {img_x_bounds[0]} (inclusive)\n'+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
886 f'upper bound = {img_x_bounds[1]} (exclusive)]') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
887 use_bounds = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
888 if not use_bounds: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
889 use_fit = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
890 fit = Fit.fit_data(np.array(range(len(x_sum))), x_sum, models='rectangle', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
891 form='atan', guess=True) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
892 parameters = fit.best_values | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
893 x_low = parameters.get('center1', None) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
894 x_upp = parameters.get('center2', None) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
895 sig_low = parameters.get('sigma1', None) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
896 sig_upp = parameters.get('sigma2', None) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
897 if (x_low is not None and x_upp is not None and sig_low is not None and | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
898 sig_upp is not None and 0 <= x_low < x_upp <= x_sum.size and | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
899 (sig_low+sig_upp)/(x_upp-x_low) < 0.1): | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
900 if num_tomo_stacks == 1 or num_x_min is None: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
901 x_low = int(x_low-(x_upp-x_low)/10) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
902 x_upp = int(x_upp+(x_upp-x_low)/10) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
903 else: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
904 x_low = int((x_low+x_upp)/2-num_x_min/2) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
905 x_upp = x_low+num_x_min | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
906 if x_low < 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
907 x_low = 0 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
908 if x_upp > x_sum.size: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
909 x_upp = x_sum.size | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
910 tmp = np.copy(self.tbf) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
911 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
912 tmp[x_low,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
913 tmp[x_upp-1,:] = tmp_max | 
| 
43
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
914 title = 'bright field' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
915 quickImshow(tmp, title=title) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
916 del tmp | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
917 quickPlot((range(x_sum.size), x_sum), | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
918 ([x_low, x_low], [x_sum_min, x_sum_max], 'r-'), | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
919 ([x_upp, x_upp], [x_sum_min, x_sum_max], 'r-'), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
920 title='sum over theta and y') | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
921 print(f'lower bound = {x_low} (inclusive)') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
922 print(f'upper bound = {x_upp} (exclusive)]') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
923 use_fit = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
924 if use_fit: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
925 img_x_bounds = [x_low, x_upp] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
926 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
927 accept = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
928 while not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
929 mask, img_x_bounds = draw_mask_1d(x_sum, title='select x data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
930 legend='sum over theta and y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
931 print(f'img_x_bounds = {img_x_bounds}') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
932 while (len(img_x_bounds) != 1 or (len(x_sum) >= num_x_min and | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
933 img_x_bounds[0][1]-img_x_bounds[0][0]+1 < num_x_min)): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
934 exit('Should not be here') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
935 print('Please select exactly one continuous range') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
936 mask, img_x_bounds = draw_mask_1d(x_sum, title='select x data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
937 legend='sum over theta and y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
938 img_x_bounds = list(img_x_bounds[0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
939 quickPlot(x_sum, vlines=img_x_bounds, title='sum over theta and y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
940 print(f'img_x_bounds = {img_x_bounds} (lower bound inclusive, upper bound '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
941 'exclusive)') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
942 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
943 if not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
944 img_x_bounds = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
945 if num_x_min is not None and img_x_bounds[1]-img_x_bounds[0]+1 < num_x_min: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
946 logging.warning('Image bounds and pixel size prevent seamless stacking') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
947 #quickPlot(range(img_x_bounds[0], img_x_bounds[1]), | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
948 # x_sum[img_x_bounds[0]:img_x_bounds[1]], | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
949 # title='sum over theta and y', path=self.output_folder, | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
950 # save_fig=self.save_plots, save_only=True) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
951 quickPlot((range(x_sum.size), x_sum), | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
952 ([img_x_bounds[0], img_x_bounds[0]], [x_sum_min, x_sum_max], 'r-'), | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
953 ([img_x_bounds[1], img_x_bounds[1]], [x_sum_min, x_sum_max], 'r-'), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
954 title='sum over theta and y', path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
955 save_fig=self.save_plots, save_only=True) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
956 del x_sum | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
957 for i,stack in enumerate(stacks): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
958 tomo_stack = loadImageStack(tomo_stack_files[i], self.config['data_filetype'], | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
959 stack['img_offset'], 1) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
960 tomo_stack = tomo_stack[0,:,:] | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
961 if num_x_min is not None: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
962 tomo_stack_max = tomo_stack.max() | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
963 tomo_stack[img_x_bounds[0],:] = tomo_stack_max | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
964 tomo_stack[img_x_bounds[1]-1,:] = tomo_stack_max | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
965 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
43
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
966 if self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
967 quickImshow(tomo_stack, title=title, path='setup_pngs', | 
| 
43
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
968 name=f'tomo_{stack["index"]}.png', save_fig=True, save_only=True, | 
| 
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
969 show_grid=True) | 
| 
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
970 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
971 quickImshow(tomo_stack, title=title, path=self.output_folder, | 
| 
43
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
972 name=f'tomo_{stack["index"]}.png', save_fig=self.save_plots, | 
| 
 
0b9ce9489ecc
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 006ce85b82c2f8eb386cb1648803d7768016c067"
 
rv43 
parents: 
41 
diff
changeset
 | 
973 save_only=True, show_grid=True) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
974 del tomo_stack | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
975 logging.debug(f'img_x_bounds: {img_x_bounds}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
976 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
977 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
978 clearImshow('bright field') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
979 clearPlot('sum over theta and y') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
980 if title: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
981 clearPlot(title) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
982 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
983 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
984 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
985 self.cf.config['preprocess'] = {'img_x_bounds' : img_x_bounds} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
986 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
987 preprocess['img_x_bounds'] = img_x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
988 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
989 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
990 def _setZoomOrSkip(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
991 """Set zoom and/or theta skip to reduce memory the requirement for the analysis. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
992 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
993 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
994 zoom_perc = 100 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
995 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
996 if preprocess is None or 'zoom_perc' not in preprocess: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
997 if input_yesno('\nDo you want to zoom in to reduce memory requirement (y/n)?', 'n'): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
998 zoom_perc = input_int(' Enter zoom percentage', 1, 100) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
999 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1000 zoom_perc = preprocess['zoom_perc'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1001 if is_num(zoom_perc, 1., 100.): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1002 zoom_perc = int(zoom_perc) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1003 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1004 illegal_value(zoom_perc, 'preprocess:zoom_perc', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1005 zoom_perc = 100 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1006 num_theta_skip = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1007 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1008 if preprocess is None or 'num_theta_skip' not in preprocess: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1009 if input_yesno('Do you want to skip thetas to reduce memory requirement (y/n)?', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1010 'n'): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1011 num_theta_skip = input_int(' Enter the number skip theta interval', 0, | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1012 self.num_thetas-1) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1013 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1014 num_theta_skip = preprocess['num_theta_skip'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1015 if not is_int(num_theta_skip, 0): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1016 illegal_value(num_theta_skip, 'preprocess:num_theta_skip', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1017 num_theta_skip = 0 | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1018 logging.debug(f'zoom_perc = {zoom_perc}') | 
| 
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1019 logging.debug(f'num_theta_skip = {num_theta_skip}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1020 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1021 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1022 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1023 self.cf.config['preprocess'] = {'zoom_perc' : zoom_perc, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1024 'num_theta_skip' : num_theta_skip} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1025 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1026 preprocess['zoom_perc'] = zoom_perc | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1027 preprocess['num_theta_skip'] = num_theta_skip | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1028 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1029 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1030 def _loadTomo(self, base_name, index, required=False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1031 """Load a tomography stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1032 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1033 # stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1034 zoom_perc = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1035 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1036 if preprocess: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1037 zoom_perc = preprocess.get('zoom_perc') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1038 if zoom_perc is None or zoom_perc == 100: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1039 title = f'{base_name} fullres' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1040 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1041 title = f'{base_name} {zoom_perc}p' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1042 title += f'_{index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1043 tomo_file = re.sub(r"\s+", '_', f'{self.output_folder}/{title}.npy') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1044 load_flag = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1045 available = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1046 if os.path.isfile(tomo_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1047 available = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1048 if required: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1049 load_flag = True | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1050 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1051 load_flag = input_yesno(f'\nDo you want to load {tomo_file} (y/n)?') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1052 stack = np.array([]) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1053 if load_flag: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1054 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1055 logging.info(f'Loading {tomo_file} ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1056 try: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1057 stack = np.load(tomo_file) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1058 except IOError or ValueError: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1059 stack = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1060 logging.error(f'Error loading {tomo_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1061 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
 | 
1062 if stack.size: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1063 quickImshow(stack[:,0,:], title=title, path=self.output_folder, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1064 save_fig=self.save_plots, save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1065 return stack, available | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1066 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1067 def _saveTomo(self, base_name, stack, index=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1068 """Save a tomography stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1069 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1070 zoom_perc = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1071 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1072 if preprocess: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1073 zoom_perc = preprocess.get('zoom_perc') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1074 if zoom_perc is None or zoom_perc == 100: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1075 title = f'{base_name} fullres' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1076 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1077 title = f'{base_name} {zoom_perc}p' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1078 if index: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1079 title += f'_{index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1080 tomo_file = re.sub(r"\s+", '_', f'{self.output_folder}/{title}.npy') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1081 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1082 logging.info(f'Saving {tomo_file} ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1083 np.save(tomo_file, stack) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1084 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
 | 
1085 | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1086 def _genTomo(self, tomo_stack_files, available_stacks, num_core=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1087 """Generate tomography fields. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1088 """ | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1089 if num_core is None: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1090 num_core = self.num_core | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1091 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1092 assert(len(self.tomo_stacks) == self.config['stack_info']['num']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1093 assert(len(self.tomo_stacks) == len(stacks)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1094 if len(available_stacks) != len(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1095 logging.warning('Illegal dimension of available_stacks in _genTomo'+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1096 f'({len(available_stacks)}'); | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1097 available_stacks = [False]*self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1098 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1099 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1100 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1101 img_x_bounds = [0, self.tbf.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1102 img_y_bounds = [0, self.tbf.shape[1]] | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1103 zoom_perc = 100 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1104 num_theta_skip = 0 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1105 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1106 img_x_bounds = preprocess.get('img_x_bounds', [0, self.tbf.shape[0]]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1107 img_y_bounds = preprocess.get('img_y_bounds', [0, self.tbf.shape[1]]) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1108 zoom_perc = preprocess.get('zoom_perc', 100) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1109 num_theta_skip = preprocess.get('num_theta_skip', 0) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1110 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1111 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1112 tdf = self.tdf[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
 | 
1113 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1114 logging.warning('Dark field unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1115 if not self.tbf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1116 raise ValueError('Bright field unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1117 tbf = self.tbf[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
 | 
1118 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1119 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1120 # Check if stack is already loaded or available | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1121 if self.tomo_stacks[i].size or available_stacks[i]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1122 continue | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1123 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1124 # Load a stack of tomography images | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1125 index = stack['index'] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1126 t0 = time() | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1127 tomo_stack = loadImageStack(tomo_stack_files[i], self.config['data_filetype'], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1128 stack['img_offset'], self.config['theta_range']['num'], num_theta_skip, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1129 img_x_bounds, img_y_bounds) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1130 tomo_stack = tomo_stack.astype('float64') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1131 logging.debug(f'loading stack {index} took {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1132 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1133 # Subtract dark field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1134 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1135 t0 = time() | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1136 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1137 ne.evaluate('tomo_stack-tdf', out=tomo_stack) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1138 logging.debug(f'subtracting dark field took {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1139 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1140 # Normalize | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1141 t0 = time() | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1142 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1143 ne.evaluate('tomo_stack/tbf', out=tomo_stack, truediv=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1144 logging.debug(f'normalizing took {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1145 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1146 # Remove non-positive values and linearize data | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1147 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1148 cutoff = 1.e-6 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1149 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1150 ne.evaluate('where(tomo_stack<cutoff, cutoff, tomo_stack)', out=tomo_stack) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1151 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1152 ne.evaluate('-log(tomo_stack)', out=tomo_stack) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1153 logging.debug('removing non-positive values and linearizing data took '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1154 f'{time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1155 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1156 # Get rid of nans/infs that may be introduced by normalization | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1157 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1158 np.where(np.isfinite(tomo_stack), tomo_stack, 0.) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1159 logging.debug(f'remove nans/infs took {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1160 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1161 # Downsize tomography stack to smaller size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1162 tomo_stack = tomo_stack.astype('float32') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1163 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1164 title = f'red stack fullres {index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1165 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1166 quickImshow(tomo_stack[0,:,:], title=title, path=self.output_folder, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1167 save_fig=self.save_plots, save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1168 if zoom_perc != 100: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1169 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1170 logging.info(f'Zooming in ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1171 tomo_zoom_list = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1172 for j in range(tomo_stack.shape[0]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1173 tomo_zoom = spi.zoom(tomo_stack[j,:,:], 0.01*zoom_perc) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1174 tomo_zoom_list.append(tomo_zoom) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1175 tomo_stack = np.stack([tomo_zoom for tomo_zoom in tomo_zoom_list]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1176 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
 | 
1177 del tomo_zoom_list | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1178 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1179 title = f'red stack {zoom_perc}p {index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1180 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1181 quickImshow(tomo_stack[0,:,:], title=title, path=self.output_folder, | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1182 save_fig=self.save_plots, save_only=self.save_plots_only) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1183 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1184 # Convert tomography stack from theta,row,column to row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1185 tomo_stack = np.swapaxes(tomo_stack, 0, 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1186 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1187 # Save tomography stack to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1188 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1189 if not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1190 self._saveTomo('red stack', tomo_stack, index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1191 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1192 np.savetxt(f'{self.output_folder}/red_stack_{index}.txt', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1193 tomo_stack[0,:,:], fmt='%.6e') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1194 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1195 # Combine stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1196 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1197 self.tomo_stacks[i] = tomo_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1198 logging.debug(f'combining nstack took {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1199 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1200 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1201 stack['preprocessed'] = True | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1202 stack.pop('reconstructed', 'reconstructed not found') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1203 find_center = self.config.get('find_center') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1204 if find_center: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1205 find_center.pop('completed', 'completed not found') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1206 if self.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1207 find_center.pop('lower_center_offset', 'lower_center_offset not found') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1208 find_center.pop('upper_center_offset', 'upper_center_offset not found') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1209 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1210 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1211 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1212 del tdf | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1213 del tbf | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1214 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1215 def _reconstructOnePlane(self, tomo_plane_T, center, thetas_deg, eff_pixel_size, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1216 cross_sectional_dim, plot_sinogram=True, num_core=1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1217 """Invert the sinogram for a single tomography plane. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1218 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1219 # tomo_plane_T index order: column,theta | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1220 assert(0 <= center < tomo_plane_T.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1221 center_offset = center-tomo_plane_T.shape[0]/2 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1222 two_offset = 2*int(np.round(center_offset)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1223 two_offset_abs = np.abs(two_offset) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1224 max_rad = int(0.5*(cross_sectional_dim/eff_pixel_size)*1.1) # 10% slack to avoid edge effects | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
1225 if max_rad > 0.5*tomo_plane_T.shape[0]: | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
1226 max_rad = 0.5*tomo_plane_T.shape[0] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1227 dist_from_edge = max(1, int(np.floor((tomo_plane_T.shape[0]-two_offset_abs)/2.)-max_rad)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1228 if two_offset >= 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1229 logging.debug(f'sinogram range = [{two_offset+dist_from_edge}, {-dist_from_edge}]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1230 sinogram = tomo_plane_T[two_offset+dist_from_edge:-dist_from_edge,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1231 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1232 logging.debug(f'sinogram range = [{dist_from_edge}, {two_offset-dist_from_edge}]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1233 sinogram = tomo_plane_T[dist_from_edge:two_offset-dist_from_edge,:] | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1234 if plot_sinogram and not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1235 quickImshow(sinogram.T, f'sinogram center offset{center_offset:.2f}', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1236 path=self.output_folder, save_fig=self.save_plots, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1237 save_only=self.save_plots_only, aspect='auto') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1238 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1239 # Inverting sinogram | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1240 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1241 recon_sinogram = iradon(sinogram, theta=thetas_deg, circle=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1242 logging.debug(f'inverting sinogram took {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1243 del sinogram | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1244 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1245 # Removing ring artifacts | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1246 # RV parameters for the denoise, gaussian, and ring removal will be different for different feature sizes | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1247 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1248 # recon_sinogram = filters.gaussian(recon_sinogram, 3.0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1249 recon_sinogram = spi.gaussian_filter(recon_sinogram, 0.5) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1250 recon_clean = np.expand_dims(recon_sinogram, axis=0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1251 del recon_sinogram | 
| 
38
 
c09b8ee8f68f
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 62ea2c5a3629c5e4b5b59fadc282214326f093aa"
 
rv43 
parents: 
37 
diff
changeset
 | 
1252 t1 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1253 logging.debug(f'running remove_ring on {num_core} cores ...') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1254 recon_clean = tomopy.misc.corr.remove_ring(recon_clean, rwidth=17, ncore=num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1255 logging.debug(f'... remove_ring took {time()-t1:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1256 logging.debug(f'filtering and removing ring artifact took {time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1257 return recon_clean | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1258 | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1259 def _plotEdgesOnePlane(self, recon_plane, title, path=None, weight=0.001): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1260 # RV parameters for the denoise, gaussian, and ring removal will be different for different feature sizes | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1261 edges = denoise_tv_chambolle(recon_plane, weight = weight) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1262 vmax = np.max(edges[0,:,:]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1263 vmin = -vmax | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1264 if self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1265 quickImshow(edges[0,:,:], title, path=path, save_fig=True, save_only=True, | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1266 cmap='gray', vmin=vmin, vmax=vmax) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1267 else: | 
| 
11
 
ec7c3e84d611
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 6d01e142af3a0daad7ab37d4ff02d0f1797057a7"
 
rv43 
parents: 
7 
diff
changeset
 | 
1268 if path is None: | 
| 
 
ec7c3e84d611
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 6d01e142af3a0daad7ab37d4ff02d0f1797057a7"
 
rv43 
parents: 
7 
diff
changeset
 | 
1269 path=self.output_folder | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1270 quickImshow(edges[0,:,:], f'{title} coolwarm', path=path, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1271 save_fig=self.save_plots, save_only=self.save_plots_only, cmap='coolwarm') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1272 quickImshow(edges[0,:,:], f'{title} gray', path=path, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1273 save_fig=self.save_plots, save_only=self.save_plots_only, cmap='gray', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1274 vmin=vmin, vmax=vmax) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1275 del edges | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1276 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1277 def _findCenterOnePlane(self, sinogram, row, thetas_deg, eff_pixel_size, cross_sectional_dim, | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1278 tol=0.1, num_core=1, galaxy_param=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1279 """Find center for a single tomography plane. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1280 """ | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1281 if self.galaxy_flag: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1282 assert(isinstance(galaxy_param, dict)) | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1283 if not os.path.exists('find_center_pngs'): | 
| 
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1284 os.mkdir('find_center_pngs') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1285 # sinogram index order: theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1286 # need index order column,theta for iradon, so take transpose | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1287 sinogram_T = sinogram.T | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1288 center = sinogram.shape[1]/2 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1289 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1290 # try automatic center finding routines for initial value | 
| 
38
 
c09b8ee8f68f
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 62ea2c5a3629c5e4b5b59fadc282214326f093aa"
 
rv43 
parents: 
37 
diff
changeset
 | 
1291 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1292 if num_core > num_core_tomopy_limit: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1293 logging.debug(f'running find_center_vo on {num_core_tomopy_limit} cores ...') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1294 tomo_center = tomopy.find_center_vo(sinogram, ncore=num_core_tomopy_limit) | 
| 
37
 
51dc93d0806a
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 87acf8a257d5d51cf249de085e555bb11d1dbd88"
 
rv43 
parents: 
36 
diff
changeset
 | 
1295 else: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1296 logging.debug(f'running find_center_vo on {num_core} cores ...') | 
| 
37
 
51dc93d0806a
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 87acf8a257d5d51cf249de085e555bb11d1dbd88"
 
rv43 
parents: 
36 
diff
changeset
 | 
1297 tomo_center = tomopy.find_center_vo(sinogram, ncore=num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1298 logging.debug(f'... find_center_vo took {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1299 center_offset_vo = tomo_center-center | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1300 if self.test_mode: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1301 logging.info(f'Center at row {row} using Nghia Vo’s method = {center_offset_vo:.2f}') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1302 del sinogram_T | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1303 return float(center_offset_vo) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1304 elif self.galaxy_flag: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1305 logging.info(f'Center at row {row} using Nghia Vo’s method = {center_offset_vo:.2f}') | 
| 
38
 
c09b8ee8f68f
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 62ea2c5a3629c5e4b5b59fadc282214326f093aa"
 
rv43 
parents: 
37 
diff
changeset
 | 
1306 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1307 logging.debug(f'running _reconstructOnePlane on {num_core} cores ...') | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1308 recon_plane = self._reconstructOnePlane(sinogram_T, tomo_center, thetas_deg, | 
| 
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1309 eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1310 logging.debug(f'... _reconstructOnePlane took {time()-t0:.2f} seconds!') | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1311 title = f'edges row{row} center offset{center_offset_vo:.2f} Vo' | 
| 
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1312 self._plotEdgesOnePlane(recon_plane, title, path='find_center_pngs') | 
| 
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1313 del recon_plane | 
| 
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1314 if not galaxy_param['center_type_selector']: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1315 del sinogram_T | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1316 return float(center_offset_vo) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1317 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1318 print(f'Center at row {row} using Nghia Vo’s method = {center_offset_vo:.2f}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1319 recon_plane = self._reconstructOnePlane(sinogram_T, tomo_center, thetas_deg, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1320 eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1321 title = f'edges row{row} center offset{center_offset_vo:.2f} Vo' | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1322 self._plotEdgesOnePlane(recon_plane, title) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1323 if not self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1324 if input_yesno('Try finding center using phase correlation (y/n)?', 'n'): | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1325 tomo_center = tomopy.find_center_pc(sinogram, sinogram, tol=0.1, | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1326 rotc_guess=tomo_center) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1327 error = 1. | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1328 while error > tol: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1329 prev = tomo_center | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1330 tomo_center = tomopy.find_center_pc(sinogram, sinogram, tol=tol, | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1331 rotc_guess=tomo_center) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1332 error = np.abs(tomo_center-prev) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1333 center_offset = tomo_center-center | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1334 print(f'Center at row {row} using phase correlation = {center_offset:.2f}') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1335 recon_plane = self._reconstructOnePlane(sinogram_T, tomo_center, thetas_deg, | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1336 eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1337 title = f'edges row{row} center_offset{center_offset:.2f} PC' | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1338 self._plotEdgesOnePlane(recon_plane, title) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1339 if input_yesno('Accept a center location (y) or continue search (n)?', 'y'): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1340 center_offset = input_num(' Enter chosen center offset', -center, center, | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1341 center_offset_vo) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1342 del sinogram_T | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1343 del recon_plane | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1344 return float(center_offset) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1345 | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1346 # perform center finding search | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1347 while True: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1348 if self.galaxy_flag and galaxy_param and galaxy_param['center_type_selector']: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1349 set_center = center_offset_vo | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1350 if galaxy_param['center_type_selector'] == 'user': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1351 set_center = galaxy_param['set_center'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1352 set_range = galaxy_param['set_range'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1353 center_offset_step = galaxy_param['set_step'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1354 if (not is_num(set_range, 0) or not is_num(center_offset_step) or | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1355 center_offset_step <= 0): | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1356 logging.warning('Illegal center finding search parameter, skip search') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1357 del sinogram_T | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1358 return float(center_offset_vo) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1359 set_range = center_offset_step*max(1, int(set_range/center_offset_step)) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1360 center_offset_low = set_center-set_range | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1361 center_offset_upp = set_center+set_range | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1362 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1363 center_offset_low = input_int('\nEnter lower bound for center offset', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1364 -center, center) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1365 center_offset_upp = input_int('Enter upper bound for center offset', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1366 center_offset_low, center) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1367 if center_offset_upp == center_offset_low: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1368 center_offset_step = 1 | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1369 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1370 center_offset_step = input_int('Enter step size for center offset search', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1371 1, center_offset_upp-center_offset_low) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1372 num_center_offset = 1+int((center_offset_upp-center_offset_low)/center_offset_step) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1373 center_offsets = np.linspace(center_offset_low, center_offset_upp, num_center_offset) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1374 for center_offset in center_offsets: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1375 if center_offset == center_offset_vo: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1376 continue | 
| 
38
 
c09b8ee8f68f
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 62ea2c5a3629c5e4b5b59fadc282214326f093aa"
 
rv43 
parents: 
37 
diff
changeset
 | 
1377 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1378 logging.debug(f'running _reconstructOnePlane on {num_core} cores ...') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1379 recon_plane = self._reconstructOnePlane(sinogram_T, center_offset+center, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1380 thetas_deg, eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1381 logging.debug(f'... _reconstructOnePlane took {time()-t0:.2f} seconds!') | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1382 title = f'edges row{row} center_offset{center_offset:.2f}' | 
| 
11
 
ec7c3e84d611
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 6d01e142af3a0daad7ab37d4ff02d0f1797057a7"
 
rv43 
parents: 
7 
diff
changeset
 | 
1383 if self.galaxy_flag: | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1384 self._plotEdgesOnePlane(recon_plane, title, path='find_center_pngs') | 
| 
11
 
ec7c3e84d611
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 6d01e142af3a0daad7ab37d4ff02d0f1797057a7"
 
rv43 
parents: 
7 
diff
changeset
 | 
1385 else: | 
| 
 
ec7c3e84d611
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 6d01e142af3a0daad7ab37d4ff02d0f1797057a7"
 
rv43 
parents: 
7 
diff
changeset
 | 
1386 self._plotEdgesOnePlane(recon_plane, title) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1387 if self.galaxy_flag or input_int('\nContinue (0) or end the search (1)', 0, 1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1388 break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1389 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1390 del sinogram_T | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1391 del recon_plane | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1392 if self.galaxy_flag: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1393 center_offset = center_offset_vo | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1394 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1395 center_offset = input_num(' Enter chosen center offset', -center, center) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1396 return float(center_offset) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1397 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1398 def _reconstructOneTomoStack(self, tomo_stack, thetas, row_bounds=None, | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1399 center_offsets=[], sigma=0.1, rwidth=30, num_core=1, algorithm='gridrec', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1400 run_secondary_sirt=False, secondary_iter=100): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1401 """reconstruct a single tomography stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1402 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1403 # stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1404 # thetas must be in radians | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1405 # centers_offset: tomography axis shift in pixels relative to column center | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1406 # RV should we remove stripes? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1407 # https://tomopy.readthedocs.io/en/latest/api/tomopy.prep.stripe.html | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1408 # RV should we remove rings? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1409 # https://tomopy.readthedocs.io/en/latest/api/tomopy.misc.corr.html | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1410 # RV: Add an option to do (extra) secondary iterations later or to do some sort of convergence test? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1411 if row_bounds is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1412 row_bounds = [0, tomo_stack.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1413 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1414 if not is_index_range(row_bounds, 0, tomo_stack.shape[0]): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1415 raise ValueError('Illegal row bounds in reconstructOneTomoStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1416 if thetas.size != tomo_stack.shape[1]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1417 raise ValueError('theta dimension mismatch in reconstructOneTomoStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1418 if not len(center_offsets): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1419 centers = np.zeros((row_bounds[1]-row_bounds[0])) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1420 elif len(center_offsets) == 2: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1421 centers = np.linspace(center_offsets[0], center_offsets[1], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1422 row_bounds[1]-row_bounds[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1423 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1424 if center_offsets.size != row_bounds[1]-row_bounds[0]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1425 raise ValueError('center_offsets dimension mismatch in reconstructOneTomoStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1426 centers = center_offsets | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1427 centers += tomo_stack.shape[2]/2 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1428 if True: | 
| 
39
 
8a3036b0a34c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit ebd998fc223b35670269b851ff6d12178ced3ee8"
 
rv43 
parents: 
38 
diff
changeset
 | 
1429 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1430 if num_core > num_core_tomopy_limit: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1431 logging.debug('running remove_stripe_fw on {num_core_tomopy_limit} cores ...') | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1432 tomo_stack = tomopy.prep.stripe.remove_stripe_fw( | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1433 tomo_stack[row_bounds[0]:row_bounds[1]], sigma=sigma, | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1434 ncore=num_core_tomopy_limit) | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1435 else: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1436 logging.debug(f'running remove_stripe_fw on {num_core} cores ...') | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1437 tomo_stack = tomopy.prep.stripe.remove_stripe_fw( | 
| 
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1438 tomo_stack[row_bounds[0]:row_bounds[1]], sigma=sigma, ncore=num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1439 logging.debug(f'... tomopy.prep.stripe.remove_stripe_fw took {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1440 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1441 tomo_stack = tomo_stack[row_bounds[0]:row_bounds[1]] | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1442 logging.debug('performing initial reconstruction') | 
| 
39
 
8a3036b0a34c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit ebd998fc223b35670269b851ff6d12178ced3ee8"
 
rv43 
parents: 
38 
diff
changeset
 | 
1443 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1444 logging.debug(f'running recon on {num_core} cores ...') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1445 tomo_recon_stack = tomopy.recon(tomo_stack, thetas, centers, sinogram_order=True, | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1446 algorithm=algorithm, ncore=num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1447 logging.debug(f'... recon took {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1448 if run_secondary_sirt and secondary_iter > 0: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1449 logging.debug(f'running {secondary_iter} secondary iterations') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1450 #options = {'method':'SIRT_CUDA', 'proj_type':'cuda', 'num_iter':secondary_iter} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1451 #RV: doesn't work for me: "Error: CUDA error 803: system has unsupported display driver / | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1452 # cuda driver combination." | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1453 #options = {'method':'SIRT', 'proj_type':'linear', 'MinConstraint': 0, 'num_iter':secondary_iter} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1454 #SIRT did not finish while running overnight | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1455 #options = {'method':'SART', 'proj_type':'linear', 'num_iter':secondary_iter} | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1456 options = {'method':'SART', 'proj_type':'linear', 'MinConstraint': 0, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1457 'num_iter':secondary_iter} | 
| 
39
 
8a3036b0a34c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit ebd998fc223b35670269b851ff6d12178ced3ee8"
 
rv43 
parents: 
38 
diff
changeset
 | 
1458 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1459 logging.debug(f'running recon on {num_core} cores ...') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1460 tomo_recon_stack = tomopy.recon(tomo_stack, thetas, centers, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1461 init_recon=tomo_recon_stack, options=options, sinogram_order=True, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1462 algorithm=tomopy.astra, ncore=num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1463 logging.debug(f'... recon took {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1464 if True: | 
| 
39
 
8a3036b0a34c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit ebd998fc223b35670269b851ff6d12178ced3ee8"
 
rv43 
parents: 
38 
diff
changeset
 | 
1465 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1466 logging.debug(f'running remove_ring on {num_core} cores ...') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1467 tomopy.misc.corr.remove_ring(tomo_recon_stack, rwidth=rwidth, out=tomo_recon_stack, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1468 ncore=num_core) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1469 logging.debug(f'... remove_ring took {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1470 return tomo_recon_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1471 | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1472 def findImageFiles(self, tiff_to_h5_flag = False): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1473 """Find all available image files. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1474 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1475 self.is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1476 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1477 # Find dark field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1478 dark_field = self.config['dark_field'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1479 img_start, num_imgs, dark_files = findImageFiles( | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1480 dark_field['data_path'], self.config['data_filetype'], 'dark field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1481 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1482 logging.error('Unable to find suitable dark field images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1483 if dark_field['data_path']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1484 self.is_valid = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1485 img_start_old = dark_field.get('img_start') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1486 num_imgs_old = dark_field.get('num') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1487 if num_imgs_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1488 dark_field['num'] = num_imgs | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1489 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1490 if num_imgs_old > num_imgs: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1491 logging.error('Inconsistent number of availaible dark field images') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1492 if dark_field['data_path']: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1493 self.is_valid = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1494 if img_start_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1495 dark_field['img_start'] = img_start | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1496 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1497 if img_start_old < img_start: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1498 logging.error('Inconsistent image start index for dark field images') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1499 if dark_field['data_path']: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1500 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1501 logging.info(f'Number of dark field images = {dark_field["num"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1502 logging.info(f'Dark field image start index = {dark_field["img_start"]}') | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1503 if num_imgs and tiff_to_h5_flag and self.config['data_filetype'] == 'tif': | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1504 dark_files = combine_tiffs_in_h5(dark_files, num_imgs, | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1505 f'{self.config["work_folder"]}/dark_field.h5') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1506 dark_field['data_path'] = dark_files[0] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1507 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1508 # Find bright field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1509 bright_field = self.config['bright_field'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1510 img_start, num_imgs, bright_files = findImageFiles( | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1511 bright_field['data_path'], self.config['data_filetype'], 'bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1512 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1513 logging.error('Unable to find suitable bright field images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1514 self.is_valid = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1515 img_start_old = bright_field.get('img_start') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1516 num_imgs_old = bright_field.get('num') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1517 if num_imgs_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1518 bright_field['num'] = num_imgs | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1519 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1520 if num_imgs_old > num_imgs: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1521 logging.error('Inconsistent number of availaible bright field images') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1522 self.is_valid = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1523 if img_start_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1524 bright_field['img_start'] = img_start | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1525 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1526 if img_start_old < img_start: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1527 logging.warning('Inconsistent image start index for bright field images') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1528 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1529 logging.info(f'Number of bright field images = {bright_field["num"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1530 logging.info(f'Bright field image start index = {bright_field["img_start"]}') | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1531 if num_imgs and tiff_to_h5_flag and self.config['data_filetype'] == 'tif': | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1532 bright_files = combine_tiffs_in_h5(bright_files, num_imgs, | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1533 f'{self.config["work_folder"]}/bright_field.h5') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1534 bright_field['data_path'] = bright_files[0] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1535 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1536 # Find tomography images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1537 tomo_stack_files = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1538 for stack in self.config['stack_info']['stacks']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1539 index = stack['index'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1540 img_start, num_imgs, tomo_files = findImageFiles( | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1541 stack['data_path'], self.config['data_filetype'], f'tomography set {index}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1542 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1543 logging.error('Unable to find suitable tomography images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1544 self.is_valid = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1545 img_start_old = stack.get('img_start') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1546 num_imgs_old = stack.get('num') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1547 if num_imgs_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1548 stack['num'] = num_imgs | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1549 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1550 if num_imgs_old > num_imgs: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1551 logging.error('Inconsistent number of availaible tomography images') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1552 self.is_valid = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1553 if img_start_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1554 stack['img_start'] = img_start | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1555 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1556 if img_start_old < img_start: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1557 logging.warning('Inconsistent image start index for tomography images') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1558 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1559 logging.info(f'Number of tomography images for set {index} = {stack["num"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1560 logging.info(f'Tomography set {index} image start index = {stack["img_start"]}') | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1561 if num_imgs and tiff_to_h5_flag and self.config['data_filetype'] == 'tif': | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1562 tomo_files = combine_tiffs_in_h5(tomo_files, num_imgs, | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1563 f'{self.config["work_folder"]}/tomo_field_{index}.h5') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1564 stack['data_path'] = tomo_files[0] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1565 tomo_stack_files.append(tomo_files) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1566 del tomo_files | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1567 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1568 # Safe updated config | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1569 if tiff_to_h5_flag: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1570 self.config['data_filetype'] == 'h5' | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1571 if self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1572 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1573 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1574 return dark_files, bright_files, tomo_stack_files | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1575 | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1576 def loadTomoStacks(self, input_name, recon_flag=False): | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1577 """Load tomography stacks (only for Galaxy). | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1578 """ | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1579 assert(self.galaxy_flag) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1580 t0 = time() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1581 logging.info(f'Loading preprocessed tomography stack from {input_name} ...') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1582 stack_info = self.config['stack_info'] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1583 stacks = stack_info.get('stacks') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1584 assert(len(self.tomo_stacks) == stack_info['num']) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1585 with np.load(input_name) as f: | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1586 if recon_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1587 for i,stack in enumerate(stacks): | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1588 self.tomo_recon_stacks[i] = f[f'set_{stack["index"]}'] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1589 logging.info(f'loaded stack {i}: index = {stack["index"]}, shape = '+ | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1590 f'{self.tomo_recon_stacks[i].shape}') | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1591 else: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1592 for i,stack in enumerate(stacks): | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1593 self.tomo_stacks[i] = f[f'set_{stack["index"]}'] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1594 logging.info(f'loaded stack {i}: index = {stack["index"]}, shape = '+ | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
1595 f'{self.tomo_stacks[i].shape}') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1596 logging.info(f'... done in {time()-t0:.2f} seconds!') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1597 | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1598 def genTomoStacks(self, galaxy_param=None, num_core=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1599 """Preprocess tomography images. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1600 """ | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1601 if num_core is None: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1602 num_core = self.num_core | 
| 
33
 
afb612b64f26
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit c566c32f7c1506ab271ae08eb14a2982ee511938"
 
rv43 
parents: 
32 
diff
changeset
 | 
1603 logging.info(f'num_core = {num_core}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1604 # Try loading any already preprocessed stacks (skip in Galaxy) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1605 # preprocessed stack order for each one in stack: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1606 stack_info = self.config['stack_info'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1607 stacks = stack_info['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1608 num_tomo_stacks = stack_info['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1609 assert(num_tomo_stacks == len(self.tomo_stacks)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1610 available_stacks = [False]*num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1611 if self.galaxy_flag: | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1612 assert(isinstance(galaxy_param, dict)) | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1613 tdf_files = galaxy_param['tdf_files'] | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1614 tbf_files = galaxy_param['tbf_files'] | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1615 tomo_stack_files = galaxy_param['tomo_stack_files'] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1616 assert(num_tomo_stacks == len(tomo_stack_files)) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1617 if not os.path.exists('setup_pngs'): | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1618 os.mkdir('setup_pngs') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1619 else: | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1620 if galaxy_param: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1621 logging.warning('Ignoring galaxy_param in genTomoStacks (only for Galaxy)') | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1622 galaxy_param = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1623 tdf_files, tbf_files, tomo_stack_files = self.findImageFiles() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1624 if not self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1625 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1626 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1627 if not self.tomo_stacks[i].size and stack.get('preprocessed', False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1628 self.tomo_stacks[i], available_stacks[i] = \ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1629 self._loadTomo('red stack', stack['index']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1630 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1631 # Preprocess any unloaded stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1632 if False in available_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1633 logging.debug('Preprocessing tomography images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1634 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1635 # Check required image files (skip in Galaxy) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1636 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1637 self._selectImageRanges(available_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1638 if not self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1639 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1640 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1641 # Generate dark field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1642 if tdf_files: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1643 self._genDark(tdf_files) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1644 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1645 # Generate bright field | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1646 self._genBright(tbf_files) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1647 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1648 # Set vertical detector bounds for image stack | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1649 self._setDetectorBounds(tomo_stack_files) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1650 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1651 # Set zoom and/or theta skip to reduce memory the requirement | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1652 self._setZoomOrSkip() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1653 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1654 # Generate tomography fields | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1655 self._genTomo(tomo_stack_files, available_stacks, num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1656 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1657 # Save tomography stack to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1658 if self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1659 t0 = time() | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
1660 output_name = galaxy_param['output_name'] | 
| 
2
 
b8977c98800b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0c40fb274acc13ebf7054379bb49ed13acec918e"
 
rv43 
parents: 
1 
diff
changeset
 | 
1661 logging.info(f'Saving preprocessed tomography stack to {output_name} ...') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1662 save_stacks = {f'set_{stack["index"]}':tomo_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1663 for stack,tomo_stack in zip(stacks,self.tomo_stacks)} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1664 np.savez(output_name, **save_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1665 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
 | 
1666 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1667 del available_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1668 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1669 # Adjust sample reference height, update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1670 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1671 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1672 img_x_bounds = [0, self.tbf.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1673 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1674 img_x_bounds = preprocess.get('img_x_bounds', [0, self.tbf.shape[0]]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1675 pixel_size = self.config['detector']['pixel_size'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1676 if pixel_size is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1677 raise ValueError('Detector pixel size unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1678 pixel_size *= img_x_bounds[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1679 for stack in stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1680 stack['ref_height'] = stack['ref_height']+pixel_size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1681 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1682 | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1683 def findCenters(self, galaxy_param=None, num_core=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1684 """Find rotation axis centers for the tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1685 """ | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1686 if num_core is None: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1687 num_core = self.num_core | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1688 logging.info(f'num_core = {num_core}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1689 logging.debug('Find centers for tomography stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1690 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1691 available_stacks = [stack['index'] for stack in stacks if stack.get('preprocessed', False)] | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1692 logging.debug('Available stacks: {available_stacks}') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1693 if self.galaxy_flag: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1694 row_bounds = galaxy_param['row_bounds'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1695 center_rows = galaxy_param['center_rows'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1696 center_type_selector = galaxy_param['center_type_selector'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1697 if center_type_selector: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1698 if center_type_selector == 'vo': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1699 set_center = None | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1700 elif center_type_selector == 'user': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1701 set_center = galaxy_param['set_center'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1702 else: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1703 logging.error('Illegal center_type_selector entry in galaxy_param '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1704 f'({center_type_selector})') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1705 galaxy_param['center_type_selector'] = None | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1706 logging.debug(f'row_bounds = {row_bounds}') | 
| 
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1707 logging.debug(f'center_rows = {center_rows}') | 
| 
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1708 logging.debug(f'center_type_selector = {center_type_selector}') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1709 else: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1710 if galaxy_param: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1711 logging.warning('Ignoring galaxy_param in findCenters (only for Galaxy)') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1712 galaxy_param = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1713 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1714 # Check for valid available center stack index | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1715 find_center = self.config.get('find_center') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1716 center_stack_index = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1717 if find_center and 'center_stack_index' in find_center: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1718 center_stack_index = find_center['center_stack_index'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1719 if (not isinstance(center_stack_index, int) or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1720 center_stack_index not in available_stacks): | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1721 illegal_value(center_stack_index, 'find_center:center_stack_index', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1722 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1723 if self.test_mode: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1724 assert(find_center.get('completed', False) == False) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1725 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1726 print('\nFound calibration center offset info for stack '+ | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1727 f'{center_stack_index}') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1728 if (input_yesno('Do you want to use this again (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1729 and find_center.get('completed', False) == True): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1730 return | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1731 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1732 # Load the required preprocessed stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1733 # preprocessed stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1734 num_tomo_stacks = self.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1735 assert(len(stacks) == num_tomo_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1736 assert(len(self.tomo_stacks) == num_tomo_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1737 if num_tomo_stacks == 1: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1738 if not center_stack_index: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1739 center_stack_index = stacks[0]['index'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1740 elif center_stack_index != stacks[0]['index']: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1741 raise ValueError(f'Inconsistent center_stack_index {center_stack_index}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1742 if not self.tomo_stacks[0].size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1743 self.tomo_stacks[0], available = self._loadTomo('red stack', center_stack_index, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1744 required=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1745 center_stack = self.tomo_stacks[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1746 if not center_stack.size: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1747 stacks[0]['preprocessed'] = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1748 raise OSError('Unable to load the required preprocessed tomography stack') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1749 assert(stacks[0].get('preprocessed', False) == True) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1750 elif self.galaxy_flag: | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1751 center_stack_index = stacks[int(num_tomo_stacks/2)]['index'] | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1752 tomo_stack_index = available_stacks.index(center_stack_index) | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1753 center_stack = self.tomo_stacks[tomo_stack_index] | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1754 if not center_stack.size: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1755 stacks[tomo_stack_index]['preprocessed'] = False | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1756 raise OSError('Unable to load the required preprocessed tomography stack') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1757 assert(stacks[tomo_stack_index].get('preprocessed', False) == True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1758 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1759 while True: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1760 if not center_stack_index: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1761 center_stack_index = input_int('\nEnter tomography stack index to get ' | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1762 f'rotation axis centers ({available_stacks})', inset=available_stacks) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1763 while center_stack_index not in available_stacks: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1764 center_stack_index = input_int('\nEnter tomography stack index to get ' | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1765 f'rotation axis centers ({available_stacks})', inset=available_stacks) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1766 tomo_stack_index = available_stacks.index(center_stack_index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1767 if not self.tomo_stacks[tomo_stack_index].size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1768 self.tomo_stacks[tomo_stack_index], available = self._loadTomo( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1769 'red stack', center_stack_index, required=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1770 center_stack = self.tomo_stacks[tomo_stack_index] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1771 if not center_stack.size: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1772 stacks[tomo_stack_index]['preprocessed'] = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1773 logging.error(f'Unable to load the {center_stack_index}th '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1774 'preprocessed tomography stack, pick another one') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1775 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1776 break | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1777 assert(stacks[tomo_stack_index].get('preprocessed', False) == True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1778 if find_center is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1779 self.config['find_center'] = {'center_stack_index' : center_stack_index} | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1780 find_center = self.config['find_center'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1781 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1782 find_center['center_stack_index'] = center_stack_index | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1783 if not self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1784 row_bounds = find_center.get('row_bounds', None) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1785 center_rows = [find_center.get('lower_row', None), | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1786 find_center.get('upper_row', None)] | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1787 if row_bounds is None: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1788 row_bounds = [0, center_stack.shape[0]] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1789 if row_bounds[0] == -1: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1790 row_bounds[0] = 0 | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1791 if row_bounds[1] == -1: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1792 row_bounds[1] = center_stack.shape[0] | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1793 if center_rows[0] == -1: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1794 center_rows[0] = 0 | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1795 if center_rows[1] == -1: | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
1796 center_rows[1] = center_stack.shape[0]-1 | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1797 if not is_index_range(row_bounds, 0, center_stack.shape[0]): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1798 illegal_value(row_bounds, 'row_bounds', 'Tomo:findCenters') | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1799 return | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1800 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1801 # Set thetas (in degrees) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1802 theta_range = self.config['theta_range'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1803 theta_start = theta_range['start'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1804 theta_end = theta_range['end'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1805 num_theta = theta_range['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1806 num_theta_skip = self.config['preprocess'].get('num_theta_skip', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1807 thetas_deg = np.linspace(theta_start, theta_end, int(num_theta/(num_theta_skip+1)), | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1808 endpoint=False) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1809 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1810 # Get non-overlapping sample row boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1811 zoom_perc = self.config['preprocess'].get('zoom_perc', 100) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1812 pixel_size = self.config['detector']['pixel_size'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1813 if pixel_size is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1814 raise ValueError('Detector pixel size unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1815 eff_pixel_size = 100.*pixel_size/zoom_perc | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1816 logging.debug(f'eff_pixel_size = {eff_pixel_size}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1817 if num_tomo_stacks == 1: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1818 accept = True | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1819 if not self.test_mode and not self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1820 accept = False | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1821 print('\nSelect bounds for image reconstruction') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1822 if is_index_range(row_bounds, 0, center_stack.shape[0]): | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1823 a_tmp = np.copy(center_stack[:,0,:]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1824 a_tmp_max = a_tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1825 a_tmp[row_bounds[0],:] = a_tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1826 a_tmp[row_bounds[1]-1,:] = a_tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1827 print(f'lower bound = {row_bounds[0]} (inclusive)') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1828 print(f'upper bound = {row_bounds[1]} (exclusive)') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1829 quickImshow(a_tmp, title=f'center stack theta={theta_start}', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1830 aspect='auto') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1831 del a_tmp | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1832 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1833 if accept: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1834 n1 = row_bounds[0] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1835 n2 = row_bounds[1] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1836 else: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1837 n1, n2 = selectImageBounds(center_stack[:,0,:], 0, | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1838 title=f'center stack theta={theta_start}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1839 else: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1840 tomo_ref_heights = [stack['ref_height'] for stack in stacks] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1841 n1 = int((1.+(tomo_ref_heights[0]+center_stack.shape[0]*eff_pixel_size- | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1842 tomo_ref_heights[1])/eff_pixel_size)/2) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1843 n2 = center_stack.shape[0]-n1 | 
| 
40
 
fa94fe25ca46
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 9978af8877d8e9722d252ab9bee4cbd4654aa100"
 
rv43 
parents: 
39 
diff
changeset
 | 
1844 logging.debug(f'n1 = {n1}, n2 = {n2} (n2-n1) = {(n2-n1)*eff_pixel_size:.3f} mm') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1845 if not self.test_mode and not self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1846 tmp = center_stack[:,0,:] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1847 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1848 tmp[n1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1849 tmp[n2-1,:] = tmp_max | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1850 if is_index_range(center_rows, 0, tmp.shape[0]): | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1851 tmp[center_rows[0],:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1852 tmp[center_rows[1]-1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1853 extent = [0, tmp.shape[1], tmp.shape[0], 0] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1854 quickImshow(tmp, title=f'center stack theta={theta_start}', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1855 path=self.output_folder, extent=extent, save_fig=self.save_plots, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1856 save_only=self.save_plots_only, aspect='auto') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1857 del tmp | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1858 #extent = [0, center_stack.shape[2], n2, n1] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1859 #quickImshow(center_stack[n1:n2,0,:], title=f'center stack theta={theta_start}', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1860 # path=self.output_folder, extent=extent, save_fig=self.save_plots, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1861 # save_only=self.save_plots_only, show_grid=True, aspect='auto') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1862 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1863 # Get cross sectional diameter in mm | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1864 cross_sectional_dim = center_stack.shape[2]*eff_pixel_size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1865 logging.debug(f'cross_sectional_dim = {cross_sectional_dim}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1866 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1867 # Determine center offset at sample row boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1868 logging.info('Determine center offset at sample row boundaries') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1869 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1870 # Lower row center | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1871 use_row = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1872 use_center = False | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1873 row = center_rows[0] | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1874 if self.test_mode or self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1875 assert(is_int(row, n1, n2-2)) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1876 if is_int(row, n1, n2-2): | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1877 if self.test_mode or self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1878 use_row = True | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1879 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1880 quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', aspect='auto') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1881 use_row = input_yesno('\nCurrent row index for lower center = ' | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1882 f'{row}, use this value (y/n)?', 'y') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1883 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1884 clearImshow(f'theta={theta_start}') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1885 if use_row: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1886 center_offset = find_center.get('lower_center_offset') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1887 if is_num(center_offset): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1888 use_center = input_yesno('Current lower center offset = '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1889 f'{center_offset}, use this value (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1890 if not use_center: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1891 if not use_row: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1892 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1893 quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1894 aspect='auto') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1895 row = input_int('\nEnter row index to find lower center', n1, n2-2, n1) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1896 if row == '': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1897 row = n1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1898 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1899 clearImshow(f'theta={theta_start}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1900 # center_stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1901 center_offset = self._findCenterOnePlane(center_stack[row,:,:], row, thetas_deg, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1902 eff_pixel_size, cross_sectional_dim, num_core=num_core, | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1903 galaxy_param=galaxy_param) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1904 logging.info(f'lower_center_offset = {center_offset:.2f} {type(center_offset)}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1905 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1906 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1907 find_center['row_bounds'] = [n1, n2] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1908 find_center['lower_row'] = row | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1909 find_center['lower_center_offset'] = center_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1910 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1911 lower_row = row | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1912 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1913 # Upper row center | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1914 use_row = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1915 use_center = False | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1916 row = center_rows[1] | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1917 if self.test_mode or self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1918 assert(is_int(row, lower_row+1, n2-1)) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1919 if is_int(row, lower_row+1, n2-1): | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1920 if self.test_mode or self.galaxy_flag: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1921 use_row = True | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1922 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1923 quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', aspect='auto') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1924 use_row = input_yesno('\nCurrent row index for upper center = ' | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1925 f'{row}, use this value (y/n)?', 'y') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1926 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1927 clearImshow(f'theta={theta_start}') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1928 if use_row: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1929 center_offset = find_center.get('upper_center_offset') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1930 if is_num(center_offset): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1931 use_center = input_yesrnNo('Current upper center offset = '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1932 f'{center_offset}, use this value (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1933 if not use_center: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1934 if not use_row: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1935 if not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1936 quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1937 aspect='auto') | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1938 row = input_int('\nEnter row index to find upper center', lower_row+1, n2-1, n2-1) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1939 if row == '': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1940 row = n2-1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1941 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
1942 clearImshow(f'theta={theta_start}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1943 # center_stack order: row,theta,column | 
| 
24
 
817a8101d2e4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 3d7910473008ec94bc0b4580d62e61310e69917d"
 
rv43 
parents: 
23 
diff
changeset
 | 
1944 center_offset = self._findCenterOnePlane(center_stack[row,:,:], row, thetas_deg, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1945 eff_pixel_size, cross_sectional_dim, num_core=num_core, | 
| 
13
 
40395e60d2be
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e61a62f5b5950b3142fedad2c0e49a00f66f9980"
 
rv43 
parents: 
11 
diff
changeset
 | 
1946 galaxy_param=galaxy_param) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1947 logging.info(f'upper_center_offset = {center_offset:.2f}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1948 del center_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1949 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1950 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1951 find_center['upper_row'] = row | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1952 find_center['upper_center_offset'] = center_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1953 find_center['completed'] = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1954 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1955 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1956 def checkCenters(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1957 """Check centers for the tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1958 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1959 #RV TODO load all stacks and check at all stack boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1960 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1961 logging.debug('Check centers for tomography stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1962 center_stack_index = self.config.get('center_stack_index') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1963 if center_stack_index is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1964 raise ValueError('Unable to read center_stack_index from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1965 center_stack_index = self.tomo_stacks[self.tomo_data_indices.index(center_stack_index)] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1966 lower_row = self.config.get('lower_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1967 if lower_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1968 raise ValueError('Unable to read lower_row from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1969 lower_center_offset = self.config.get('lower_center_offset') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1970 if lower_center_offset is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1971 raise ValueError('Unable to read lower_center_offset from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1972 upper_row = self.config.get('upper_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1973 if upper_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1974 raise ValueError('Unable to read upper_row from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1975 upper_center_offset = self.config.get('upper_center_offset') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1976 if upper_center_offset is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1977 raise ValueError('Unable to read upper_center_offset from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1978 center_slope = (upper_center_offset-lower_center_offset)/(upper_row-lower_row) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1979 shift = upper_center_offset-lower_center_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1980 if lower_row == 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1981 logging.warning(f'lower_row == 0: one row offset between both planes') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1982 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1983 lower_row -= 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1984 lower_center_offset -= center_slope | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1985 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1986 # stack order: stack,row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1987 if center_stack_index: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1988 stack1 = self.tomo_stacks[center_stack_index-1] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1989 stack2 = self.tomo_stacks[center_stack_index] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1990 if not stack1.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1991 logging.error(f'Unable to load required tomography stack {stack1}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1992 elif not stack2.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1993 logging.error(f'Unable to load required tomography stack {stack1}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1994 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1995 assert(0 <= lower_row < stack2.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1996 assert(0 <= upper_row < stack1.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1997 plane1 = stack1[upper_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1998 plane2 = stack2[lower_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1999 for i in range(-2, 3): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2000 shift_i = shift+2*i | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2001 plane1_shifted = spi.shift(plane2, [0, shift_i]) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2002 quickPlot((plane1[0,:],), (plane1_shifted[0,:],), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2003 title=f'stacks {stack1} {stack2} shifted {2*i} theta={self.start_theta}', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2004 path=self.output_folder, save_fig=self.save_plots, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2005 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2006 if center_stack_index < self.num_tomo_stacks-1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2007 stack1 = self.tomo_stacks[center_stack_index] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2008 stack2 = self.tomo_stacks[center_stack_index+1] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2009 if not stack1.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2010 logging.error(f'Unable to load required tomography stack {stack1}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2011 elif not stack2.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2012 logging.error(f'Unable to load required tomography stack {stack1}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2013 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2014 assert(0 <= lower_row < stack2.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2015 assert(0 <= upper_row < stack1.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2016 plane1 = stack1[upper_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2017 plane2 = stack2[lower_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2018 for i in range(-2, 3): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2019 shift_i = -shift+2*i | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2020 plane1_shifted = spi.shift(plane2, [0, shift_i]) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2021 quickPlot((plane1[0,:],), (plane1_shifted[0,:],), | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2022 title=f'stacks {stack1} {stack2} shifted {2*i} theta={start_theta}', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2023 path=self.output_folder, save_fig=self.save_plots, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2024 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2025 del plane1, plane2, plane1_shifted | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2026 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2027 # Update config file | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2028 self.config = update('config.txt', 'check_centers', True, 'find_centers') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2029 | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2030 def reconstructTomoStacks(self, galaxy_param=None, num_core=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2031 """Reconstruct tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2032 """ | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2033 if num_core is None: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2034 num_core = self.num_core | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
2035 logging.info(f'num_core = {num_core}') | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2036 if self.galaxy_flag: | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2037 assert(galaxy_param) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2038 if not os.path.exists('center_slice_pngs'): | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2039 os.mkdir('center_slice_pngs') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2040 logging.debug('Reconstruct tomography stacks') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2041 stacks = self.config['stack_info']['stacks'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2042 assert(len(self.tomo_stacks) == self.config['stack_info']['num']) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2043 assert(len(self.tomo_stacks) == len(stacks)) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2044 assert(len(self.tomo_recon_stacks) == len(stacks)) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2045 if self.galaxy_flag: | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2046 assert(isinstance(galaxy_param, dict)) | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2047 # Get rotation axis centers | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2048 center_offsets = galaxy_param['center_offsets'] | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2049 assert(isinstance(center_offsets, list) and len(center_offsets) == 2) | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2050 lower_center_offset = center_offsets[0] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2051 assert(is_num(lower_center_offset)) | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2052 upper_center_offset = center_offsets[1] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2053 assert(is_num(upper_center_offset)) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2054 else: | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2055 if galaxy_param: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2056 logging.warning('Ignoring galaxy_param in reconstructTomoStacks (only for Galaxy)') | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2057 galaxy_param = None | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2058 lower_center_offset = None | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2059 upper_center_offset = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2060 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2061 # Get rotation axis rows and centers | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2062 find_center = self.config['find_center'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2063 lower_row = find_center.get('lower_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2064 if lower_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2065 logging.error('Unable to read lower_row from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2066 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2067 upper_row = find_center.get('upper_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2068 if upper_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2069 logging.error('Unable to read upper_row from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2070 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2071 logging.debug(f'lower_row = {lower_row} upper_row = {upper_row}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2072 assert(lower_row < upper_row) | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2073 if lower_center_offset is None: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2074 lower_center_offset = find_center.get('lower_center_offset') | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2075 if lower_center_offset is None: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2076 logging.error('Unable to read lower_center_offset from config') | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2077 return | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2078 if upper_center_offset is None: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2079 upper_center_offset = find_center.get('upper_center_offset') | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2080 if upper_center_offset is None: | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2081 logging.error('Unable to read upper_center_offset from config') | 
| 
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2082 return | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2083 center_slope = (upper_center_offset-lower_center_offset)/(upper_row-lower_row) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2084 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2085 # Set thetas (in radians) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2086 theta_range = self.config['theta_range'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2087 theta_start = theta_range['start'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2088 theta_end = theta_range['end'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2089 num_theta = theta_range['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2090 num_theta_skip = self.config['preprocess'].get('num_theta_skip', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2091 thetas = np.radians(np.linspace(theta_start, theta_end, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2092 int(num_theta/(num_theta_skip+1)), endpoint=False)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2093 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2094 # Reconstruct tomo stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2095 zoom_perc = self.config['preprocess'].get('zoom_perc', 100) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2096 if zoom_perc == 100: | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2097 basetitle = 'recon stack fullres' | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2098 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2099 basetitle = f'recon stack {zoom_perc}p' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2100 load_error = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2101 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2102 # Check if stack can be loaded | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2103 # reconstructed stack order for each one in stack : row/z,x,y | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2104 # preprocessed stack order for each one in stack: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2105 index = stack['index'] | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2106 if not self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2107 available = False | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2108 if stack.get('reconstructed', False): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2109 self.tomo_recon_stacks[i], available = self._loadTomo('recon stack', index) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2110 if self.tomo_recon_stacks[i].size or available: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2111 if self.tomo_stacks[i].size: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2112 self.tomo_stacks[i] = np.array([]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2113 assert(stack.get('preprocessed', False) == True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2114 assert(stack.get('reconstructed', False) == True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2115 continue | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2116 stack['reconstructed'] = False | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2117 if not self.tomo_stacks[i].size: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2118 self.tomo_stacks[i], available = self._loadTomo('red stack', index, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2119 required=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2120 if not self.tomo_stacks[i].size: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2121 logging.error(f'Unable to load tomography stack {index} for reconstruction') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2122 stack[i]['preprocessed'] = False | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2123 load_error = True | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2124 continue | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2125 assert(0 <= lower_row < upper_row < self.tomo_stacks[i].shape[0]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2126 center_offsets = [lower_center_offset-lower_row*center_slope, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2127 upper_center_offset+(self.tomo_stacks[i].shape[0]-1-upper_row)*center_slope] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2128 t0 = time() | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
2129 logging.debug(f'running _reconstructOneTomoStack on {num_core} cores ...') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2130 self.tomo_recon_stacks[i]= self._reconstructOneTomoStack(self.tomo_stacks[i], | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2131 thetas, center_offsets=center_offsets, sigma=0.1, num_core=num_core, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2132 algorithm='gridrec', run_secondary_sirt=True, secondary_iter=25) | 
| 
41
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
2133 logging.debug(f'... _reconstructOneTomoStack took {time()-t0:.2f} seconds!') | 
| 
 
ef5c2f7b49ec
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0d207c80e38a6019595ebe178f5678372b75f3e7"
 
rv43 
parents: 
40 
diff
changeset
 | 
2134 logging.info(f'Reconstruction of stack {index} took {time()-t0:.2f} seconds!') | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2135 if self.galaxy_flag: | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2136 x_slice = int(self.tomo_stacks[i].shape[0]/2) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2137 title = f'{basetitle} {index} xslice{x_slice}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2138 quickImshow(self.tomo_recon_stacks[i][x_slice,:,:], title=title, | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2139 path='center_slice_pngs', save_fig=True, save_only=True) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2140 y_slice = int(self.tomo_stacks[i].shape[0]/2) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2141 title = f'{basetitle} {index} yslice{y_slice}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2142 quickImshow(self.tomo_recon_stacks[i][:,y_slice,:], title=title, | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2143 path='center_slice_pngs', save_fig=True, save_only=True) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2144 z_slice = int(self.tomo_stacks[i].shape[0]/2) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2145 title = f'{basetitle} {index} zslice{z_slice}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2146 quickImshow(self.tomo_recon_stacks[i][:,:,z_slice], title=title, | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2147 path='center_slice_pngs', save_fig=True, save_only=True) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2148 elif not self.test_mode: | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2149 x_slice = int(self.tomo_stacks[i].shape[0]/2) | 
| 
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2150 title = f'{basetitle} {index} xslice{x_slice}' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2151 quickImshow(self.tomo_recon_stacks[i][x_slice,:,:], title=title, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2152 path=self.output_folder, save_fig=self.save_plots, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2153 save_only=self.save_plots_only) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2154 quickPlot(self.tomo_recon_stacks[i] | 
| 
21
 
3caba2116858
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit e32e37ee46f47b185f924884685eb1d464761e86"
 
rv43 
parents: 
20 
diff
changeset
 | 
2155 [x_slice,int(self.tomo_recon_stacks[i].shape[2]/2),:], | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2156 title=f'{title} cut{int(self.tomo_recon_stacks[i].shape[2]/2)}', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2157 path=self.output_folder, save_fig=self.save_plots, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2158 save_only=self.save_plots_only) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2159 self._saveTomo('recon stack', self.tomo_recon_stacks[i], index) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2160 self.tomo_stacks[i] = np.array([]) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2161 | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2162 # Update config and save to file | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2163 stack['reconstructed'] = True | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2164 combine_stacks = self.config.get('combine_stacks') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2165 if combine_stacks and index in combine_stacks.get('stacks', []): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2166 combine_stacks['stacks'].remove(index) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2167 self.cf.saveFile(self.config_out) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2168 | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2169 if self.galaxy_flag: | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2170 # Save reconstructed tomography stack to file | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2171 t0 = time() | 
| 
15
 
1bcca1f2adb4
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 38c19bf5addbc46f45d598f981bb1a48f7bca691"
 
rv43 
parents: 
13 
diff
changeset
 | 
2172 output_name = galaxy_param['output_name'] | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2173 logging.info(f'Saving reconstructed tomography stack to {output_name} ...') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2174 save_stacks = {f'set_{stack["index"]}':tomo_stack | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2175 for stack,tomo_stack in zip(stacks,self.tomo_recon_stacks)} | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2176 np.savez(output_name, **save_stacks) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2177 logging.info(f'... done in {time()-t0:.2f} seconds!') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2178 | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2179 # Create cross section profile in yz-plane | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2180 tomosum = 0 | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2181 [tomosum := tomosum+np.sum(tomo_recon_stack, axis=(0,2)) for tomo_recon_stack in | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2182 self.tomo_recon_stacks] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2183 quickPlot(tomosum, title='recon stack sum yz', path='center_slice_pngs', | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2184 save_fig=True, save_only=True) | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2185 | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2186 # Create cross section profile in xz-plane | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2187 tomosum = 0 | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2188 [tomosum := tomosum+np.sum(tomo_recon_stack, axis=(0,1)) for tomo_recon_stack in | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2189 self.tomo_recon_stacks] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2190 quickPlot(tomosum, title='recon stack sum xz', path='center_slice_pngs', | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2191 save_fig=True, save_only=True) | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2192 | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2193 # Create cross section profile in xy-plane | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2194 num_tomo_stacks = len(stacks) | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2195 row_bounds = self.config['find_center']['row_bounds'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2196 if not is_index_range(row_bounds, 0, self.tomo_recon_stacks[0].shape[0]): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2197 illegal_value(row_bounds, 'find_center:row_bounds', 'config file') | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2198 return | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2199 if num_tomo_stacks == 1: | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2200 low_bound = row_bounds[0] | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2201 else: | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2202 low_bound = 0 | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2203 tomosum = np.sum(self.tomo_recon_stacks[0][low_bound:row_bounds[1],:,:], axis=(1,2)) | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2204 if num_tomo_stacks > 2: | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2205 tomosum = np.concatenate([tomosum]+ | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2206 [np.sum(self.tomo_recon_stacks[i][row_bounds[0]:row_bounds[1],:,:], | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2207 axis=(1,2)) for i in range(1, num_tomo_stacks-1)]) | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2208 if num_tomo_stacks > 1: | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2209 tomosum = np.concatenate([tomosum, | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2210 np.sum(self.tomo_recon_stacks[num_tomo_stacks-1][row_bounds[0]:,:,:], | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2211 axis=(1,2))]) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2212 quickPlot(tomosum, title='recon stack sum xy', path='center_slice_pngs', | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2213 save_fig=True, save_only=True) | 
| 
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2214 | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2215 def combineTomoStacks(self, galaxy_param=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2216 """Combine the reconstructed tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2217 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2218 # stack order: stack,row(z),x,y | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2219 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2220 assert(galaxy_param) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2221 if not os.path.exists('combine_pngs'): | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2222 os.mkdir('combine_pngs') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2223 logging.debug('Combine reconstructed tomography stacks') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2224 stack_info = self.config['stack_info'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2225 stacks = stack_info['stacks'] | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2226 assert(len(self.tomo_recon_stacks) == stack_info['num']) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2227 assert(len(self.tomo_recon_stacks) == len(stacks)) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2228 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2229 assert(isinstance(galaxy_param, dict)) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2230 # Get image bounds | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2231 x_bounds = galaxy_param['x_bounds'] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2232 assert(isinstance(x_bounds, list) and len(x_bounds) == 2) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2233 y_bounds = galaxy_param['y_bounds'] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2234 assert(isinstance(y_bounds, list) and len(y_bounds) == 2) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2235 z_bounds = galaxy_param['z_bounds'] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2236 assert(isinstance(z_bounds, list) and len(z_bounds) == 2) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2237 else: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2238 if galaxy_param: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2239 logging.warning('Ignoring galaxy_param in reconstructTomoStacks (only for Galaxy)') | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2240 galaxy_param = None | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2241 | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2242 # Load any unloaded reconstructed stacks | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2243 for i,stack in enumerate(stacks): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2244 available = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2245 if not self.tomo_recon_stacks[i].size and stack.get('reconstructed', False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2246 self.tomo_recon_stacks[i], available = self._loadTomo('recon stack', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2247 stack['index'], required=True) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2248 if not self.tomo_recon_stacks[i].size: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2249 logging.error(f'Unable to load reconstructed stack {stack["index"]}') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2250 stack['reconstructed'] = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2251 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2252 if i: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2253 if (self.tomo_recon_stacks[i].shape[1] != self.tomo_recon_stacks[0].shape[1] or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2254 self.tomo_recon_stacks[i].shape[1] != self.tomo_recon_stacks[0].shape[1]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2255 logging.error('Incompatible reconstructed tomography stack dimensions') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2256 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2257 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2258 # Get center stack boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2259 row_bounds = self.config['find_center']['row_bounds'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2260 if not is_index_range(row_bounds, 0, self.tomo_recon_stacks[0].shape[0]): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2261 illegal_value(row_bounds, 'find_center:row_bounds', 'config file') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2262 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2263 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2264 # Selecting x bounds (in yz-plane) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2265 tomosum = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2266 #RV FIX := | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2267 [tomosum := tomosum+np.sum(tomo_recon_stack, axis=(0,2)) for tomo_recon_stack in | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2268 self.tomo_recon_stacks] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2269 combine_stacks = self.config.get('combine_stacks') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2270 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2271 if x_bounds[0] == -1: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2272 x_bounds[0] = 0 | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2273 if x_bounds[1] == -1: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2274 x_bounds[1] = tomosum.size | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2275 if not is_index_range(x_bounds, 0, tomosum.size): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2276 illegal_value(x_bounds, 'x_bounds', 'galaxy input') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2277 tomosum_min = tomosum.min() | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2278 tomosum_max = tomosum.max() | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2279 quickPlot((range(tomosum.size), tomosum), | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2280 ([x_bounds[0], x_bounds[0]], [tomosum_min, tomosum_max], 'r-'), | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2281 ([x_bounds[1]-1, x_bounds[1]-1], [tomosum_min, tomosum_max], 'r-'), | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2282 title=f'recon stack sum yz', path='combine_pngs', save_fig=True, save_only=True) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2283 else: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2284 if combine_stacks and 'x_bounds' in combine_stacks: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2285 x_bounds = combine_stacks['x_bounds'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2286 if not is_index_range(x_bounds, 0, tomosum.size): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2287 illegal_value(x_bounds, 'combine_stacks:x_bounds', 'config file') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2288 elif not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2289 accept = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2290 while not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2291 mask, x_bounds = draw_mask_1d(tomosum, current_index_ranges=x_bounds, | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2292 title='select x data range', legend='recon stack sum yz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2293 while len(x_bounds) != 1: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2294 print('Please select exactly one continuous range') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2295 mask, x_bounds = draw_mask_1d(tomosum, title='select x data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2296 legend='recon stack sum yz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2297 x_bounds = list(x_bounds[0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2298 quickPlot(tomosum, vlines=x_bounds, title='recon stack sum yz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2299 print(f'x_bounds = {x_bounds} (lower bound inclusive, upper bound '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2300 'exclusive)') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2301 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2302 if not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2303 x_bounds = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2304 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2305 if not input_yesno('\nDo you want to change the image x-bounds (y/n)?', 'n'): | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2306 x_bounds = [0, tomosum.size] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2307 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2308 accept = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2309 while not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2310 mask, x_bounds = draw_mask_1d(tomosum, title='select x data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2311 legend='recon stack sum yz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2312 while len(x_bounds) != 1: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2313 print('Please select exactly one continuous range') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2314 mask, x_bounds = draw_mask_1d(tomosum, title='select x data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2315 legend='recon stack sum yz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2316 x_bounds = list(x_bounds[0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2317 quickPlot(tomosum, vlines=x_bounds, title='recon stack sum yz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2318 print(f'x_bounds = {x_bounds} (lower bound inclusive, upper bound '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2319 'exclusive)') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2320 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2321 if False and self.test_mode: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2322 np.savetxt(f'{self.output_folder}/recon_stack_sum_yz.txt', | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2323 tomosum[x_bounds[0]:x_bounds[1]], fmt='%.6e') | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2324 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2325 clearPlot('recon stack sum yz') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2326 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2327 # Selecting y bounds (in xz-plane) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2328 tomosum = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2329 #RV FIX := | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2330 [tomosum := tomosum+np.sum(tomo_recon_stack, axis=(0,1)) for tomo_recon_stack in | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2331 self.tomo_recon_stacks] | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2332 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2333 if y_bounds[0] == -1: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2334 y_bounds[0] = 0 | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2335 if y_bounds[1] == -1: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2336 y_bounds[1] = tomosum.size | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2337 if not is_index_range(y_bounds, 0, tomosum.size): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2338 illegal_value(y_bounds, 'y_bounds', 'galaxy input') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2339 tomosum_min = tomosum.min() | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2340 tomosum_max = tomosum.max() | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2341 quickPlot((range(tomosum.size), tomosum), | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2342 ([y_bounds[0], y_bounds[0]], [tomosum_min, tomosum_max], 'r-'), | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2343 ([y_bounds[1]-1, y_bounds[1]-1], [tomosum_min, tomosum_max], 'r-'), | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2344 title=f'recon stack sum xz', path='combine_pngs', save_fig=True, save_only=True) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2345 else: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2346 if combine_stacks and 'y_bounds' in combine_stacks: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2347 y_bounds = combine_stacks['y_bounds'] | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2348 if not is_index_range(y_bounds, 0, tomosum.size): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2349 illegal_value(y_bounds, 'combine_stacks:y_bounds', 'config file') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2350 elif not self.test_mode: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2351 accept = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2352 while not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2353 mask, y_bounds = draw_mask_1d(tomosum, current_index_ranges=y_bounds, | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2354 title='select y data range', legend='recon stack sum xz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2355 while len(y_bounds) != 1: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2356 print('Please select exactly one continuous range') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2357 mask, y_bounds = draw_mask_1d(tomosum, title='select y data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2358 legend='recon stack sum xz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2359 y_bounds = list(y_bounds[0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2360 quickPlot(tomosum, vlines=y_bounds, title='recon stack sum xz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2361 print(f'y_bounds = {y_bounds} (lower bound inclusive, upper bound '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2362 'exclusive)') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2363 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2364 if not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2365 y_bounds = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2366 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2367 if not input_yesno('\nDo you want to change the image y-bounds (y/n)?', 'n'): | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2368 y_bounds = [0, tomosum.size] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2369 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2370 accept = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2371 while not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2372 mask, y_bounds = draw_mask_1d(tomosum, title='select y data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2373 legend='recon stack sum xz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2374 while len(y_bounds) != 1: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2375 print('Please select exactly one continuous range') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2376 mask, y_bounds = draw_mask_1d(tomosum, title='select y data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2377 legend='recon stack sum xz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2378 y_bounds = list(y_bounds[0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2379 quickPlot(tomosum, vlines=y_bounds, title='recon stack sum xz') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2380 print(f'y_bounds = {y_bounds} (lower bound inclusive, upper bound '+ | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2381 'exclusive)') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2382 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2383 if False and self.test_mode: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2384 np.savetxt(f'{self.output_folder}/recon_stack_sum_xz.txt', | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2385 tomosum[y_bounds[0]:y_bounds[1]], fmt='%.6e') | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2386 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2387 clearPlot('recon stack sum xz') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2388 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2389 # Combine reconstructed tomography stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2390 logging.info(f'Combining reconstructed stacks ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2391 t0 = time() | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2392 num_tomo_stacks = len(stacks) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2393 if num_tomo_stacks == 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2394 low_bound = row_bounds[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2395 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2396 low_bound = 0 | 
| 
47
 
c693117d01e9
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit baa3866a541a552710bec26ae5d37a8c624563ac-dirty"
 
rv43 
parents: 
46 
diff
changeset
 | 
2397 tomo_recon_combined = self.tomo_recon_stacks[0][low_bound:row_bounds[1], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2398 x_bounds[0]:x_bounds[1],y_bounds[0]:y_bounds[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2399 if num_tomo_stacks > 2: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2400 tomo_recon_combined = np.concatenate([tomo_recon_combined]+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2401 [self.tomo_recon_stacks[i][row_bounds[0]:row_bounds[1], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2402 x_bounds[0]:x_bounds[1],y_bounds[0]:y_bounds[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2403 for i in range(1, num_tomo_stacks-1)]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2404 if num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2405 tomo_recon_combined = np.concatenate([tomo_recon_combined]+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2406 [self.tomo_recon_stacks[num_tomo_stacks-1][row_bounds[0]:, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2407 x_bounds[0]:x_bounds[1],y_bounds[0]:y_bounds[1]]]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2408 logging.info(f'... done in {time()-t0:.2f} seconds!') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2409 combined_stacks = [stack['index'] for stack in stacks] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2410 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2411 # Wrap up if in test_mode | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2412 tomosum = np.sum(tomo_recon_combined, axis=(1,2)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2413 if self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2414 zoom_perc = self.config['preprocess'].get('zoom_perc', 100) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2415 filename = 'recon combined sum xy' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2416 if zoom_perc is None or zoom_perc == 100: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2417 filename += ' fullres.dat' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2418 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2419 filename += f' {zoom_perc}p.dat' | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2420 quickPlot(tomosum, title='recon combined sum xy', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2421 path=self.output_folder, save_fig=self.save_plots, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2422 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2423 if False: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2424 np.savetxt(f'{self.output_folder}/recon_combined_sum_xy.txt', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2425 tomosum, fmt='%.6e') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2426 np.savetxt(f'{self.output_folder}/recon_combined.txt', | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2427 tomo_recon_combined[int(tomosum.size/2),:,:], fmt='%.6e') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2428 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2429 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2430 if combine_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2431 combine_stacks['x_bounds'] = x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2432 combine_stacks['y_bounds'] = y_bounds | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2433 combine_stacks['stacks'] = combined_stacks | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2434 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2435 self.config['combine_stacks'] = {'x_bounds' : x_bounds, 'y_bounds' : y_bounds, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2436 'stacks' : combined_stacks} | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2437 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2438 return | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2439 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2440 # Selecting z bounds (in xy-plane) | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2441 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2442 if z_bounds[0] == -1: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2443 z_bounds[0] = 0 | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2444 if z_bounds[1] == -1: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2445 z_bounds[1] = tomosum.size | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2446 if not is_index_range(z_bounds, 0, tomosum.size): | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2447 illegal_value(z_bounds, 'z_bounds', 'galaxy input') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2448 tomosum_min = tomosum.min() | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2449 tomosum_max = tomosum.max() | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2450 quickPlot((range(tomosum.size), tomosum), | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2451 ([z_bounds[0], z_bounds[0]], [tomosum_min, tomosum_max], 'r-'), | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2452 ([z_bounds[1]-1, z_bounds[1]-1], [tomosum_min, tomosum_max], 'r-'), | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2453 title=f'recon stack sum xy', path='combine_pngs', save_fig=True, save_only=True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2454 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2455 if not input_yesno('\nDo you want to change the image z-bounds (y/n)?', 'n'): | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2456 z_bounds = [0, tomosum.size] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2457 else: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2458 accept = False | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2459 while not accept: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2460 mask, z_bounds = draw_mask_1d(tomosum, title='select z data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2461 legend='recon stack sum xy') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2462 while len(z_bounds) != 1: | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2463 print('Please select exactly one continuous range') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2464 mask, z_bounds = draw_mask_1d(tomosum, title='select z data range', | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2465 legend='recon stack sum xy') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2466 z_bounds = list(z_bounds[0]) | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2467 quickPlot(tomosum, vlines=z_bounds, title='recon stack sum xy') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2468 print(f'z_bounds = {z_bounds} (lower bound inclusive, upper bound exclusive)') | 
| 
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2469 accept = input_yesno('Accept these bounds (y/n)?', 'y') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2470 if self.save_plots_only: | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2471 clearPlot('recon combined sum xy') | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2472 if z_bounds[0] != 0 or z_bounds[1] != tomosum.size: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2473 tomo_recon_combined = tomo_recon_combined[z_bounds[0]:z_bounds[1],:,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2474 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2475 # Plot center slices | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2476 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2477 path = 'combine_pngs' | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2478 save_fig = True | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2479 save_only = True | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2480 else: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2481 path = self.output_folder | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2482 save_fig = self.save_plots | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2483 save_only = self.save_plots_only | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2484 quickImshow(tomo_recon_combined[int(tomo_recon_combined.shape[0]/2),:,:], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2485 title=f'recon combined xslice{int(tomo_recon_combined.shape[0]/2)}', | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2486 path=path, save_fig=save_fig, save_only=save_only) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2487 quickImshow(tomo_recon_combined[:,int(tomo_recon_combined.shape[1]/2),:], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2488 title=f'recon combined yslice{int(tomo_recon_combined.shape[1]/2)}', | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2489 path=path, save_fig=save_fig, save_only=save_only) | 
| 
49
 
26f99fdd8d61
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 4f7738d02f4a3fd91373f43937ed311b6fe11a12"
 
rv43 
parents: 
48 
diff
changeset
 | 
2490 quickImshow(tomo_recon_combined[:,:,int(tomo_recon_combined.shape[2]/2)], | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2491 title=f'recon combined zslice{int(tomo_recon_combined.shape[2]/2)}', | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2492 path=path, save_fig=save_fig, save_only=save_only) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2493 | 
| 
48
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2494 # Save combined reconstructed tomography stack to file | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2495 if self.galaxy_flag: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2496 t0 = time() | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2497 output_name = galaxy_param['output_name'] | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2498 logging.info(f'Saving combined reconstructed tomography stack to {output_name} ...') | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2499 np.save(output_name, tomo_recon_combined) | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2500 logging.info(f'... done in {time()-t0:.2f} seconds!') | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2501 else: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2502 base_name = 'recon combined' | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2503 for stack in stacks: | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2504 base_name += f' {stack["index"]}' | 
| 
 
059819ea1f0e
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit b97c6a8f181dea6d2f9cfa2069b86d30dcc47b4d"
 
rv43 
parents: 
47 
diff
changeset
 | 
2505 self._saveTomo(base_name, tomo_recon_combined) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2506 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2507 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2508 if combine_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2509 combine_stacks['x_bounds'] = x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2510 combine_stacks['y_bounds'] = y_bounds | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2511 combine_stacks['z_bounds'] = z_bounds | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2512 combine_stacks['stacks'] = combined_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2513 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2514 self.config['combine_stacks'] = {'x_bounds' : x_bounds, 'y_bounds' : y_bounds, | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2515 'z_bounds' : z_bounds, 'stacks' : combined_stacks} | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2516 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2517 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2518 def runTomo(config_file=None, config_dict=None, output_folder='.', log_level='INFO', | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2519 test_mode=False, num_core=-1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2520 """Run a tomography analysis. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2521 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2522 # Instantiate Tomo object | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2523 tomo = Tomo(config_file=config_file, output_folder=output_folder, log_level=log_level, | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2524 test_mode=test_mode, num_core=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2525 if not tomo.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2526 raise ValueError('Invalid config and/or detector file provided.') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2527 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2528 # Preprocess the image files | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2529 assert(tomo.config['stack_info']) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2530 num_tomo_stacks = tomo.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2531 assert(num_tomo_stacks == len(tomo.tomo_stacks)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2532 preprocessed_stacks = [] | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2533 if not tomo.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2534 preprocess = tomo.config.get('preprocess', None) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2535 if preprocess: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2536 preprocessed_stacks = [stack['index'] for stack in tomo.config['stack_info']['stacks'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2537 if stack.get('preprocessed', False)] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2538 if len(preprocessed_stacks) != num_tomo_stacks: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2539 tomo.genTomoStacks() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2540 if not tomo.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2541 IOError('Unable to load all required image files.') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2542 tomo.cf.saveFile(tomo.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2543 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2544 # Find centers | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2545 find_center = tomo.config.get('find_center') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2546 if find_center is None or not find_center.get('completed', False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2547 tomo.findCenters() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2548 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2549 # Check centers | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2550 #if num_tomo_stacks > 1 and not tomo.config.get('check_centers', False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2551 # tomo.checkCenters() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2552 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2553 # Reconstruct tomography stacks | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2554 assert(tomo.config['stack_info']['stacks']) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2555 reconstructed_stacks = [stack['index'] for stack in tomo.config['stack_info']['stacks'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2556 if stack.get('reconstructed', False)] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2557 if len(reconstructed_stacks) != num_tomo_stacks: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2558 tomo.reconstructTomoStacks() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2559 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2560 # Combine reconstructed tomography stacks | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2561 reconstructed_stacks = [stack['index'] for stack in tomo.config['stack_info']['stacks'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2562 if stack.get('reconstructed', False)] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2563 combine_stacks = tomo.config.get('combine_stacks') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2564 if len(reconstructed_stacks) and (combine_stacks is None or | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2565 combine_stacks.get('stacks') != reconstructed_stacks): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2566 tomo.combineTomoStacks() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2567 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2568 #%%============================================================================ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2569 if __name__ == '__main__': | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2570 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2571 # Parse command line arguments | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2572 parser = argparse.ArgumentParser( | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2573 description='Tomography reconstruction') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2574 parser.add_argument('-c', '--config', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2575 default=None, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2576 help='Input config') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2577 parser.add_argument('-o', '--output_folder', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2578 default='.', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2579 help='Output folder') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2580 parser.add_argument('-l', '--log_level', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2581 default='INFO', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2582 help='Log level') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2583 parser.add_argument('-t', '--test_mode', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2584 action='store_true', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2585 default=False, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2586 help='Test mode flag') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2587 parser.add_argument('--num_core', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2588 type=int, | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2589 default=-1, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2590 help='Number of cores') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2591 args = parser.parse_args() | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2592 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2593 if args.config is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2594 if os.path.isfile('config.yaml'): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2595 args.config = 'config.yaml' | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2596 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2597 args.config = 'config.txt' | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2598 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2599 # Set basic log configuration | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2600 logging_format = '%(asctime)s : %(levelname)s - %(module)s : %(funcName)s - %(message)s' | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2601 if not args.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2602 level = getattr(logging, args.log_level.upper(), None) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2603 if not isinstance(level, int): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2604 raise ValueError(f'Invalid log_level: {args.log_level}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2605 logging.basicConfig(format=logging_format, level=level, force=True, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2606 handlers=[logging.StreamHandler()]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2607 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2608 logging.debug(f'config = {args.config}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2609 logging.debug(f'output_folder = {args.output_folder}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2610 logging.debug(f'log_level = {args.log_level}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2611 logging.debug(f'test_mode = {args.test_mode}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2612 logging.debug(f'num_core = {args.num_core}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2613 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2614 # Run tomography analysis | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2615 runTomo(config_file=args.config, output_folder=args.output_folder, log_level=args.log_level, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2616 test_mode=args.test_mode, num_core=args.num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2617 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2618 #%%============================================================================ | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2619 # input('Press any key to continue') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2620 #%%============================================================================ | 
