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