Mercurial > repos > rv43 > tomo
annotate tomo.py @ 7:845270a96464 draft
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
| author | rv43 | 
|---|---|
| date | Thu, 07 Apr 2022 21:09:58 +0000 | 
| parents | f9c52762c32c | 
| children | ec7c3e84d611 | 
| 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 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
17 try: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
18 import pyinputplus as pyip | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
19 except: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
20 pass | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
21 import argparse | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
22 import numpy as np | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
23 import numexpr as ne | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
24 import multiprocessing as mp | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
25 import scipy.ndimage as spi | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
26 import tomopy | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
27 from time import time | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
28 from skimage.transform import iradon | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
29 from skimage.restoration import denoise_tv_chambolle | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
30 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
31 import msnc_tools as msnc | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
32 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
33 class set_numexpr_threads: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
34 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
35 def __init__(self, num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
36 cpu_count = mp.cpu_count() | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
37 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
 | 
38 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
 | 
39 self.num_core = cpu_count | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
40 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
41 self.num_core = num_core | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
42 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
 | 
43 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
44 def __enter__(self): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
45 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
 | 
46 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
 | 
47 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
48 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
 | 
49 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
 | 
50 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
51 class ConfigTomo(msnc.Config): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
52 """Class for processing a config file. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
53 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
54 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
55 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
 | 
56 super().__init__(config_file, config_dict) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
57 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
58 def _validate_txt(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
59 """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
 | 
60 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
61 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
62 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
63 # Check for required first-level keys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
64 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
 | 
65 pars_missing = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
66 is_valid = super().validate(pars_required, pars_missing) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
67 if len(pars_missing) > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
68 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
 | 
69 self.detector_id = self.config.get('detector_id') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
70 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
71 # Find tomography dark field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
72 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
 | 
73 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
74 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
75 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
 | 
76 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
77 # Check number of tomography image stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
78 self.num_tomo_stacks = self.config.get('num_tomo_stacks', 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
79 if not msnc.is_int(self.num_tomo_stacks, 1): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
80 self.num_tomo_stacks = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
81 msnc.illegal_value('num_tomo_stacks', self.num_tomo_stacks, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
82 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
83 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
 | 
84 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
85 # Find tomography images file/folders and stack parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
86 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
 | 
87 if 'tomo_data_path' in key}.items()) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
88 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
 | 
89 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
 | 
90 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
91 self.tomo_data_paths = [tomo_data_paths_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
 | 
92 self.tomo_data_indices = [msnc.get_trailing_int(tomo_data_paths_indices[i][0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
93 if msnc.get_trailing_int(tomo_data_paths_indices[i][0]) else None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
94 for i in range(self.num_tomo_stacks)] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
95 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
 | 
96 if 'z_pos' in key}.items()) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
97 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
 | 
98 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
 | 
99 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
100 if len(tomo_ref_height_indices): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
101 self.tomo_ref_heights = [ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
102 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
 | 
103 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
104 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
 | 
105 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
106 # Check tomo angle (theta) range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
107 self.start_theta = self.config.get('start_theta', 0.) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
108 if not msnc.is_num(self.start_theta, 0.): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
109 msnc.illegal_value('start_theta', self.start_theta, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
110 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
111 logging.debug(f'start_theta = {self.start_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
112 self.end_theta = self.config.get('end_theta', 180.) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
113 if not msnc.is_num(self.end_theta, self.start_theta): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
114 msnc.illegal_value('end_theta', self.end_theta, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
115 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
116 logging.debug(f'end_theta = {self.end_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
117 self.num_thetas = self.config.get('num_thetas') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
118 if not (self.num_thetas is None or msnc.is_int(self.num_thetas, 1)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
119 msnc.illegal_value('num_thetas', self.num_thetas, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
120 self.num_thetas = None | 
| 
 
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 logging.debug(f'num_thetas = {self.num_thetas}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
123 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
124 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
125 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
126 def _validate_yaml(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
127 """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
 | 
128 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
129 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
130 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
131 # Check for required first-level keys | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
132 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
 | 
133 pars_missing = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
134 is_valid = super().validate(pars_required, pars_missing) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
135 if len(pars_missing) > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
136 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
 | 
137 self.detector_id = self.config['detector'].get('id') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
138 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
139 # Find tomography dark field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
140 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
 | 
141 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
142 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
143 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
 | 
144 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
145 # Check number of tomography image stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
146 stack_info = self.config['stack_info'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
147 self.num_tomo_stacks = stack_info.get('num', 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
148 if not msnc.is_int(self.num_tomo_stacks, 1): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
149 self.num_tomo_stacks = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
150 msnc.illegal_value('stack_info:num', self.num_tomo_stacks, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
151 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
152 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
 | 
153 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
154 # Find tomography images file/folders and stack parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
155 stacks = stack_info.get('stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
156 if stacks is None or len(stacks) is not self.num_tomo_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
157 msnc.illegal_value('stack_info:stacks', stacks, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
158 return False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
159 self.tomo_data_paths = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
160 self.tomo_data_indices = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
161 self.tomo_ref_heights = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
162 for stack in stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
163 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
 | 
164 self.tomo_data_indices.append(stack.get('index')) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
165 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
 | 
166 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
167 # Check tomo angle (theta) range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
168 theta_range = self.config.get('theta_range') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
169 if theta_range is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
170 self.start_theta = 0. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
171 self.end_theta = 180. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
172 self.num_thetas = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
173 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
174 self.start_theta = theta_range.get('start', 0.) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
175 if not msnc.is_num(self.start_theta, 0.): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
176 msnc.illegal_value('theta_range:start', self.start_theta, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
177 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
178 logging.debug(f'start_theta = {self.start_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
179 self.end_theta = theta_range.get('end', 180.) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
180 if not msnc.is_num(self.end_theta, self.start_theta): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
181 msnc.illegal_value('theta_range:end', self.end_theta, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
182 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
183 logging.debug(f'end_theta = {self.end_theta}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
184 self.num_thetas = theta_range.get('num') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
185 if self.num_thetas and not msnc.is_int(self.num_thetas, 1): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
186 msnc.illegal_value('theta_range:num', self.num_thetas, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
187 self.num_thetas = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
188 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
189 logging.debug(f'num_thetas = {self.num_thetas}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
190 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
191 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
192 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
193 def validate(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
194 """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
 | 
195 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
196 is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
197 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
198 # Check work_folder (shared by both file formats) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
199 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
 | 
200 if not os.path.isdir(work_folder): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
201 msnc.illegal_value('work_folder', work_folder, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
202 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
203 logging.info(f'work_folder: {work_folder}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
204 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
205 # Check data filetype (shared by both file formats) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
206 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
 | 
207 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
 | 
208 self.data_filetype != 'h5'): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
209 msnc.illegal_value('data_filetype', self.data_filetype, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
210 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
211 if self.suffix == '.yml' or self.suffix == '.yaml': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
212 is_valid = self._validate_yaml() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
213 elif self.suffix == '.txt': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
214 is_valid = self._validate_txt() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
215 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
216 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
 | 
217 is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
218 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
219 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
220 if self.tdf_data_path: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
221 if self.data_filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
222 if isinstance(self.tdf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
223 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
 | 
224 self.tdf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
225 f'{work_folder}/{self.tdf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
226 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
227 msnc.illegal_value('tdf_data_path', tdf_data_fil, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
228 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
229 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
230 if isinstance(self.tdf_data_path, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
231 self.tdf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
232 f'{work_folder}/{self.tdf_data_path}/nf') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
233 elif isinstance(self.tdf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
234 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
 | 
235 self.tdf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
236 f'{work_folder}/{self.tdf_data_path}') | 
| 
 
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 msnc.illegal_value('tdf_data_path', self.tdf_data_path, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
239 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
240 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
 | 
241 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
242 # Find tomography bright field images file/folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
243 if self.tbf_data_path: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
244 if self.data_filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
245 if isinstance(self.tbf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
246 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
 | 
247 self.tbf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
248 f'{work_folder}/{self.tbf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
249 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
250 msnc.illegal_value('tbf_data_path', tbf_data_fil, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
251 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
252 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
253 if isinstance(self.tbf_data_path, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
254 self.tbf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
255 f'{work_folder}/{self.tbf_data_path}/nf') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
256 elif isinstance(self.tbf_data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
257 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
 | 
258 self.tbf_data_path = os.path.abspath( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
259 f'{work_folder}/{self.tbf_data_path}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
260 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
261 msnc.illegal_value('tbf_data_path', self.tbf_data_path, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
262 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
263 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
 | 
264 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
265 # Find tomography images file/folders and stack parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
266 tomo_data_paths = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
267 tomo_data_indices = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
268 tomo_ref_heights = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
269 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
 | 
270 self.tomo_ref_heights): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
271 if self.data_filetype == 'h5': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
272 if isinstance(data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
273 if not os.path.isabs(data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
274 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
 | 
275 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
276 msnc.illegal_value(f'stack_info:stacks:data_path', data_path, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
277 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
278 data_path = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
279 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
280 if isinstance(data_path, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
281 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
 | 
282 elif isinstance(data_path, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
283 if not os.path.isabs(data_path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
284 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
 | 
285 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
286 msnc.illegal_value(f'stack_info:stacks:data_path', data_path, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
287 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
288 data_path = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
289 tomo_data_paths.append(data_path) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
290 if index is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
291 if self.num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
292 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
 | 
293 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
294 index = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
295 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
296 index = 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
297 elif not isinstance(index, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
298 msnc.illegal_value(f'stack_info:stacks:index', index, 'config file') | 
| 
 
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 index = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
301 tomo_data_indices.append(index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
302 if ref_height is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
303 if self.num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
304 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
 | 
305 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
306 ref_height = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
307 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
308 ref_height = 0. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
309 elif not msnc.is_num(ref_height): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
310 msnc.illegal_value(f'stack_info:stacks:ref_height', ref_height, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
311 is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
312 ref_height = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
313 # Set reference heights relative to first stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
314 if (len(tomo_ref_heights) and msnc.is_num(ref_height) and | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
315 msnc.is_num(tomo_ref_heights[0])): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
316 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
 | 
317 tomo_ref_heights.append(ref_height) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
318 tomo_ref_heights[0] = 0.0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
319 logging.info('tomography data paths:') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
320 for i in range(self.num_tomo_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
321 logging.info(f' {tomo_data_paths[i]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
322 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
 | 
323 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
 | 
324 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
325 # Update config in memory | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
326 if self.suffix == '.txt': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
327 self.config = {} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
328 dark_field = self.config.get('dark_field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
329 if dark_field is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
330 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
 | 
331 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
332 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
 | 
333 bright_field = self.config.get('bright_field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
334 if bright_field is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
335 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
 | 
336 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
337 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
 | 
338 detector = self.config.get('detector') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
339 if detector is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
340 self.config['detector'] = {'id' : self.detector_id} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
341 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
342 detector['id'] = self.detector_id | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
343 self.config['work_folder'] = work_folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
344 self.config['data_filetype'] = self.data_filetype | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
345 stack_info = self.config.get('stack_info') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
346 if stack_info is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
347 stacks = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
348 for i in range(self.num_tomo_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
349 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
 | 
350 'ref_height' : tomo_ref_heights[i]}) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
351 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
 | 
352 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
353 stack_info['num'] = self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
354 stacks = stack_info.get('stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
355 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
356 stack['data_path'] = tomo_data_paths[i] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
357 stack['index'] = tomo_data_indices[i] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
358 stack['ref_height'] = tomo_ref_heights[i] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
359 if self.num_thetas: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
360 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
 | 
361 'num' : self.num_thetas} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
362 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
363 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
 | 
364 self.config['theta_range'] = theta_range | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
365 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
366 # Cleanup temporary validation variables | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
367 del self.tdf_data_path | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
368 del self.tbf_data_path | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
369 del self.detector_id | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
370 del self.data_filetype | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
371 del self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
372 del self.tomo_data_paths | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
373 del self.tomo_data_indices | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
374 del self.tomo_ref_heights | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
375 del self.start_theta | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
376 del self.end_theta | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
377 del self.num_thetas | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
378 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
379 return is_valid | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
380 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
381 class Tomo: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
382 """Processing tomography data with misalignment. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
383 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
384 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
385 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
 | 
386 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
 | 
387 num_core=-1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
388 """Initialize with optional config input file or dictionary | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
389 """ | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
390 self.num_core = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
391 self.config_out = config_out | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
392 self.output_folder = output_folder | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
393 self.galaxy_flag = galaxy_flag | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
394 self.test_mode = test_mode | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
395 self.save_plots = True # Make input argument? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
396 self.save_plots_only = True # Make input argument? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
397 self.cf = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
398 self.config = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
399 self.is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
400 self.tdf = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
401 self.tbf = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
402 self.tomo_stacks = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
403 self.tomo_recon_stacks = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
404 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
405 # Validate input parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
406 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
 | 
407 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
 | 
408 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
 | 
409 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
 | 
410 if config_out is not None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
411 if isinstance(config_out, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
412 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
413 path = os.path.split(log_stream)[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
414 if path and not os.path.isdir(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
415 raise OSError(f'Invalid log_stream path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
416 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
417 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
 | 
418 if not os.path.isdir(output_folder): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
419 raise OSError(f'Invalid output_folder input {output_folder} {type(output_folder)}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
420 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
421 path = os.path.split(log_stream)[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
422 if path and not os.path.isdir(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
423 raise OSError(f'Invalid log_stream path') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
424 if not os.path.isabs(path): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
425 log_stream = f'{output_folder}/{log_stream}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
426 if not isinstance(galaxy_flag, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
427 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
 | 
428 if not isinstance(test_mode, bool): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
429 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
 | 
430 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
 | 
431 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
 | 
432 if num_core == -1: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
433 self.num_core = mp.cpu_count() | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
434 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
435 self.num_core = num_core | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
436 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
437 # Set log configuration | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
438 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
 | 
439 if self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
440 self.save_plots_only = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
441 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
442 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
 | 
443 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
 | 
444 #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
 | 
445 elif isinstance(log_stream, io.TextIOWrapper): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
446 #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
 | 
447 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
 | 
448 stream=log_stream, force=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
449 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
450 raise ValueError(f'Invalid log_stream: {log_stream}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
451 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
 | 
452 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
453 level = getattr(logging, log_level.upper(), None) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
454 if not isinstance(level, int): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
455 raise ValueError(f'Invalid log_level: {log_level}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
456 if log_stream is sys.stdout: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
457 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
 | 
458 handlers=[logging.StreamHandler()]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
459 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
460 if isinstance(log_stream, str): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
461 logging.basicConfig(filename=f'{log_stream}', filemode='w', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
462 format=logging_format, level=level, force=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
463 elif isinstance(log_stream, io.TextIOWrapper): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
464 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
 | 
465 stream=log_stream, force=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
466 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
467 raise ValueError(f'Invalid log_stream: {log_stream}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
468 stream_handler = logging.StreamHandler() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
469 logging.getLogger().addHandler(stream_handler) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
470 stream_handler.setLevel(logging.WARNING) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
471 stream_handler.setFormatter(logging.Formatter(logging_format)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
472 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
473 # Check/set output config file name | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
474 if self.config_out is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
475 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
 | 
476 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
 | 
477 not os.path.isabs(self.config_out)): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
478 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
 | 
479 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
480 # Create config object and load config file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
481 self.cf = ConfigTomo(config_file, config_dict) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
482 if not self.cf.load_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
483 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
484 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
485 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
486 if self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
487 assert(self.output_folder == '.') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
488 assert(self.test_mode is False) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
489 self.save_plots = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
490 self.save_plots_only = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
491 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
492 # 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
 | 
493 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
494 # Check config file parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
495 self.is_valid = self.cf.validate() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
496 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
497 # Load detector info file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
498 df = msnc.Detector(self.cf.config['detector']['id']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
499 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
500 # Check detector info file parameters | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
501 if df.validate(): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
502 pixel_size = df.getPixelSize() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
503 num_rows, num_columns = df.getDimensions() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
504 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
 | 
505 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
506 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
507 pixel_size = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
508 num_rows = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
509 num_columns = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
510 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
511 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
512 # Update config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
513 self.cf.config['detector']['pixel_size'] = pixel_size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
514 self.cf.config['detector']['rows'] = num_rows | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
515 self.cf.config['detector']['columns'] = num_columns | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
516 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
 | 
517 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
 | 
518 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
 | 
519 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
520 # Safe config to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
521 if self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
522 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
523 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
524 # Initialize shortcut to config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
525 self.config = self.cf.config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
526 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
527 # Initialize tomography stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
528 num_tomo_stacks = self.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
529 if num_tomo_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
530 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
 | 
531 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
 | 
532 | 
| 
2
 
b8977c98800b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0c40fb274acc13ebf7054379bb49ed13acec918e"
 
rv43 
parents: 
1 
diff
changeset
 | 
533 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
 | 
534 logging.debug(f'config_file = {config_file}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
535 logging.debug(f'config_dict = {config_dict}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
536 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
 | 
537 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
 | 
538 logging.debug(f'log_stream = {log_stream}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
539 logging.debug(f'log_level = {log_level}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
540 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
 | 
541 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
 | 
542 logging.debug(f'save_plots = {self.save_plots}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
543 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
 | 
544 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
545 def _selectImageRanges(self, available_stacks=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
546 """Select image files to be included in analysis. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
547 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
548 self.is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
549 stack_info = self.config['stack_info'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
550 if available_stacks is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
551 available_stacks = [False]*stack_info['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
552 elif len(available_stacks) != stack_info['num']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
553 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
 | 
554 f'({len(available_stacks)}'); | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
555 available_stacks = [False]*stack_info['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
556 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
557 # Check number of tomography angles/thetas | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
558 num_thetas = self.config['theta_range'].get('num') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
559 if num_thetas is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
560 num_thetas = pyip.inputInt('\nEnter the number of thetas (>0): ', greaterThan=0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
561 elif not msnc.is_int(num_thetas, 0): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
562 msnc.illegal_value('num_thetas', num_thetas, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
563 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
564 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
565 self.config['theta_range']['num'] = num_thetas | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
566 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
 | 
567 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
568 # Find tomography dark field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
569 dark_field = self.config['dark_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
570 img_start = dark_field.get('img_start', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
571 img_offset = dark_field.get('img_offset', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
572 num_imgs = dark_field.get('num', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
573 if not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
574 img_start, img_offset, num_imgs = msnc.selectImageRange(img_start, img_offset, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
575 num_imgs, 'dark field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
576 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
577 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
 | 
578 if dark_field['data_path']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
579 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
580 dark_field['img_start'] = img_start | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
581 dark_field['img_offset'] = img_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
582 dark_field['num'] = num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
583 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
 | 
584 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
 | 
585 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
 | 
586 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
587 # Find tomography bright field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
588 bright_field = self.config['bright_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
589 img_start = bright_field.get('img_start', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
590 img_offset = bright_field.get('img_offset', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
591 num_imgs = bright_field.get('num', 0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
592 if not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
593 img_start, img_offset, num_imgs = msnc.selectImageRange(img_start, img_offset, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
594 num_imgs, 'bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
595 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
596 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
 | 
597 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
598 bright_field['img_start'] = img_start | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
599 bright_field['img_offset'] = img_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
600 bright_field['num'] = num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
601 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
 | 
602 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
 | 
603 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
 | 
604 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
605 # Find tomography images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
606 for i,stack in enumerate(stack_info['stacks']): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
607 # Check if stack is already loaded or available | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
608 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
 | 
609 continue | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
610 index = stack['index'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
611 img_start = stack.get('img_start', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
612 img_offset = stack.get('img_offset', -1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
613 num_imgs = stack.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: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
615 img_start, img_offset, num_imgs = msnc.selectImageRange(img_start, img_offset, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
616 num_imgs, f'tomography stack {index}', num_thetas) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
617 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
 | 
618 logging.error('Unable to find suitable tomography images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
619 self.is_valid = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
620 stack['img_start'] = img_start | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
621 stack['img_offset'] = img_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
622 stack['num'] = num_imgs | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
623 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
 | 
624 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
 | 
625 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
 | 
626 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
627 # Safe updated config to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
628 if self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
629 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
630 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
631 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
632 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
633 def _genDark(self, tdf_files, dark_field_pngname): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
634 """Generate dark field. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
635 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
636 # Load the dark field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
637 logging.debug('Loading dark field...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
638 dark_field = self.config['dark_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
639 tdf_stack = msnc.loadImageStack(tdf_files, self.config['data_filetype'], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
640 dark_field['img_offset'], dark_field['num']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
641 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
642 # Take median | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
643 self.tdf = np.median(tdf_stack, axis=0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
644 del tdf_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
645 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
646 # 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
 | 
647 tdf_cutoff = 21 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
648 self.tdf[self.tdf > tdf_cutoff] = np.nan | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
649 tdf_mean = np.nanmean(self.tdf) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
650 logging.debug(f'tdf_cutoff = {tdf_cutoff}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
651 logging.debug(f'tdf_mean = {tdf_mean}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
652 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
 | 
653 if self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
654 msnc.quickImshow(self.tdf, title='dark field', name=dark_field_pngname, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
655 save_fig=True, save_only=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
656 elif not self.test_mode: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
657 msnc.quickImshow(self.tdf, title='dark field', path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
658 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
 | 
659 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
660 def _genBright(self, tbf_files, bright_field_pngname): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
661 """Generate bright field. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
662 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
663 # Load the bright field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
664 logging.debug('Loading bright field...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
665 bright_field = self.config['bright_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
666 tbf_stack = msnc.loadImageStack(tbf_files, self.config['data_filetype'], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
667 bright_field['img_offset'], bright_field['num']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
668 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
669 # Take median | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
670 """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
 | 
671 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
 | 
672 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
 | 
673 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
 | 
674 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
 | 
675 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
 | 
676 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
 | 
677 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
 | 
678 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
679 self.tbf = np.median(tbf_stack, axis=0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
680 del tbf_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
681 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
682 # Subtract dark field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
683 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
684 self.tbf -= self.tdf | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
685 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
686 logging.warning('Dark field unavailable') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
687 if self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
688 msnc.quickImshow(self.tbf, title='bright field', name=bright_field_pngname, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
689 save_fig=True, save_only=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
690 elif not self.test_mode: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
691 msnc.quickImshow(self.tbf, title='bright field', path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
692 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
 | 
693 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
694 def _setDetectorBounds(self, tomo_stack_files, tomo_field_pngname, detectorbounds_pngname): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
695 """Set vertical detector bounds for image stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
696 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
697 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
698 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
699 img_x_bounds = [None, None] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
700 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
701 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
 | 
702 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
 | 
703 if img_x_bounds[0] < 0: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
704 msnc.illegal_value('img_x_bounds[0]', img_x_bounds[0], 'config file') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
705 img_x_bounds[0] = 0 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
706 if not msnc.is_index_range(img_x_bounds, 0, self.tbf.shape[0]): | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
707 msnc.illegal_value('img_x_bounds[1]', img_x_bounds[1], 'config file') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
708 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
 | 
709 if self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
710 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
711 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
712 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
 | 
713 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
714 preprocess['img_x_bounds'] = img_x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
715 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
716 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
717 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
718 # Check reference heights | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
719 pixel_size = self.config['detector']['pixel_size'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
720 if pixel_size is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
721 raise ValueError('Detector pixel size unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
722 if not self.tbf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
723 raise ValueError('Bright field unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
724 num_x_min = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
725 num_tomo_stacks = self.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
726 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
727 if num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
728 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
 | 
729 for i in range(2, num_tomo_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
730 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
 | 
731 logging.debug(f'delta_z = {delta_z}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
732 num_x_min = int(delta_z/pixel_size)+1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
733 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
 | 
734 if num_x_min > self.tbf.shape[0]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
735 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
 | 
736 num_x_min = self.tbf.shape[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
737 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
738 # Select image bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
739 if self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
740 if num_x_min is None or num_x_min >= self.tbf.shape[0]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
741 img_x_bounds = [0, self.tbf.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
742 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
743 margin = int(num_x_min/10) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
744 offset = min(0, int((self.tbf.shape[0]-num_x_min)/2-margin)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
745 img_x_bounds = [offset, num_x_min+offset+2*margin] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
746 tomo_stack = msnc.loadImageStack(tomo_stack_files[0], self.config['data_filetype'], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
747 stacks[0]['img_offset'], 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
748 x_sum = np.sum(tomo_stack[0,:,:], 1) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
749 x_sum_min = x_sum.min() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
750 x_sum_max = x_sum.max() | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
751 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
752 msnc.quickImshow(tomo_stack[0,:,:], title=title, name=tomo_field_pngname, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
753 save_fig=True, save_only=True, show_grid=True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
754 msnc.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
 | 
755 ([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
 | 
756 ([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
 | 
757 title='sum over theta and y', name=detectorbounds_pngname, | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
758 save_fig=True, save_only=True, show_grid=True) | 
| 
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 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
761 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
762 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
 | 
763 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
764 preprocess['img_x_bounds'] = img_x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
765 self.cf.saveFile(self.config_out) | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
766 del x_sum | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
767 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
768 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
769 # 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
 | 
770 title = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
771 msnc.quickImshow(self.tbf, title='bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
772 if num_tomo_stacks == 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
773 tomo_stack = msnc.loadImageStack(tomo_stack_files[0], self.config['data_filetype'], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
774 stacks[0]['img_offset'], 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
775 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
776 msnc.quickImshow(tomo_stack[0,:,:], title=title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
777 tomo_or_bright = pyip.inputNum('\nSelect image bounds from bright field (0) or '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
778 'from first tomography image (1): ', min=0, max=1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
779 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
780 print('\nSelect image bounds from bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
781 tomo_or_bright = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
782 if tomo_or_bright: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
783 x_sum = np.sum(tomo_stack[0,:,:], 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
784 use_bounds = 'no' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
785 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
 | 
786 tmp = np.copy(tomo_stack[0,:,:]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
787 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
788 tmp[img_x_bounds[0],:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
789 tmp[img_x_bounds[1]-1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
790 msnc.quickImshow(tmp, title=title) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
791 del tmp | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
792 x_sum_min = x_sum.min() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
793 x_sum_max = x_sum.max() | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
794 msnc.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
 | 
795 ([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
 | 
796 ([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
 | 
797 title='sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
798 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
 | 
799 f'upper bound = {img_x_bounds[1]} (exclusive)]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
800 use_bounds = pyip.inputYesNo('Accept these bounds ([y]/n)?: ', blank=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
801 if use_bounds == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
802 img_x_bounds = msnc.selectImageBounds(tomo_stack[0,:,:], 0, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
803 img_x_bounds[0], img_x_bounds[1], num_x_min, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
804 f'tomography image at theta={self.config["theta_range"]["start"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
805 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
 | 
806 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
 | 
807 title = f'tomography image at theta={self.config["theta_range"]["start"]}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
808 msnc.quickImshow(tomo_stack[0,:,:], title=title, path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
809 save_fig=self.save_plots, save_only=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
810 msnc.quickPlot(range(img_x_bounds[0], img_x_bounds[1]), | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
811 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
 | 
812 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
 | 
813 save_fig=self.save_plots, save_only=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
814 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
815 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
 | 
816 x_sum_min = x_sum.min() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
817 x_sum_max = x_sum.max() | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
818 use_bounds = 'no' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
819 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
 | 
820 tmp = np.copy(self.tbf) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
821 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
822 tmp[img_x_bounds[0],:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
823 tmp[img_x_bounds[1]-1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
824 title = 'Bright field' | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
825 msnc.quickImshow(tmp, title=title) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
826 del tmp | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
827 msnc.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
 | 
828 ([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
 | 
829 ([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
 | 
830 title='sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
831 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
 | 
832 f'upper bound = {img_x_bounds[1]} (exclusive)]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
833 use_bounds = pyip.inputYesNo('Accept these bounds ([y]/n)?: ', blank=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
834 if use_bounds == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
835 fit = msnc.fitStep(y=x_sum, model='rectangle', form='atan') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
836 x_low = fit.get('center1', None) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
837 x_upp = fit.get('center2', None) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
838 if (x_low is not None and x_low >= 0 and x_upp is not None and | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
839 x_low < x_upp < x_sum.size): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
840 x_low = int(x_low-(x_upp-x_low)/10) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
841 if x_low < 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
842 x_low = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
843 x_upp = int(x_upp+(x_upp-x_low)/10) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
844 if x_upp >= x_sum.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
845 x_upp = x_sum.size | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
846 tmp = np.copy(self.tbf) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
847 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
848 tmp[x_low,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
849 tmp[x_upp-1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
850 title = 'Bright field' | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
851 msnc.quickImshow(tmp, title=title) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
852 del tmp | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
853 msnc.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
 | 
854 ([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
 | 
855 ([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
 | 
856 title='sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
857 print(f'lower bound = {x_low} (inclusive)\nupper bound = {x_upp} (exclusive)]') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
858 use_fit = pyip.inputYesNo('Accept these bounds ([y]/n)?: ', blank=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
859 if use_fit == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
860 img_x_bounds = msnc.selectArrayBounds(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
 | 
861 num_x_min, 'sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
862 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
863 img_x_bounds = [x_low, x_upp] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
864 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
 | 
865 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
 | 
866 msnc.quickPlot(range(img_x_bounds[0], img_x_bounds[1]), | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
867 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
 | 
868 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
 | 
869 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
 | 
870 del x_sum | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
871 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
 | 
872 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
873 if self.save_plots_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
874 msnc.clearFig('bright field') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
875 msnc.clearFig('sum over theta and y') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
876 if title: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
877 msnc.clearFig(title) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
878 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
879 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
880 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
881 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
 | 
882 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
883 preprocess['img_x_bounds'] = img_x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
884 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
885 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
886 def _setZoomOrSkip(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
887 """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
 | 
888 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
889 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
890 zoom_perc = 100 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
891 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
892 if preprocess is None or 'zoom_perc' not in preprocess: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
893 if pyip.inputYesNo( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
894 '\nDo you want to zoom in to reduce memory requirement (y/[n])? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
895 blank=True) == 'yes': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
896 zoom_perc = pyip.inputInt(' Enter zoom percentage [1, 100]: ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
897 min=1, max=100) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
898 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
899 zoom_perc = preprocess['zoom_perc'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
900 if msnc.is_num(zoom_perc, 1., 100.): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
901 zoom_perc = int(zoom_perc) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
902 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
903 msnc.illegal_value('zoom_perc', zoom_perc, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
904 zoom_perc = 100 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
905 num_theta_skip = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
906 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
907 if preprocess is None or 'num_theta_skip' not in preprocess: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
908 if pyip.inputYesNo( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
909 'Do you want to skip thetas to reduce memory requirement (y/[n])? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
910 blank=True) == 'yes': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
911 num_theta_skip = pyip.inputInt(' Enter the number skip theta interval'+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
912 f' [0, {self.num_thetas-1}]: ', min=0, max=self.num_thetas-1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
913 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
914 num_theta_skip = preprocess['num_theta_skip'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
915 if not msnc.is_int(num_theta_skip, 0): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
916 msnc.illegal_value('num_theta_skip', num_theta_skip, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
917 num_theta_skip = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
918 logging.info(f'zoom_perc = {zoom_perc}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
919 logging.info(f'num_theta_skip = {num_theta_skip}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
920 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
921 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
922 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
923 self.cf.config['preprocess'] = {'zoom_perc' : zoom_perc, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
924 'num_theta_skip' : num_theta_skip} | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
925 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
926 preprocess['zoom_perc'] = zoom_perc | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
927 preprocess['num_theta_skip'] = num_theta_skip | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
928 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
929 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
930 def _loadTomo(self, base_name, index, required=False): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
931 """Load a tomography stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
932 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
933 # stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
934 zoom_perc = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
935 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
936 if preprocess: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
937 zoom_perc = preprocess.get('zoom_perc') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
938 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
 | 
939 title = f'{base_name} fullres' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
940 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
941 title = f'{base_name} {zoom_perc}p' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
942 title += f'_{index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
943 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
 | 
944 load_flag = 'no' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
945 available = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
946 if os.path.isfile(tomo_file): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
947 available = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
948 if required: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
949 load_flag = 'yes' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
950 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
951 load_flag = pyip.inputYesNo(f'\nDo you want to load {tomo_file} (y/n)? ') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
952 stack = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
953 if load_flag == 'yes': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
954 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
955 logging.info(f'Loading {tomo_file} ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
956 try: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
957 stack = np.load(tomo_file) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
958 except IOError or ValueError: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
959 stack = np.array([]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
960 logging.error(f'Error loading {tomo_file}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
961 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
 | 
962 if stack.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
963 msnc.quickImshow(stack[:,0,:], title=title, path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
964 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
 | 
965 return stack, available | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
966 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
967 def _saveTomo(self, base_name, stack, index=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
968 """Save a tomography stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
969 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
970 zoom_perc = None | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
971 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
972 if preprocess: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
973 zoom_perc = preprocess.get('zoom_perc') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
974 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
 | 
975 title = f'{base_name} fullres' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
976 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
977 title = f'{base_name} {zoom_perc}p' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
978 if index: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
979 title += f'_{index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
980 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
 | 
981 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
982 logging.info(f'Saving {tomo_file} ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
983 np.save(tomo_file, stack) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
984 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
 | 
985 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
986 def _genTomo(self, tomo_stack_files, available_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
987 """Generate tomography fields. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
988 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
989 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
990 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
 | 
991 assert(len(self.tomo_stacks) == len(stacks)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
992 if len(available_stacks) != len(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
993 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
 | 
994 f'({len(available_stacks)}'); | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
995 available_stacks = [False]*self.num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
996 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
997 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
998 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
999 img_x_bounds = [0, self.tbf.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1000 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
 | 
1001 zoom_perc = 100 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1002 num_theta_skip = 0 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1003 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1004 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
 | 
1005 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
 | 
1006 zoom_perc = preprocess.get('zoom_perc', 100) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1007 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
 | 
1008 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1009 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1010 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
 | 
1011 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1012 logging.warning('Dark field unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1013 if not self.tbf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1014 raise ValueError('Bright field unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1015 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
 | 
1016 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1017 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1018 # Check if stack is already loaded or available | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1019 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
 | 
1020 continue | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1021 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1022 # Load a stack of tomography images | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1023 index = stack['index'] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1024 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1025 tomo_stack = msnc.loadImageStack(tomo_stack_files[i], self.config['data_filetype'], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1026 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
 | 
1027 img_x_bounds, img_y_bounds) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1028 tomo_stack = tomo_stack.astype('float64') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1029 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
 | 
1030 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1031 # Subtract dark field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1032 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1033 t0 = time() | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1034 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1035 ne.evaluate('tomo_stack-tdf', out=tomo_stack) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1036 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
 | 
1037 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1038 # Normalize | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1039 t0 = time() | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1040 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1041 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
 | 
1042 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
 | 
1043 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1044 # Remove non-positive values and linearize data | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1045 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1046 cutoff = 1.e-6 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1047 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1048 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
 | 
1049 with set_numexpr_threads(self.num_core): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1050 ne.evaluate('-log(tomo_stack)', out=tomo_stack) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1051 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
 | 
1052 f'{time()-t0:.2f} seconds!') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1053 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1054 # 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
 | 
1055 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1056 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
 | 
1057 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
 | 
1058 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1059 # Downsize tomography stack to smaller size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1060 tomo_stack = tomo_stack.astype('float32') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1061 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1062 title = f'red stack fullres {index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1063 if not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1064 msnc.quickImshow(tomo_stack[0,:,:], title=title, path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1065 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
 | 
1066 if zoom_perc != 100: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1067 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1068 logging.info(f'Zooming in ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1069 tomo_zoom_list = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1070 for j in range(tomo_stack.shape[0]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1071 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
 | 
1072 tomo_zoom_list.append(tomo_zoom) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1073 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
 | 
1074 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
 | 
1075 del tomo_zoom_list | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1076 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1077 title = f'red stack {zoom_perc}p {index}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1078 if not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1079 msnc.quickImshow(tomo_stack[0,:,:], title=title, path=self.output_folder, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1080 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
 | 
1081 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1082 # 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
 | 
1083 tomo_stack = np.swapaxes(tomo_stack, 0, 1) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1084 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1085 # Save tomography stack to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1086 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1087 if not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1088 self._saveTomo('red stack', tomo_stack, index) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1089 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1090 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
 | 
1091 tomo_stack[0,:,:], fmt='%.6e') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1092 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1093 # Combine stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1094 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1095 self.tomo_stacks[i] = tomo_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1096 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
 | 
1097 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1098 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1099 stack['preprocessed'] = True | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1100 stack.pop('reconstructed', 'reconstructed not found') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1101 find_center = self.config.get('find_center') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1102 if find_center: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1103 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
 | 
1104 if self.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1105 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
 | 
1106 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
 | 
1107 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1108 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1109 if self.tdf.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1110 del tdf | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1111 del tbf | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1112 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1113 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
 | 
1114 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
 | 
1115 """Invert the sinogram for a single tomography plane. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1116 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1117 # tomo_plane_T index order: column,theta | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1118 assert(0 <= center < tomo_plane_T.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1119 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
 | 
1120 two_offset = 2*int(np.round(center_offset)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1121 two_offset_abs = np.abs(two_offset) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1122 max_rad = int(0.5*(cross_sectional_dim/eff_pixel_size)*1.1) # 10% slack to avoid edge effects | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1123 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
 | 
1124 if two_offset >= 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1125 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
 | 
1126 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
 | 
1127 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1128 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
 | 
1129 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
 | 
1130 if plot_sinogram and not self.test_mode: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1131 msnc.quickImshow(sinogram.T, f'sinogram center offset{center_offset:.2f}', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1132 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
 | 
1133 save_only=self.save_plots_only, aspect='auto') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1134 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1135 # Inverting sinogram | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1136 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1137 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
 | 
1138 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
 | 
1139 del sinogram | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1140 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1141 # Removing ring artifacts | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1142 # 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
 | 
1143 t0 = time() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1144 # recon_sinogram = filters.gaussian(recon_sinogram, 3.0) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1145 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
 | 
1146 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
 | 
1147 del recon_sinogram | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1148 recon_clean = tomopy.misc.corr.remove_ring(recon_clean, rwidth=17, ncore=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1149 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
 | 
1150 return recon_clean | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1151 | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1152 def _plotEdgesOnePlane(self, recon_plane, title, name=None, weight=0.001): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1153 # 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
 | 
1154 edges = denoise_tv_chambolle(recon_plane, weight = weight) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1155 vmax = np.max(edges[0,:,:]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1156 vmin = -vmax | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1157 if self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1158 msnc.quickImshow(edges[0,:,:], title, name=name, save_fig=True, save_only=True, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1159 cmap='gray', vmin=vmin, vmax=vmax) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1160 else: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1161 msnc.quickImshow(edges[0,:,:], f'{title} coolwarm', path=self.output_folder, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1162 save_fig=self.save_plots, save_only=self.save_plots_only, cmap='coolwarm') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1163 msnc.quickImshow(edges[0,:,:], f'{title} gray', path=self.output_folder, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1164 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
 | 
1165 vmin=vmin, vmax=vmax) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1166 del edges | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1167 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1168 def _findCenterOnePlane(self, sinogram, row, thetas_deg, eff_pixel_size, cross_sectional_dim, | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1169 tol=0.1, num_core=1, recon_pngname=None, galaxy_param=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1170 """Find center for a single tomography plane. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1171 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1172 # sinogram index order: theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1173 # 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
 | 
1174 sinogram_T = sinogram.T | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1175 center = sinogram.shape[1]/2 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1176 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1177 # try automatic center finding routines for initial value | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1178 tomo_center = tomopy.find_center_vo(sinogram, ncore=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1179 center_offset_vo = tomo_center-center | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1180 if self.test_mode: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1181 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
 | 
1182 del sinogram_T | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1183 return float(center_offset_vo) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1184 elif self.galaxy_flag: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1185 logging.info(f'Center at row {row} using Nghia Vo’s method = {center_offset_vo:.2f}') | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1186 if recon_pngname: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1187 assert(isinstance(recon_pngname, str)) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1188 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
 | 
1189 eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1190 title = os.path.basename(recon_pngname) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1191 self._plotEdgesOnePlane(recon_plane, title, name=recon_pngname) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1192 del recon_plane | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1193 if not galaxy_param or not galaxy_param['center_type_selector']: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1194 del sinogram_T | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1195 return float(center_offset_vo) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1196 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1197 print(f'Center at row {row} using Nghia Vo’s method = {center_offset_vo:.2f}') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1198 if recon_pngname: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1199 logging.warning('Ignoring recon_pngname in _findCenterOnePlane (only for Galaxy)') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1200 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
 | 
1201 eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1202 title = f'edges row{row} center_offset_vo{center_offset_vo:.2f}' | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1203 self._plotEdgesOnePlane(recon_plane, title) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1204 if not self.galaxy_flag: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1205 if (pyip.inputYesNo('Try finding center using phase correlation '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1206 '(y/[n])? ', blank=True) == 'yes'): | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1207 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
 | 
1208 rotc_guess=tomo_center) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1209 error = 1. | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1210 while error > tol: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1211 prev = tomo_center | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1212 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
 | 
1213 rotc_guess=tomo_center) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1214 error = np.abs(tomo_center-prev) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1215 center_offset = tomo_center-center | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1216 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
 | 
1217 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
 | 
1218 eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1219 title = f'edges row{row} center_offset{center_offset:.2f}' | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1220 self._plotEdgesOnePlane(recon_plane, title) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1221 if (pyip.inputYesNo('Accept a center location ([y]) or continue '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1222 'search (n)? ', blank=True) != 'no'): | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1223 center_offset = pyip.inputNum( | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1224 f' Enter chosen center offset [{-int(center)}, {int(center)}] '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1225 f'([{center_offset_vo:.2f}])): ', blank=True) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1226 if center_offset == '': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1227 center_offset = center_offset_vo | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1228 del sinogram_T | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1229 del recon_plane | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1230 return float(center_offset) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1231 | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1232 # perform center finding search | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1233 while True: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1234 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
 | 
1235 set_center = center_offset_vo | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1236 if galaxy_param['center_type_selector'] == 'user': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1237 set_center = galaxy_param['set_center'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1238 set_range = galaxy_param['set_range'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1239 center_offset_step = galaxy_param['set_step'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1240 if (not msnc.is_num(set_range, 0) or not msnc.is_num(center_offset_step) or | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1241 center_offset_step <= 0): | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1242 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
 | 
1243 del sinogram_T | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1244 return float(center_offset_vo) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1245 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
 | 
1246 center_offset_low = set_center-set_range | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1247 center_offset_upp = set_center+set_range | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1248 else: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1249 center_offset_low = pyip.inputInt('\nEnter lower bound for center offset '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1250 f'[{-int(center)}, {int(center)}]: ', min=-int(center), max=int(center)) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1251 center_offset_upp = pyip.inputInt('Enter upper bound for center offset '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1252 f'[{center_offset_low}, {int(center)}]: ', | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1253 min=center_offset_low, max=int(center)) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1254 if center_offset_upp == center_offset_low: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1255 center_offset_step = 1 | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1256 else: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1257 center_offset_step = pyip.inputInt('Enter step size for center offset search '+ | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1258 f'[1, {center_offset_upp-center_offset_low}]: ', | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1259 min=1, max=center_offset_upp-center_offset_low) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1260 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
 | 
1261 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
 | 
1262 for center_offset in center_offsets: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1263 if center_offset == center_offset_vo: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1264 continue | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1265 logging.info(f'center_offset = {center_offset:.2f}') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1266 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
 | 
1267 thetas_deg, eff_pixel_size, cross_sectional_dim, False, num_core) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1268 title = f'edges row{row} center_offset{center_offset:.2f}' | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1269 self._plotEdgesOnePlane(recon_plane, title) | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1270 if self.galaxy_flag or pyip.inputInt('\nContinue (0) or end the search (1): ', | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1271 min=0, max=1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1272 break | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1273 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1274 del sinogram_T | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1275 del recon_plane | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1276 if self.galaxy_flag: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1277 center_offset = center_offset_vo | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1278 else: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1279 center_offset = pyip.inputNum(f' Enter chosen center offset '+ | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1280 f'[{-int(center)}, {int(center)}]: ', min=-int(center), max=int(center)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1281 return float(center_offset) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1282 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1283 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
 | 
1284 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
 | 
1285 run_secondary_sirt=False, secondary_iter=100): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1286 """reconstruct a single tomography stack. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1287 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1288 # stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1289 # thetas must be in radians | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1290 # 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
 | 
1291 # RV should we remove stripes? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1292 # 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
 | 
1293 # RV should we remove rings? | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1294 # 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
 | 
1295 # 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
 | 
1296 if row_bounds is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1297 row_bounds = [0, tomo_stack.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1298 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1299 if not msnc.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
 | 
1300 raise ValueError('Illegal row bounds in reconstructOneTomoStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1301 if thetas.size != tomo_stack.shape[1]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1302 raise ValueError('theta dimension mismatch in reconstructOneTomoStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1303 if not len(center_offsets): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1304 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
 | 
1305 elif len(center_offsets) == 2: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1306 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
 | 
1307 row_bounds[1]-row_bounds[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1308 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1309 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
 | 
1310 raise ValueError('center_offsets dimension mismatch in reconstructOneTomoStack') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1311 centers = center_offsets | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1312 centers += tomo_stack.shape[2]/2 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1313 if True: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1314 tomo_stack = tomopy.prep.stripe.remove_stripe_fw( | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1315 tomo_stack[row_bounds[0]:row_bounds[1]], sigma=sigma, ncore=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1316 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1317 tomo_stack = tomo_stack[row_bounds[0]:row_bounds[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1318 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
 | 
1319 algorithm=algorithm, ncore=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1320 if run_secondary_sirt and secondary_iter > 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1321 #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
 | 
1322 #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
 | 
1323 # cuda driver combination." | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1324 #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
 | 
1325 #SIRT did not finish while running overnight | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1326 #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
 | 
1327 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
 | 
1328 'num_iter':secondary_iter} | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1329 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
 | 
1330 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
 | 
1331 algorithm=tomopy.astra, ncore=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1332 if True: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1333 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
 | 
1334 ncore=num_core) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1335 return tomo_recon_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1336 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1337 def findImageFiles(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1338 """Find all available image files. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1339 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1340 self.is_valid = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1341 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1342 # Find dark field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1343 dark_field = self.config['dark_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1344 img_start, num_imgs, dark_files = msnc.findImageFiles( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1345 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
 | 
1346 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1347 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
 | 
1348 if dark_field['data_path']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1349 self.is_valid = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1350 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
 | 
1351 num_imgs_old = dark_field.get('num') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1352 if num_imgs_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1353 dark_field['num'] = num_imgs | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1354 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1355 if num_imgs_old > num_imgs: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1356 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
 | 
1357 if dark_field['data_path']: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1358 self.is_valid = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1359 if img_start_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1360 dark_field['img_start'] = img_start | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1361 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1362 if img_start_old < img_start: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1363 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
 | 
1364 if dark_field['data_path']: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1365 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1366 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
 | 
1367 logging.info(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
 | 
1368 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1369 # Find bright field images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1370 bright_field = self.config['bright_field'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1371 img_start, num_imgs, bright_files = msnc.findImageFiles( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1372 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
 | 
1373 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1374 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
 | 
1375 self.is_valid = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1376 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
 | 
1377 num_imgs_old = bright_field.get('num') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1378 if num_imgs_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1379 bright_field['num'] = num_imgs | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1380 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1381 if num_imgs_old > num_imgs: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1382 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
 | 
1383 self.is_valid = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1384 if img_start_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1385 bright_field['img_start'] = img_start | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1386 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1387 if img_start_old < img_start: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1388 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
 | 
1389 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1390 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
 | 
1391 logging.info(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
 | 
1392 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1393 # Find tomography images | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1394 tomo_stack_files = [] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1395 for stack in self.config['stack_info']['stacks']: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1396 index = stack['index'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1397 img_start, num_imgs, tomo_files = msnc.findImageFiles( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1398 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
 | 
1399 if img_start < 0 or num_imgs < 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1400 logging.error('Unable to find suitable tomography images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1401 self.is_valid = False | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1402 img_start_old = stack.get('img_start') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1403 num_imgs_old = stack.get('num') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1404 if num_imgs_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1405 stack['num'] = num_imgs | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1406 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1407 if num_imgs_old > num_imgs: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1408 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
 | 
1409 self.is_valid = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1410 if img_start_old is None: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1411 stack['img_start'] = img_start | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1412 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1413 if img_start_old < img_start: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1414 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
 | 
1415 self.is_valid = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1416 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
 | 
1417 logging.info(f'Tomography set {index} image start index = {stack["img_start"]}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1418 tomo_stack_files.append(tomo_files) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1419 del tomo_files | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1420 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1421 # Safe updated config | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1422 if self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1423 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1424 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1425 return dark_files, bright_files, tomo_stack_files | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1426 | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1427 def loadTomoStacks(self, input_name): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1428 """Load tomography stacks (only for Galaxy). | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1429 """ | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1430 assert(self.galaxy_flag) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1431 t0 = time() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1432 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
 | 
1433 stack_info = self.config['stack_info'] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1434 stacks = stack_info.get('stacks') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1435 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
 | 
1436 with np.load(input_name) as f: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1437 for i,stack in enumerate(stacks): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1438 self.tomo_stacks[i] = f[f'set_{stack["index"]}'] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1439 logging.info(f'loaded stack {i}: index = {stack["index"]}, shape = '+ | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1440 f'{self.tomo_stacks[i].shape}') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1441 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
 | 
1442 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1443 def genTomoStacks(self, tdf_files=None, tbf_files=None, tomo_stack_files=None, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1444 dark_field_pngname=None, bright_field_pngname=None, tomo_field_pngname=None, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1445 detectorbounds_pngname=None, output_name=None): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1446 """Preprocess tomography images. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1447 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1448 # 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
 | 
1449 # 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
 | 
1450 stack_info = self.config['stack_info'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1451 stacks = stack_info['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1452 num_tomo_stacks = stack_info['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1453 assert(num_tomo_stacks == len(self.tomo_stacks)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1454 available_stacks = [False]*num_tomo_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1455 if self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1456 assert(tdf_files is None or isinstance(tdf_files, list)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1457 assert(isinstance(tbf_files, list)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1458 assert(isinstance(tomo_stack_files, list)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1459 assert(num_tomo_stacks == len(tomo_stack_files)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1460 assert(isinstance(dark_field_pngname, str)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1461 assert(isinstance(bright_field_pngname, str)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1462 assert(isinstance(tomo_field_pngname, str)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1463 assert(isinstance(detectorbounds_pngname, str)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1464 assert(isinstance(output_name, str)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1465 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1466 if tdf_files: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1467 logging.warning('Ignoring tdf_files in genTomoStacks (only for Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1468 if tbf_files: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1469 logging.warning('Ignoring tbf_files in genTomoStacks (only for Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1470 if tomo_stack_files: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1471 logging.warning('Ignoring tomo_stack_files in genTomoStacks (only for Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1472 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
 | 
1473 if not self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1474 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1475 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1476 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
 | 
1477 self.tomo_stacks[i], available_stacks[i] = \ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1478 self._loadTomo('red stack', stack['index']) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1479 if dark_field_pngname: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1480 logging.warning('Ignoring dark_field_pngname in genTomoStacks (only for Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1481 if bright_field_pngname: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1482 logging.warning('Ignoring bright_field_pngname in genTomoStacks (only for Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1483 if tomo_field_pngname: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1484 logging.warning('Ignoring tomo_field_pngname in genTomoStacks (only for Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1485 if detectorbounds_pngname: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1486 logging.warning('Ignoring detectorbounds_pngname in genTomoStacks '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1487 '(only used in Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1488 if output_name: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1489 logging.warning('Ignoring output_name in genTomoStacks '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1490 '(only used in Galaxy)') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1491 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1492 # Preprocess any unloaded stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1493 if False in available_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1494 logging.debug('Preprocessing tomography images') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1495 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1496 # Check required image files (skip in Galaxy) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1497 if not self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1498 self._selectImageRanges(available_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1499 if not self.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1500 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1501 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1502 # Generate dark field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1503 if tdf_files: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1504 self._genDark(tdf_files, dark_field_pngname) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1505 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1506 # Generate bright field | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1507 self._genBright(tbf_files, bright_field_pngname) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1508 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1509 # Set vertical detector bounds for image stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1510 self._setDetectorBounds(tomo_stack_files, tomo_field_pngname, detectorbounds_pngname) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1511 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1512 # 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
 | 
1513 self._setZoomOrSkip() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1514 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1515 # Generate tomography fields | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1516 self._genTomo(tomo_stack_files, available_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1517 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1518 # Save tomography stack to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1519 if self.galaxy_flag: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1520 t0 = time() | 
| 
2
 
b8977c98800b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 0c40fb274acc13ebf7054379bb49ed13acec918e"
 
rv43 
parents: 
1 
diff
changeset
 | 
1521 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
 | 
1522 save_stacks = {f'set_{stack["index"]}':tomo_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1523 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
 | 
1524 np.savez(output_name, **save_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1525 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
 | 
1526 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1527 del available_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1528 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1529 # 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
 | 
1530 preprocess = self.config.get('preprocess') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1531 if preprocess is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1532 img_x_bounds = [0, self.tbf.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1533 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1534 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
 | 
1535 pixel_size = self.config['detector']['pixel_size'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1536 if pixel_size is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1537 raise ValueError('Detector pixel size unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1538 pixel_size *= img_x_bounds[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1539 for stack in stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1540 stack['ref_height'] = stack['ref_height']+pixel_size | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1541 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1542 | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1543 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
 | 
1544 """Find rotation axis centers for the tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1545 """ | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1546 if num_core is None: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1547 num_core = self.num_core | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1548 logging.debug('Find centers for tomography stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1549 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1550 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
 | 
1551 logging.debug('Available stacks: {available_stacks}') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1552 if self.galaxy_flag: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1553 assert(isinstance(galaxy_param, dict)) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1554 row_bounds = galaxy_param['row_bounds'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1555 center_rows = galaxy_param['center_rows'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1556 if center_rows is None: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1557 logging.error('Missing center_rows entry in galaxy_param') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1558 return | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1559 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
 | 
1560 if center_type_selector: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1561 if center_type_selector == 'vo': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1562 set_center = None | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1563 elif center_type_selector == 'user': | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1564 set_center = galaxy_param['set_center'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1565 else: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1566 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
 | 
1567 f'({center_type_selector})') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1568 galaxy_param['center_type_selector'] = None | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1569 else: | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1570 if galaxy_param: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1571 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
 | 
1572 galaxy_param = None | 
| 
0
 
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 # Check for valid available center stack index | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1575 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
 | 
1576 center_stack_index = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1577 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
 | 
1578 center_stack_index = find_center['center_stack_index'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1579 if (not isinstance(center_stack_index, int) or | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1580 center_stack_index not in available_stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1581 msnc.illegal_value('center_stack_index', center_stack_index, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1582 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1583 if self.test_mode: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1584 assert(find_center.get('completed', False) == False) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1585 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1586 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
 | 
1587 f'{center_stack_index}') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1588 if (pyip.inputYesNo('Do you want to use this again ([y]/n)? ', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1589 blank=True) != 'no' 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
 | 
1590 return | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1591 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1592 # Load the required preprocessed stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1593 # preprocessed stack order: row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1594 num_tomo_stacks = self.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1595 assert(len(stacks) == num_tomo_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1596 assert(len(self.tomo_stacks) == num_tomo_stacks) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1597 if num_tomo_stacks == 1: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1598 if not center_stack_index: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1599 center_stack_index = stacks[0]['index'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1600 elif center_stack_index != stacks[0]['index']: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1601 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
 | 
1602 if not self.tomo_stacks[0].size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1603 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
 | 
1604 required=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1605 center_stack = self.tomo_stacks[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1606 if not center_stack.size: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1607 stacks[0]['preprocessed'] = False | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1608 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
 | 
1609 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
 | 
1610 elif self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1611 logging.error('CHECK/FIX FOR GALAXY') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1612 #center_stack_index = stacks[int(num_tomo_stacks/2)]['index'] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1613 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1614 while True: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1615 if not center_stack_index: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1616 center_stack_index = pyip.inputInt('\nEnter tomography stack index to get ' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1617 f'rotation axis centers {available_stacks}: ') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1618 while center_stack_index not in available_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1619 center_stack_index = pyip.inputInt('\nEnter tomography stack index to get ' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1620 f'rotation axis centers {available_stacks}: ') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1621 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
 | 
1622 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
 | 
1623 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
 | 
1624 'red stack', center_stack_index, required=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1625 center_stack = self.tomo_stacks[tomo_stack_index] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1626 if not center_stack.size: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1627 stacks[tomo_stack_index]['preprocessed'] = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1628 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
 | 
1629 'preprocessed tomography stack, pick another one') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1630 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1631 break | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1632 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
 | 
1633 if find_center is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1634 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
 | 
1635 find_center = self.config['find_center'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1636 else: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1637 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
 | 
1638 if not self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1639 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
 | 
1640 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
 | 
1641 find_center.get('upper_row', None)] | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1642 if row_bounds is None: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1643 row_bounds = [0, center_stack.shape[0]] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1644 if row_bounds[0] == -1: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1645 row_bounds[0] = 0 | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1646 if row_bounds[1] == -1: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1647 row_bounds[1] = center_stack.shape[0] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1648 if not msnc.is_index_range(row_bounds, 0, center_stack.shape[0]): | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1649 msnc.illegal_value('row_bounds', row_bounds) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1650 return | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1651 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1652 # Set thetas (in degrees) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1653 theta_range = self.config['theta_range'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1654 theta_start = theta_range['start'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1655 theta_end = theta_range['end'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1656 num_theta = theta_range['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1657 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
 | 
1658 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
 | 
1659 endpoint=False) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1660 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1661 # Get non-overlapping sample row boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1662 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
 | 
1663 pixel_size = self.config['detector']['pixel_size'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1664 if pixel_size is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1665 raise ValueError('Detector pixel size unavailable') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1666 eff_pixel_size = 100.*pixel_size/zoom_perc | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1667 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
 | 
1668 if num_tomo_stacks == 1: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1669 accept = 'yes' | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1670 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
 | 
1671 accept = 'no' | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1672 print('\nSelect bounds for image reconstruction') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1673 if msnc.is_index_range(row_bounds, 0, center_stack.shape[0]): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1674 a_tmp = np.copy(center_stack[:,0,:]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1675 a_tmp_max = a_tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1676 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
 | 
1677 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
 | 
1678 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
 | 
1679 print(f'upper bound = {row_bounds[1]} (exclusive)') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1680 msnc.quickImshow(a_tmp, title=f'center stack theta={theta_start}', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1681 aspect='auto') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1682 del a_tmp | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1683 accept = pyip.inputYesNo('Accept these bounds ([y]/n)?: ', blank=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1684 if accept == 'no': | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1685 (n1, n2) = msnc.selectImageBounds(center_stack[:,0,:], 0, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1686 title=f'center stack theta={theta_start}') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1687 else: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1688 n1 = row_bounds[0] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1689 n2 = row_bounds[1] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1690 else: | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1691 logging.error('CHECK/FIX FOR GALAXY') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1692 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
 | 
1693 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
 | 
1694 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
 | 
1695 n2 = center_stack.shape[0]-n1 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1696 logging.info(f'n1 = {n1}, n2 = {n2} (n2-n1) = {(n2-n1)*eff_pixel_size:.3f} mm') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1697 if not center_stack.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1698 RuntimeError('Center stack not loaded') | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1699 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
 | 
1700 tmp = center_stack[:,0,:] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1701 tmp_max = tmp.max() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1702 tmp[n1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1703 tmp[n2-1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1704 if msnc.is_index_range(center_rows, 0, tmp.shape[0]): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1705 tmp[center_rows[0],:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1706 tmp[center_rows[1]-1,:] = tmp_max | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1707 extent = [0, tmp.shape[1], tmp.shape[0], 0] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1708 msnc.quickImshow(tmp, title=f'center stack theta={theta_start}', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1709 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
 | 
1710 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
 | 
1711 del tmp | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1712 #extent = [0, center_stack.shape[2], n2, n1] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1713 #msnc.quickImshow(center_stack[n1:n2,0,:], title=f'center stack theta={theta_start}', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1714 # 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
 | 
1715 # 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
 | 
1716 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1717 # Get cross sectional diameter in mm | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1718 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
 | 
1719 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
 | 
1720 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1721 # Determine center offset at sample row boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1722 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
 | 
1723 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1724 # Lower row center | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1725 use_row = 'no' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1726 use_center = 'no' | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1727 row = center_rows[0] | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1728 if self.test_mode or self.galaxy_flag: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1729 assert(msnc.is_int(row, n1, n2-2)) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1730 if msnc.is_int(row, n1, n2-2): | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1731 if self.test_mode or self.galaxy_flag: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1732 use_row = 'yes' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1733 else: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1734 msnc.quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', aspect='auto') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1735 use_row = pyip.inputYesNo('\nCurrent row index for lower center = ' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1736 f'{row}, use this value ([y]/n)? ', blank=True) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1737 if self.save_plots_only: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1738 msnc.clearFig(f'theta={theta_start}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1739 if use_row != 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1740 center_offset = find_center.get('lower_center_offset') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1741 if msnc.is_num(center_offset): | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1742 use_center = pyip.inputYesNo('Current lower center offset = '+ | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1743 f'{center_offset}, use this value ([y]/n)? ', blank=True) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1744 if use_center == 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1745 if use_row == 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1746 if not self.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1747 msnc.quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1748 aspect='auto') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1749 row = pyip.inputInt('\nEnter row index to find lower center '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1750 f'[[{n1}], {n2-2}]: ', min=n1, max=n2-2, blank=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1751 if row == '': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1752 row = n1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1753 if self.save_plots_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1754 msnc.clearFig(f'theta={theta_start}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1755 # center_stack order: row,theta,column | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1756 if galaxy_param: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1757 recon_pngname = galaxy_param['recon_center_low'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1758 else: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1759 recon_pngname = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1760 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
 | 
1761 eff_pixel_size, cross_sectional_dim, num_core=num_core, | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1762 recon_pngname=recon_pngname, galaxy_param=galaxy_param) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1763 logging.info(f'lower_center_offset = {center_offset:.2f} {type(center_offset)}') | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1764 print(center_offset) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1765 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1766 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1767 find_center['row_bounds'] = [n1, n2] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1768 find_center['lower_row'] = row | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1769 find_center['lower_center_offset'] = center_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1770 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1771 lower_row = row | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1772 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1773 # Upper row center | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1774 use_row = 'no' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1775 use_center = 'no' | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1776 row = center_rows[1] | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1777 if self.test_mode or self.galaxy_flag: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1778 assert(msnc.is_int(row, lower_row+1, n2-1)) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1779 if msnc.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
 | 
1780 if self.test_mode or self.galaxy_flag: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1781 use_row = 'yes' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1782 else: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1783 msnc.quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', aspect='auto') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1784 use_row = pyip.inputYesNo('\nCurrent row index for upper center = ' | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1785 f'{row}, use this value ([y]/n)? ', blank=True) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1786 if self.save_plots_only: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1787 msnc.clearFig(f'theta={theta_start}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1788 if use_row != 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1789 center_offset = find_center.get('upper_center_offset') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1790 if msnc.is_num(center_offset): | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1791 use_center = pyip.inputYesNo('Current upper center offset = '+ | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1792 f'{center_offset}, use this value ([y]/n)? ', blank=True) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1793 if use_center == 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1794 if use_row == 'no': | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1795 if not self.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1796 msnc.quickImshow(center_stack[:,0,:], title=f'theta={theta_start}', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1797 aspect='auto') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1798 row = pyip.inputInt('\nEnter row index to find upper center '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1799 f'[{lower_row+1}, [{n2-1}]]: ', min=lower_row+1, max=n2-1, blank=True) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1800 if row == '': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1801 row = n2-1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1802 if self.save_plots_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1803 msnc.clearFig(f'theta={theta_start}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1804 # center_stack order: row,theta,column | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1805 if galaxy_param: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1806 recon_pngname = galaxy_param['recon_center_upp'] | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1807 else: | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1808 recon_pngname = None | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1809 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
 | 
1810 eff_pixel_size, cross_sectional_dim, num_core=num_core, | 
| 
7
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1811 recon_pngname=recon_pngname, galaxy_param=galaxy_param) | 
| 
 
845270a96464
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit a08ed1264ea7b7c878ba96801e4b27ef621fb6be"
 
rv43 
parents: 
3 
diff
changeset
 | 
1812 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
 | 
1813 del center_stack | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1814 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1815 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1816 find_center['upper_row'] = row | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1817 find_center['upper_center_offset'] = center_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1818 find_center['completed'] = True | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1819 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1820 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1821 def checkCenters(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1822 """Check centers for the tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1823 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1824 #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
 | 
1825 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1826 logging.debug('Check centers for tomography stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1827 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
 | 
1828 if center_stack_index is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1829 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
 | 
1830 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
 | 
1831 lower_row = self.config.get('lower_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1832 if lower_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1833 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
 | 
1834 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
 | 
1835 if lower_center_offset is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1836 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
 | 
1837 upper_row = self.config.get('upper_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1838 if upper_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1839 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
 | 
1840 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
 | 
1841 if upper_center_offset is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1842 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
 | 
1843 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
 | 
1844 shift = upper_center_offset-lower_center_offset | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1845 if lower_row == 0: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1846 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
 | 
1847 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1848 lower_row -= 1 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1849 lower_center_offset -= center_slope | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1850 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1851 # stack order: stack,row,theta,column | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1852 if center_stack_index: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1853 stack1 = self.tomo_stacks[center_stack_index-1] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1854 stack2 = self.tomo_stacks[center_stack_index] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1855 if not stack1.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1856 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
 | 
1857 elif not stack2.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1858 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
 | 
1859 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1860 assert(0 <= lower_row < stack2.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1861 assert(0 <= upper_row < stack1.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1862 plane1 = stack1[upper_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1863 plane2 = stack2[lower_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1864 for i in range(-2, 3): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1865 shift_i = shift+2*i | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1866 plane1_shifted = spi.shift(plane2, [0, shift_i]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1867 msnc.quickPlot((plane1[0,:],), (plane1_shifted[0,:],), | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1868 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
 | 
1869 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
 | 
1870 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1871 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
 | 
1872 stack1 = self.tomo_stacks[center_stack_index] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1873 stack2 = self.tomo_stacks[center_stack_index+1] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1874 if not stack1.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1875 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
 | 
1876 elif not stack2.size: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1877 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
 | 
1878 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1879 assert(0 <= lower_row < stack2.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1880 assert(0 <= upper_row < stack1.shape[0]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1881 plane1 = stack1[upper_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1882 plane2 = stack2[lower_row,:] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1883 for i in range(-2, 3): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1884 shift_i = -shift+2*i | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1885 plane1_shifted = spi.shift(plane2, [0, shift_i]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1886 msnc.quickPlot((plane1[0,:],), (plane1_shifted[0,:],), | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1887 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
 | 
1888 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
 | 
1889 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1890 del plane1, plane2, plane1_shifted | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1891 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1892 # Update config file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1893 self.config = msnc.update('config.txt', 'check_centers', True, 'find_centers') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1894 | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1895 def reconstructTomoStacks(self, output_name=None, num_core=None): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1896 """Reconstruct tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1897 """ | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1898 if num_core is None: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1899 num_core = self.num_core | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1900 logging.debug('Reconstruct tomography stacks') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1901 stacks = self.config['stack_info']['stacks'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1902 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
 | 
1903 assert(len(self.tomo_stacks) == len(stacks)) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
1904 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
 | 
1905 if self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1906 assert(isinstance(output_name, str)) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1907 else: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1908 if output_name: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1909 logging.warning('Ignoring output_name in reconstructTomoStacks '+ | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1910 '(only used in Galaxy)') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1911 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1912 # Get rotation axis rows and centers | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1913 find_center = self.config['find_center'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1914 lower_row = find_center.get('lower_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1915 if lower_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1916 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
 | 
1917 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1918 lower_center_offset = find_center.get('lower_center_offset') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1919 if lower_center_offset is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1920 logging.error('Unable to read lower_center_offset from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1921 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1922 upper_row = find_center.get('upper_row') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1923 if upper_row is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1924 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
 | 
1925 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1926 upper_center_offset = find_center.get('upper_center_offset') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1927 if upper_center_offset is None: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1928 logging.error('Unable to read upper_center_offset from config') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1929 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1930 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
 | 
1931 assert(lower_row < upper_row) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1932 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
 | 
1933 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1934 # Set thetas (in radians) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1935 theta_range = self.config['theta_range'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1936 theta_start = theta_range['start'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1937 theta_end = theta_range['end'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1938 num_theta = theta_range['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1939 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
 | 
1940 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
 | 
1941 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
 | 
1942 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1943 # Reconstruct tomo stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1944 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
 | 
1945 if zoom_perc == 100: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1946 basetitle = 'recon stack full' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1947 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1948 basetitle = f'recon stack {zoom_perc}p' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1949 load_error = False | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1950 stacks = self.config['stack_info']['stacks'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1951 for i,stack in enumerate(stacks): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1952 # Check if stack can be loaded | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1953 # 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
 | 
1954 # 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
 | 
1955 index = stack['index'] | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1956 if not self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1957 available = False | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1958 if stack.get('reconstructed', False): | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1959 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
 | 
1960 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
 | 
1961 if self.tomo_stacks[i].size: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1962 self.tomo_stacks[i] = np.array([]) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1963 assert(stack.get('preprocessed', False) == True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1964 assert(stack.get('reconstructed', False) == True) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1965 continue | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1966 stack['reconstructed'] = False | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1967 if not self.tomo_stacks[i].size: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1968 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
 | 
1969 required=True) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1970 if not self.tomo_stacks[i].size: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1971 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
 | 
1972 stack[i]['preprocessed'] = False | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1973 load_error = True | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1974 continue | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1975 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
 | 
1976 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
 | 
1977 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
 | 
1978 t0 = time() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1979 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
 | 
1980 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
 | 
1981 algorithm='gridrec', run_secondary_sirt=True, secondary_iter=25) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1982 logging.info(f'Reconstruction of stack {index} took {time()-t0:.2f} seconds!') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1983 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
 | 
1984 row_slice = int(self.tomo_stacks[i].shape[0]/2) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1985 title = f'{basetitle} {index} slice{row_slice}' | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1986 msnc.quickImshow(self.tomo_recon_stacks[i][row_slice,:,:], title=title, | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1987 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
 | 
1988 save_only=self.save_plots_only) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1989 msnc.quickPlot(self.tomo_recon_stacks[i] | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1990 [row_slice,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
 | 
1991 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
 | 
1992 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
 | 
1993 save_only=self.save_plots_only) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1994 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
 | 
1995 # else: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1996 # np.savetxt(self.output_folder+f'recon_stack_{index}.txt', | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1997 # self.tomo_recon_stacks[i][row_slice,:,:], fmt='%.6e') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
1998 self.tomo_stacks[i] = np.array([]) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
1999 | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2000 # Update config and save to file | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2001 stack['reconstructed'] = True | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2002 combine_stacks = self.config.get('combine_stacks') | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2003 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
 | 
2004 combine_stacks['stacks'].remove(index) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2005 self.cf.saveFile(self.config_out) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2006 | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2007 # Save reconstructed tomography stack to file | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2008 if self.galaxy_flag: | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2009 t0 = time() | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2010 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
 | 
2011 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
 | 
2012 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
 | 
2013 np.savez(output_name, **save_stacks) | 
| 
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2014 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
 | 
2015 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2016 def combineTomoStacks(self): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2017 """Combine the reconstructed tomography stacks. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2018 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2019 # stack order: stack,row(z),x,y | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2020 logging.debug('Combine reconstructed tomography stacks') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2021 # Load any unloaded reconstructed stacks | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2022 stack_info = self.config['stack_info'] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2023 stacks = stack_info['stacks'] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2024 for i,stack in enumerate(stacks): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2025 available = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2026 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
 | 
2027 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
 | 
2028 stack['index'], required=True) | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2029 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
 | 
2030 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
 | 
2031 stack['reconstructed'] = False | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2032 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2033 if i: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2034 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
 | 
2035 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
 | 
2036 logging.error('Incompatible reconstructed tomography stack dimensions') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2037 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2038 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2039 # Get center stack boundaries | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2040 row_bounds = self.config['find_center']['row_bounds'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2041 if not msnc.is_index_range(row_bounds, 0, self.tomo_recon_stacks[0].shape[0]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2042 msnc.illegal_value('row_bounds', row_bounds, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2043 return | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2044 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2045 # Selecting x bounds (in yz-plane) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2046 tomosum = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2047 #RV FIX := | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2048 [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
 | 
2049 self.tomo_recon_stacks] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2050 combine_stacks = self.config.get('combine_stacks') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2051 if combine_stacks and 'x_bounds' in combine_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2052 x_bounds = combine_stacks['x_bounds'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2053 if not msnc.is_index_range(x_bounds, 0, self.tomo_recon_stacks[0].shape[1]): | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2054 msnc.illegal_value('x_bounds', x_bounds, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2055 elif not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2056 msnc.quickPlot(tomosum, title='recon stack sum yz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2057 if pyip.inputYesNo('\nCurrent image x-bounds: '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2058 f'[{x_bounds[0]}, {x_bounds[1]}], use these values ([y]/n)? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2059 blank=True) == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2060 if pyip.inputYesNo( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2061 'Do you want to change the image x-bounds ([y]/n)? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2062 blank=True) == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2063 x_bounds = [0, self.tomo_recon_stacks[0].shape[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2064 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2065 x_bounds = msnc.selectArrayBounds(tomosum, title='recon stack sum yz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2066 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2067 msnc.quickPlot(tomosum, title='recon stack sum yz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2068 if pyip.inputYesNo('\nDo you want to change the image x-bounds (y/n)? ') == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2069 x_bounds = [0, self.tomo_recon_stacks[0].shape[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2070 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2071 x_bounds = msnc.selectArrayBounds(tomosum, title='recon stack sum yz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2072 if False and self.test_mode: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2073 np.savetxt(f'{self.output_folder}/recon_stack_sum_yz.txt', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2074 tomosum[x_bounds[0]:x_bounds[1]], fmt='%.6e') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2075 if self.save_plots_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2076 msnc.clearFig('recon stack sum yz') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2077 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2078 # Selecting y bounds (in xz-plane) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2079 tomosum = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2080 #RV FIX := | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2081 [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
 | 
2082 self.tomo_recon_stacks] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2083 if combine_stacks and 'y_bounds' in combine_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2084 y_bounds = combine_stacks['y_bounds'] | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2085 if not msnc.is_index_range(y_bounds, 0, self.tomo_recon_stacks[0].shape[1]): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2086 msnc.illegal_value('y_bounds', y_bounds, 'config file') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2087 elif not self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2088 msnc.quickPlot(tomosum, title='recon stack sum xz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2089 if pyip.inputYesNo('\nCurrent image y-bounds: '+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2090 f'[{y_bounds[0]}, {y_bounds[1]}], use these values ([y]/n)? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2091 blank=True) == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2092 if pyip.inputYesNo( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2093 'Do you want to change the image y-bounds ([y]/n)? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2094 blank=True) == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2095 y_bounds = [0, self.tomo_recon_stacks[0].shape[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2096 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2097 y_bounds = msnc.selectArrayBounds(tomosum, title='recon stack sum yz') | 
| 
 
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 msnc.quickPlot(tomosum, title='recon stack sum xz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2100 if pyip.inputYesNo('\nDo you want to change the image y-bounds (y/n)? ') == 'no': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2101 y_bounds = [0, self.tomo_recon_stacks[0].shape[1]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2102 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2103 y_bounds = msnc.selectArrayBounds(tomosum, title='recon stack sum xz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2104 if False and self.test_mode: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2105 np.savetxt(f'{self.output_folder}/recon_stack_sum_xz.txt', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2106 tomosum[y_bounds[0]:y_bounds[1]], fmt='%.6e') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2107 if self.save_plots_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2108 msnc.clearFig('recon stack sum xz') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2109 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2110 # Combine reconstructed tomography stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2111 logging.info(f'Combining reconstructed stacks ...') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2112 t0 = time() | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2113 num_tomo_stacks = stack_info['num'] | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2114 if num_tomo_stacks == 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2115 low_bound = row_bounds[0] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2116 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2117 low_bound = 0 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2118 tomo_recon_combined = self.tomo_recon_stacks[0][low_bound:row_bounds[1]:, | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2119 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
 | 
2120 if num_tomo_stacks > 2: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2121 tomo_recon_combined = np.concatenate([tomo_recon_combined]+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2122 [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
 | 
2123 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
 | 
2124 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
 | 
2125 if num_tomo_stacks > 1: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2126 tomo_recon_combined = np.concatenate([tomo_recon_combined]+ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2127 [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
 | 
2128 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
 | 
2129 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
 | 
2130 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
 | 
2131 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2132 # Wrap up if in test_mode | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2133 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
 | 
2134 if self.test_mode: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2135 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
 | 
2136 filename = 'recon combined sum xy' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2137 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
 | 
2138 filename += ' fullres.dat' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2139 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2140 filename += f' {zoom_perc}p.dat' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2141 msnc.quickPlot(tomosum, title='recon combined sum xy', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2142 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
 | 
2143 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2144 if False: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2145 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
 | 
2146 tomosum, fmt='%.6e') | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2147 np.savetxt(f'{self.output_folder}/recon_combined.txt', | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2148 tomo_recon_combined[int(tomo_recon_combined.shape[0]/2),:,:], fmt='%.6e') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2149 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2150 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2151 if combine_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2152 combine_stacks['x_bounds'] = x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2153 combine_stacks['y_bounds'] = y_bounds | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2154 combine_stacks['stacks'] = combined_stacks | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2155 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2156 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
 | 
2157 'stacks' : combined_stacks} | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2158 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2159 return | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2160 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2161 # Selecting z bounds (in xy-plane) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2162 msnc.quickPlot(tomosum, title='recon combined sum xy') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2163 if pyip.inputYesNo( | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2164 '\nDo you want to change the image z-bounds (y/[n])? ', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2165 blank=True) != 'yes': | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2166 z_bounds = [0, tomo_recon_combined.shape[0]] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2167 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2168 z_bounds = msnc.selectArrayBounds(tomosum, title='recon combined sum xy') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2169 if z_bounds[0] != 0 or z_bounds[1] != tomo_recon_combined.shape[0]: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2170 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
 | 
2171 logging.info(f'tomo_recon_combined.shape = {tomo_recon_combined.shape}') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2172 if self.save_plots_only: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2173 msnc.clearFig('recon combined sum xy') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2174 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2175 # Plot center slices | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2176 msnc.quickImshow(tomo_recon_combined[int(tomo_recon_combined.shape[0]/2),:,:], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2177 title=f'recon combined xslice{int(tomo_recon_combined.shape[0]/2)}', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2178 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
 | 
2179 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2180 msnc.quickImshow(tomo_recon_combined[:,int(tomo_recon_combined.shape[1]/2),:], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2181 title=f'recon combined yslice{int(tomo_recon_combined.shape[1]/2)}', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2182 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
 | 
2183 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2184 msnc.quickImshow(tomo_recon_combined[:,:,int(tomo_recon_combined.shape[2]/2)], | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2185 title=f'recon combined zslice{int(tomo_recon_combined.shape[2]/2)}', | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2186 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
 | 
2187 save_only=self.save_plots_only) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2188 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2189 # Save combined reconstructed tomo stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2190 base_name = 'recon combined' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2191 for stack in stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2192 base_name += f' {stack["index"]}' | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2193 self._saveTomo(base_name, tomo_recon_combined) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2194 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2195 # Update config and save to file | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2196 if combine_stacks: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2197 combine_stacks['x_bounds'] = x_bounds | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2198 combine_stacks['y_bounds'] = y_bounds | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2199 combine_stacks['z_bounds'] = z_bounds | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2200 combine_stacks['stacks'] = combined_stacks | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2201 else: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2202 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
 | 
2203 'z_bounds' : z_bounds, 'stacks' : combined_stacks} | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2204 self.cf.saveFile(self.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2205 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2206 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
 | 
2207 test_mode=False, num_core=-1): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2208 """Run a tomography analysis. | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2209 """ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2210 # Instantiate Tomo object | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2211 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
 | 
2212 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
 | 
2213 if not tomo.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2214 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
 | 
2215 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2216 # Preprocess the image files | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2217 assert(tomo.config['stack_info']) | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2218 num_tomo_stacks = tomo.config['stack_info']['num'] | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2219 assert(num_tomo_stacks == len(tomo.tomo_stacks)) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2220 preprocessed_stacks = [] | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2221 if not tomo.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2222 preprocess = tomo.config.get('preprocess', None) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2223 if preprocess: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2224 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
 | 
2225 if stack.get('preprocessed', False)] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2226 if len(preprocessed_stacks) != num_tomo_stacks: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2227 tomo.genTomoStacks() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2228 if not tomo.is_valid: | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2229 IOError('Unable to load all required image files.') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2230 tomo.cf.saveFile(tomo.config_out) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2231 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2232 # Find centers | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2233 find_center = tomo.config.get('find_center') | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2234 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
 | 
2235 tomo.findCenters() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2236 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2237 # Check centers | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2238 #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
 | 
2239 # tomo.checkCenters() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2240 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2241 # Reconstruct tomography stacks | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2242 assert(tomo.config['stack_info']['stacks']) | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2243 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
 | 
2244 if stack.get('reconstructed', False)] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2245 if len(reconstructed_stacks) != num_tomo_stacks: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2246 tomo.reconstructTomoStacks() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2247 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2248 # Combine reconstructed tomography stacks | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2249 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
 | 
2250 if stack.get('reconstructed', False)] | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2251 combine_stacks = tomo.config.get('combine_stacks') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2252 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
 | 
2253 combine_stacks.get('stacks') != reconstructed_stacks): | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2254 tomo.combineTomoStacks() | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2255 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2256 #%%============================================================================ | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2257 if __name__ == '__main__': | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2258 | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2259 # Parse command line arguments | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2260 parser = argparse.ArgumentParser( | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2261 description='Tomography reconstruction') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2262 parser.add_argument('-c', '--config', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2263 default=None, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2264 help='Input config') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2265 parser.add_argument('-o', '--output_folder', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2266 default='.', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2267 help='Output folder') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2268 parser.add_argument('-l', '--log_level', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2269 default='INFO', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2270 help='Log level') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2271 parser.add_argument('-t', '--test_mode', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2272 action='store_true', | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2273 default=False, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2274 help='Test mode flag') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2275 parser.add_argument('--num_core', | 
| 
3
 
f9c52762c32c
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7dce44d576e4149f31bdc2ee4dce0bb6962badb6"
 
rv43 
parents: 
2 
diff
changeset
 | 
2276 type=int, | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2277 default=-1, | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2278 help='Number of cores') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2279 args = parser.parse_args() | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2280 | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2281 if args.config is None: | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2282 if os.path.isfile('config.yaml'): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2283 args.config = 'config.yaml' | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2284 else: | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2285 args.config = 'config.txt' | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2286 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2287 # Set basic log configuration | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2288 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
 | 
2289 if not args.test_mode: | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2290 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
 | 
2291 if not isinstance(level, int): | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2292 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
 | 
2293 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
 | 
2294 handlers=[logging.StreamHandler()]) | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2295 | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2296 logging.debug(f'config = {args.config}') | 
| 
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2297 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
 | 
2298 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
 | 
2299 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
 | 
2300 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
 | 
2301 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2302 # Run tomography analysis | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2303 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
 | 
2304 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
 | 
2305 | 
| 
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2306 #%%============================================================================ | 
| 
1
 
e4778148df6b
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 7bc44bd6a5a7d503fc4d6f6fb67b3a04a631430b"
 
rv43 
parents: 
0 
diff
changeset
 | 
2307 # input('Press any key to continue') | 
| 
0
 
cb1b0d757704
"planemo upload for repository https://github.com/rolfverberg/galaxytools commit 2da52c7db6def807073a1d437a00e0e2a8e7e72e"
 
rv43 
parents:  
diff
changeset
 | 
2308 #%%============================================================================ | 
