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