Mercurial > repos > kls286 > chap_test_20230328
annotate build/lib/CHAP/processor.py @ 0:cbbe42422d56 draft
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
| author | kls286 | 
|---|---|
| date | Tue, 28 Mar 2023 15:07:30 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 
0
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
2 #-*- coding: utf-8 -*- | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
3 #pylint: disable= | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
4 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
5 File : processor.py | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
6 Author : Valentin Kuznetsov <vkuznet AT gmail dot com> | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
7 Description: Processor module | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
8 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
9 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
10 # system modules | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
11 import argparse | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
12 import json | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
13 import logging | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
14 import sys | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
15 from time import time | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
16 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
17 # local modules | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
18 # from pipeline import PipelineObject | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
19 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
20 class Processor(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
21 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
22 Processor represent generic processor | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
23 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
24 def __init__(self): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
25 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
26 Processor constructor | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
27 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
28 self.__name__ = self.__class__.__name__ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
29 self.logger = logging.getLogger(self.__name__) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
30 self.logger.propagate = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
31 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
32 def process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
33 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
34 process data API | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
35 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
36 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
37 t0 = time() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
38 self.logger.info(f'Executing "process" with type(data)={type(data)}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
39 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
40 data = self._process(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
41 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
42 self.logger.info(f'Finished "process" in {time()-t0:.3f} seconds\n') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
43 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
44 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
45 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
46 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
47 # If needed, extract data from a returned value of Reader.read | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
48 if isinstance(data, list): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
49 if all([isinstance(d,dict) for d in data]): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
50 data = data[0]['data'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
51 # process operation is a simple print function | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
52 data += "process part\n" | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
53 # and we return data back to pipeline | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
54 return data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
55 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
56 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
57 class TFaaSImageProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
58 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
59 A Processor to get predictions from TFaaS inference server. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
60 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
61 def process(self, data, url, model, verbose=False): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
62 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
63 process data API | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
64 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
65 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
66 t0 = time() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
67 self.logger.info(f'Executing "process" with url {url} model {model}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
68 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
69 data = self._process(data, url, model, verbose) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
70 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
71 self.logger.info(f'Finished "process" in {time()-t0:.3f} seconds\n') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
72 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
73 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
74 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
75 def _process(self, data, url, model, verbose): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
76 '''Print and return the input data. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
77 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
78 :param data: Input image data, either file name or actual image data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
79 :type data: object | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
80 :return: `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
81 :rtype: object | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
82 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
83 from MLaaS.tfaas_client import predictImage | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
84 from pathlib import Path | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
85 self.logger.info(f"input data {type(data)}") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
86 if isinstance(data, str) and Path(data).is_file(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
87 imgFile = data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
88 data = predictImage(url, imgFile, model, verbose) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
89 else: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
90 rdict = data[0] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
91 import requests | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
92 img = rdict['data'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
93 session = requests.Session() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
94 rurl = url + '/predict/image' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
95 payload = dict(model=model) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
96 files = dict(image=img) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
97 self.logger.info(f"HTTP request {rurl} with image file and {payload} payload") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
98 req = session.post(rurl, files=files, data=payload ) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
99 data = req.content | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
100 data = data.decode("utf-8").replace('\n', '') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
101 self.logger.info(f"HTTP response {data}") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
102 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
103 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
104 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
105 class URLResponseProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
106 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
107 '''Take data returned from URLReader.read and return a decoded version of | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
108 the content. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
109 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
110 :param data: input data (output of URLReader.read) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
111 :type data: list[dict] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
112 :return: decoded data contents | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
113 :rtype: object | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
114 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
115 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
116 data = data[0] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
117 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
118 content = data['data'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
119 encoding = data['encoding'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
120 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
121 self.logger.debug(f'Decoding content of type {type(content)} with {encoding}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
122 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
123 try: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
124 content = content.decode(encoding) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
125 except: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
126 self.logger.warning(f'Failed to decode content of type {type(content)} with {encoding}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
127 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
128 return(content) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
129 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
130 class PrintProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
131 '''A Processor to simply print the input data to stdout and return the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
132 original input data, unchanged in any way. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
133 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
134 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
135 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
136 '''Print and return the input data. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
137 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
138 :param data: Input data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
139 :type data: object | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
140 :return: `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
141 :rtype: object | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
142 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
143 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
144 print(f'{self.__name__} data :') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
145 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
146 if callable(getattr(data, '_str_tree', None)): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
147 # If data is likely an NXobject, print its tree representation | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
148 # (since NXobjects' str representations are just their nxname -- not | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
149 # very helpful). | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
150 print(data._str_tree(attrs=True, recursive=True)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
151 else: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
152 print(str(data)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
153 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
154 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
155 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
156 class NexusToNumpyProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
157 '''A class to convert the default plottable data in an `NXobject` into an | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
158 `numpy.ndarray`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
159 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
160 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
161 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
162 '''Return the default plottable data signal in `data` as an | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
163 `numpy.ndarray`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
164 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
165 :param data: input NeXus structure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
166 :type data: nexusformat.nexus.tree.NXobject | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
167 :raises ValueError: if `data` has no default plottable data signal | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
168 :return: default plottable data signal in `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
169 :rtype: numpy.ndarray | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
170 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
171 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
172 default_data = data.plottable_data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
173 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
174 if default_data is None: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
175 default_data_path = data.attrs['default'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
176 default_data = data.get(default_data_path) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
177 if default_data is None: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
178 raise(ValueError(f'The structure of {data} contains no default data')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
179 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
180 default_signal = default_data.attrs.get('signal') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
181 if default_signal is None: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
182 raise(ValueError(f'The signal of {default_data} is unknown')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
183 default_signal = default_signal.nxdata | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
184 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
185 np_data = default_data[default_signal].nxdata | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
186 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
187 return(np_data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
188 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
189 class NexusToXarrayProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
190 '''A class to convert the default plottable data in an `NXobject` into an | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
191 `xarray.DataArray`.''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
192 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
193 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
194 '''Return the default plottable data signal in `data` as an | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
195 `xarray.DataArray`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
196 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
197 :param data: input NeXus structure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
198 :type data: nexusformat.nexus.tree.NXobject | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
199 :raises ValueError: if metadata for `xarray` is absen from `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
200 :return: default plottable data signal in `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
201 :rtype: xarray.DataArray | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
202 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
203 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
204 from xarray import DataArray | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
205 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
206 default_data = data.plottable_data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
207 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
208 if default_data is None: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
209 default_data_path = data.attrs['default'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
210 default_data = data.get(default_data_path) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
211 if default_data is None: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
212 raise(ValueError(f'The structure of {data} contains no default data')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
213 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
214 default_signal = default_data.attrs.get('signal') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
215 if default_signal is None: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
216 raise(ValueError(f'The signal of {default_data} is unknown')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
217 default_signal = default_signal.nxdata | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
218 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
219 signal_data = default_data[default_signal].nxdata | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
220 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
221 axes = default_data.attrs['axes'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
222 coords = {} | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
223 for axis_name in axes: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
224 axis = default_data[axis_name] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
225 coords[axis_name] = (axis_name, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
226 axis.nxdata, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
227 axis.attrs) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
228 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
229 dims = tuple(axes) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
230 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
231 name = default_signal | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
232 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
233 attrs = default_data[default_signal].attrs | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
234 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
235 return(DataArray(data=signal_data, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
236 coords=coords, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
237 dims=dims, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
238 name=name, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
239 attrs=attrs)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
240 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
241 class XarrayToNexusProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
242 '''A class to convert the data in an `xarray` structure to an | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
243 `nexusformat.nexus.NXdata`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
244 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
245 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
246 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
247 '''Return `data` represented as an `nexusformat.nexus.NXdata`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
248 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
249 :param data: The input `xarray` structure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
250 :type data: typing.Union[xarray.DataArray, xarray.Dataset] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
251 :return: The data and metadata in `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
252 :rtype: nexusformat.nexus.NXdata | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
253 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
254 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
255 from nexusformat.nexus import NXdata, NXfield | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
256 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
257 signal = NXfield(value=data.data, name=data.name, attrs=data.attrs) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
258 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
259 axes = [] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
260 for name, coord in data.coords.items(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
261 axes.append(NXfield(value=coord.data, name=name, attrs=coord.attrs)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
262 axes = tuple(axes) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
263 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
264 return(NXdata(signal=signal, axes=axes)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
265 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
266 class XarrayToNumpyProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
267 '''A class to convert the data in an `xarray.DataArray` structure to an | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
268 `numpy.ndarray`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
269 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
270 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
271 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
272 '''Return just the signal values contained in `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
273 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
274 :param data: The input `xarray.DataArray` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
275 :type data: xarray.DataArray | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
276 :return: The data in `data` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
277 :rtype: numpy.ndarray | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
278 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
279 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
280 return(data.data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
281 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
282 class MapProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
283 '''Class representing a process that takes a map configuration and returns a | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
284 `nexusformat.nexus.NXentry` representing that map's metadata and any | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
285 scalar-valued raw data requseted by the supplied map configuration. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
286 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
287 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
288 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
289 '''Process the output of a `Reader` that contains a map configuration and | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
290 return a `nexusformat.nexus.NXentry` representing the map. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
291 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
292 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
293 value `'MapConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
294 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
295 :return: Map data & metadata (SPEC only, no detector) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
296 :rtype: nexusformat.nexus.NXentry | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
297 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
298 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
299 map_config = self.get_map_config(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
300 nxentry = self.__class__.get_nxentry(map_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
301 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
302 return(nxentry) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
303 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
304 def get_map_config(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
305 '''Get an instance of `MapConfig` from a returned value of `Reader.read` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
306 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
307 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
308 value `'MapConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
309 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
310 :raises Exception: If a valid `MapConfig` cannot be constructed from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
311 :return: a valid instance of `MapConfig` with field values taken from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
312 :rtype: MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
313 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
314 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
315 from CHAP.models.map import MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
316 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
317 map_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
318 if isinstance(data, list): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
319 for item in data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
320 if isinstance(item, dict): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
321 if item.get('schema') == 'MapConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
322 map_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
323 break | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
324 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
325 if not map_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
326 raise(ValueError('No map configuration found')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
327 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
328 return(MapConfig(**map_config)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
329 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
330 @staticmethod | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
331 def get_nxentry(map_config): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
332 '''Use a `MapConfig` to construct a `nexusformat.nexus.NXentry` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
333 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
334 :param map_config: a valid map configuration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
335 :type map_config: MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
336 :return: the map's data and metadata contained in a NeXus structure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
337 :rtype: nexusformat.nexus.NXentry | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
338 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
339 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
340 from nexusformat.nexus import (NXcollection, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
341 NXdata, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
342 NXentry, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
343 NXfield, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
344 NXsample) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
345 import numpy as np | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
346 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
347 nxentry = NXentry(name=map_config.title) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
348 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
349 nxentry.map_config = json.dumps(map_config.dict()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
350 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
351 nxentry[map_config.sample.name] = NXsample(**map_config.sample.dict()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
352 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
353 nxentry.attrs['station'] = map_config.station | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
354 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
355 nxentry.spec_scans = NXcollection() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
356 for scans in map_config.spec_scans: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
357 nxentry.spec_scans[scans.scanparsers[0].scan_name] = \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
358 NXfield(value=scans.scan_numbers, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
359 dtype='int8', | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
360 attrs={'spec_file':str(scans.spec_file)}) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
361 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
362 nxentry.data = NXdata() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
363 nxentry.data.attrs['axes'] = map_config.dims | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
364 for i,dim in enumerate(map_config.independent_dimensions[::-1]): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
365 nxentry.data[dim.label] = NXfield(value=map_config.coords[dim.label], | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
366 units=dim.units, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
367 attrs={'long_name': f'{dim.label} ({dim.units})', | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
368 'data_type': dim.data_type, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
369 'local_name': dim.name}) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
370 nxentry.data.attrs[f'{dim.label}_indices'] = i | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
371 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
372 signal = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
373 auxilliary_signals = [] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
374 for data in map_config.all_scalar_data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
375 nxentry.data[data.label] = NXfield(value=np.empty(map_config.shape), | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
376 units=data.units, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
377 attrs={'long_name': f'{data.label} ({data.units})', | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
378 'data_type': data.data_type, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
379 'local_name': data.name}) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
380 if not signal: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
381 signal = data.label | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
382 else: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
383 auxilliary_signals.append(data.label) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
384 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
385 if signal: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
386 nxentry.data.attrs['signal'] = signal | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
387 nxentry.data.attrs['auxilliary_signals'] = auxilliary_signals | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
388 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
389 for scans in map_config.spec_scans: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
390 for scan_number in scans.scan_numbers: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
391 scanparser = scans.get_scanparser(scan_number) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
392 for scan_step_index in range(scanparser.spec_scan_npts): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
393 map_index = scans.get_index(scan_number, scan_step_index, map_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
394 for data in map_config.all_scalar_data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
395 nxentry.data[data.label][map_index] = data.get_value(scans, scan_number, scan_step_index) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
396 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
397 return(nxentry) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
398 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
399 class IntegrationProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
400 '''Class for integrating 2D detector data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
401 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
402 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
403 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
404 '''Integrate the input data with the integration method and keyword | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
405 arguments supplied and return the results. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
406 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
407 :param data: input data, including raw data, integration method, and | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
408 keyword args for the integration method. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
409 :type data: tuple[typing.Union[numpy.ndarray, list[numpy.ndarray]], | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
410 callable, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
411 dict] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
412 :param integration_method: the method of a | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
413 `pyFAI.azimuthalIntegrator.AzimuthalIntegrator` or | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
414 `pyFAI.multi_geometry.MultiGeometry` that returns the desired | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
415 integration results. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
416 :return: integrated raw data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
417 :rtype: pyFAI.containers.IntegrateResult | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
418 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
419 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
420 detector_data, integration_method, integration_kwargs = data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
421 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
422 return(integration_method(detector_data, **integration_kwargs)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
423 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
424 class IntegrateMapProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
425 '''Class representing a process that takes a map and integration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
426 configuration and returns a `nexusformat.nexus.NXprocess` containing a map of | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
427 the integrated detector data requested. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
428 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
429 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
430 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
431 '''Process the output of a `Reader` that contains a map and integration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
432 configuration and return a `nexusformat.nexus.NXprocess` containing a map | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
433 of the integrated detector data requested | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
434 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
435 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
436 value `'MapConfig'` for the `'schema'` key, and at least one item has | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
437 the value `'IntegrationConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
438 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
439 :return: integrated data and process metadata | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
440 :rtype: nexusformat.nexus.NXprocess | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
441 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
442 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
443 map_config, integration_config = self.get_configs(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
444 nxprocess = self.get_nxprocess(map_config, integration_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
445 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
446 return(nxprocess) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
447 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
448 def get_configs(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
449 '''Return valid instances of `MapConfig` and `IntegrationConfig` from the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
450 input supplied by `MultipleReader`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
451 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
452 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
453 value `'MapConfig'` for the `'schema'` key, and at least one item has | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
454 the value `'IntegrationConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
455 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
456 :raises ValueError: if `data` cannot be parsed into map and integration configurations. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
457 :return: valid map and integration configuration objects. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
458 :rtype: tuple[MapConfig, IntegrationConfig] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
459 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
460 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
461 self.logger.debug('Getting configuration objects') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
462 t0 = time() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
463 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
464 from CHAP.models.map import MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
465 from CHAP.models.integration import IntegrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
466 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
467 map_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
468 integration_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
469 if isinstance(data, list): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
470 for item in data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
471 if isinstance(item, dict): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
472 schema = item.get('schema') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
473 if schema == 'MapConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
474 map_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
475 elif schema == 'IntegrationConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
476 integration_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
477 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
478 if not map_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
479 raise(ValueError('No map configuration found')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
480 if not integration_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
481 raise(ValueError('No integration configuration found')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
482 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
483 map_config = MapConfig(**map_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
484 integration_config = IntegrationConfig(**integration_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
485 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
486 self.logger.debug(f'Got configuration objects in {time()-t0:.3f} seconds') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
487 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
488 return(map_config, integration_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
489 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
490 def get_nxprocess(self, map_config, integration_config): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
491 '''Use a `MapConfig` and `IntegrationConfig` to construct a | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
492 `nexusformat.nexus.NXprocess` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
493 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
494 :param map_config: a valid map configuration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
495 :type map_config: MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
496 :param integration_config: a valid integration configuration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
497 :type integration_config" IntegrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
498 :return: the integrated detector data and metadata contained in a NeXus | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
499 structure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
500 :rtype: nexusformat.nexus.NXprocess | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
501 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
502 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
503 self.logger.debug('Constructing NXprocess') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
504 t0 = time() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
505 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
506 from nexusformat.nexus import (NXdata, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
507 NXdetector, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
508 NXfield, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
509 NXprocess) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
510 import numpy as np | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
511 import pyFAI | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
512 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
513 nxprocess = NXprocess(name=integration_config.title) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
514 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
515 nxprocess.map_config = json.dumps(map_config.dict()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
516 nxprocess.integration_config = json.dumps(integration_config.dict()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
517 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
518 nxprocess.program = 'pyFAI' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
519 nxprocess.version = pyFAI.version | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
520 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
521 for k,v in integration_config.dict().items(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
522 if k == 'detectors': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
523 continue | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
524 nxprocess.attrs[k] = v | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
525 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
526 for detector in integration_config.detectors: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
527 nxprocess[detector.prefix] = NXdetector() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
528 nxprocess[detector.prefix].local_name = detector.prefix | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
529 nxprocess[detector.prefix].distance = detector.azimuthal_integrator.dist | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
530 nxprocess[detector.prefix].distance.attrs['units'] = 'm' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
531 nxprocess[detector.prefix].calibration_wavelength = detector.azimuthal_integrator.wavelength | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
532 nxprocess[detector.prefix].calibration_wavelength.attrs['units'] = 'm' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
533 nxprocess[detector.prefix].attrs['poni_file'] = str(detector.poni_file) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
534 nxprocess[detector.prefix].attrs['mask_file'] = str(detector.mask_file) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
535 nxprocess[detector.prefix].raw_data_files = np.full(map_config.shape, '', dtype='|S256') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
536 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
537 nxprocess.data = NXdata() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
538 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
539 nxprocess.data.attrs['axes'] = (*map_config.dims, *integration_config.integrated_data_dims) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
540 for i,dim in enumerate(map_config.independent_dimensions[::-1]): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
541 nxprocess.data[dim.label] = NXfield(value=map_config.coords[dim.label], | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
542 units=dim.units, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
543 attrs={'long_name': f'{dim.label} ({dim.units})', | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
544 'data_type': dim.data_type, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
545 'local_name': dim.name}) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
546 nxprocess.data.attrs[f'{dim.label}_indices'] = i | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
547 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
548 for i,(coord_name,coord_values) in enumerate(integration_config.integrated_data_coordinates.items()): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
549 if coord_name == 'radial': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
550 type_ = pyFAI.units.RADIAL_UNITS | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
551 elif coord_name == 'azimuthal': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
552 type_ = pyFAI.units.AZIMUTHAL_UNITS | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
553 coord_units = pyFAI.units.to_unit(getattr(integration_config, f'{coord_name}_units'), type_=type_) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
554 nxprocess.data[coord_units.name] = coord_values | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
555 nxprocess.data.attrs[f'{coord_units.name}_indices'] = i+len(map_config.coords) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
556 nxprocess.data[coord_units.name].units = coord_units.unit_symbol | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
557 nxprocess.data[coord_units.name].attrs['long_name'] = coord_units.label | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
558 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
559 nxprocess.data.attrs['signal'] = 'I' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
560 nxprocess.data.I = NXfield(value=np.empty((*tuple([len(coord_values) for coord_name,coord_values in map_config.coords.items()][::-1]), *integration_config.integrated_data_shape)), | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
561 units='a.u', | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
562 attrs={'long_name':'Intensity (a.u)'}) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
563 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
564 integrator = integration_config.get_multi_geometry_integrator() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
565 if integration_config.integration_type == 'azimuthal': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
566 integration_method = integrator.integrate1d | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
567 integration_kwargs = { | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
568 'lst_mask': [detector.mask_array for detector in integration_config.detectors], | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
569 'npt': integration_config.radial_npt | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
570 } | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
571 elif integration_config.integration_type == 'cake': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
572 integration_method = integrator.integrate2d | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
573 integration_kwargs = { | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
574 'lst_mask': [detector.mask_array for detector in integration_config.detectors], | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
575 'npt_rad': integration_config.radial_npt, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
576 'npt_azim': integration_config.azimuthal_npt, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
577 'method': 'bbox' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
578 } | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
579 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
580 integration_processor = IntegrationProcessor() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
581 integration_processor.logger.setLevel(self.logger.getEffectiveLevel()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
582 integration_processor.logger.addHandler(self.logger.handlers[0]) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
583 lst_args = [] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
584 for scans in map_config.spec_scans: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
585 for scan_number in scans.scan_numbers: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
586 scanparser = scans.get_scanparser(scan_number) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
587 for scan_step_index in range(scanparser.spec_scan_npts): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
588 map_index = scans.get_index(scan_number, scan_step_index, map_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
589 detector_data = scans.get_detector_data(integration_config.detectors, scan_number, scan_step_index) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
590 result = integration_processor.process((detector_data, integration_method, integration_kwargs)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
591 nxprocess.data.I[map_index] = result.intensity | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
592 for detector in integration_config.detectors: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
593 nxprocess[detector.prefix].raw_data_files[map_index] = scanparser.get_detector_data_file(detector.prefix, scan_step_index) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
594 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
595 self.logger.debug(f'Constructed NXprocess in {time()-t0:.3f} seconds') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
596 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
597 return(nxprocess) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
598 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
599 class MCACeriaCalibrationProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
600 '''Class representing the procedure to use a CeO2 scan to obtain tuned values | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
601 for the bragg diffraction angle and linear correction parameters for MCA | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
602 channel energies for an EDD experimental setup. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
603 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
604 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
605 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
606 '''Return tuned values for 2&theta and linear correction parameters for | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
607 the MCA channel energies. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
608 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
609 :param data: input configuration for the raw data & tuning procedure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
610 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
611 :return: original configuration dictionary with tuned values added | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
612 :rtype: dict[str,float] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
613 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
614 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
615 calibration_config = self.get_config(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
616 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
617 tth, slope, intercept = self.calibrate(calibration_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
618 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
619 calibration_config.tth_calibrated = tth | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
620 calibration_config.slope_calibrated = slope | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
621 calibration_config.intercept_calibrated = intercept | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
622 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
623 return(calibration_config.dict()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
624 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
625 def get_config(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
626 '''Get an instance of the configuration object needed by this | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
627 `Processor` from a returned value of `Reader.read` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
628 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
629 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
630 value `'MCACeriaCalibrationConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
631 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
632 :raises Exception: If a valid config object cannot be constructed from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
633 :return: a valid instance of a configuration object with field values | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
634 taken from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
635 :rtype: MCACeriaCalibrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
636 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
637 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
638 from CHAP.models.edd import MCACeriaCalibrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
639 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
640 calibration_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
641 if isinstance(data, list): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
642 for item in data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
643 if isinstance(item, dict): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
644 if item.get('schema') == 'MCACeriaCalibrationConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
645 calibration_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
646 break | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
647 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
648 if not calibration_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
649 raise(ValueError('No MCA ceria calibration configuration found in input data')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
650 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
651 return(MCACeriaCalibrationConfig(**calibration_config)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
652 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
653 def calibrate(self, calibration_config): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
654 '''Iteratively calibrate 2&theta by fitting selected peaks of an MCA | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
655 spectrum until the computed strain is sufficiently small. Use the fitted | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
656 peak locations to determine linear correction parameters for the MCA's | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
657 channel energies. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
658 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
659 :param calibration_config: object configuring the CeO2 calibration procedure | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
660 :type calibration_config: MCACeriaCalibrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
661 :return: calibrated values of 2&theta and linear correction parameters | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
662 for MCA channel energies : tth, slope, intercept | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
663 :rtype: float, float, float | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
664 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
665 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
666 from msnctools.fit import Fit, FitMultipeak | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
667 import numpy as np | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
668 from scipy.constants import physical_constants | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
669 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
670 hc = physical_constants['Planck constant in eV/Hz'][0] * \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
671 physical_constants['speed of light in vacuum'][0] * \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
672 1e7 # We'll work in keV and A, not eV and m. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
673 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
674 # Collect raw MCA data of interest | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
675 mca_data = calibration_config.mca_data() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
676 mca_bin_energies = np.arange(0, calibration_config.num_bins) * \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
677 (calibration_config.max_energy_kev / calibration_config.num_bins) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
678 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
679 # Mask out the corrected MCA data for fitting | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
680 mca_mask = calibration_config.mca_mask() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
681 fit_mca_energies = mca_bin_energies[mca_mask] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
682 fit_mca_intensities = mca_data[mca_mask] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
683 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
684 # Correct raw MCA data for variable flux at different energies | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
685 flux_correct = calibration_config.flux_correction_interpolation_function() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
686 mca_intensity_weights = flux_correct(fit_mca_energies) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
687 fit_mca_intensities = fit_mca_intensities / mca_intensity_weights | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
688 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
689 # Get the HKLs and lattice spacings that will be used for fitting | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
690 tth = calibration_config.tth_initial_guess | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
691 fit_hkls, fit_ds = calibration_config.fit_ds() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
692 c_1 = fit_hkls[:,0]**2 + fit_hkls[:,1]**2 + fit_hkls[:,2]**2 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
693 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
694 for iter_i in range(calibration_config.max_iter): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
695 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
696 ### Perform the uniform fit first ### | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
697 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
698 # Get expected peak energy locations for this iteration's starting | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
699 # value of tth | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
700 fit_lambda = 2.0 * fit_ds * np.sin(0.5*np.radians(tth)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
701 fit_E0 = hc / fit_lambda | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
702 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
703 # Run the uniform fit | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
704 best_fit, residual, best_values, best_errors, redchi, success = \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
705 FitMultipeak.fit_multipeak(fit_mca_intensities, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
706 fit_E0, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
707 x=fit_mca_energies, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
708 fit_type='uniform') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
709 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
710 # Extract values of interest from the best values for the uniform fit | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
711 # parameters | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
712 uniform_fit_centers = [best_values[f'peak{i+1}_center'] for i in range(len(calibration_config.fit_hkls))] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
713 # uniform_a = best_values['scale_factor'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
714 # uniform_strain = np.log(uniform_a / calibration_config.lattice_parameter_angstrom) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
715 # uniform_tth = tth * (1.0 + uniform_strain) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
716 # uniform_rel_rms_error = np.linalg.norm(residual) / np.linalg.norm(fit_mca_intensities) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
717 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
718 ### Next, perform the unconstrained fit ### | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
719 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
720 # Use the peak locations found in the uniform fit as the initial | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
721 # guesses for peak locations in the unconstrained fit | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
722 best_fit, residual, best_values, best_errors, redchi, success = \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
723 FitMultipeak.fit_multipeak(fit_mca_intensities, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
724 uniform_fit_centers, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
725 x=fit_mca_energies, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
726 fit_type='unconstrained') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
727 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
728 # Extract values of interest from the best values for the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
729 # unconstrained fit parameters | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
730 unconstrained_fit_centers = np.array([best_values[f'peak{i+1}_center'] for i in range(len(calibration_config.fit_hkls))]) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
731 unconstrained_a = 0.5 * hc * np.sqrt(c_1) / (unconstrained_fit_centers * abs(np.sin(0.5*np.radians(tth)))) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
732 unconstrained_strains = np.log(unconstrained_a / calibration_config.lattice_parameter_angstrom) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
733 unconstrained_strain = np.mean(unconstrained_strains) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
734 unconstrained_tth = tth * (1.0 + unconstrained_strain) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
735 # unconstrained_rel_rms_error = np.linalg.norm(residual) / np.linalg.norm(fit_mca_intensities) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
736 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
737 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
738 # Update tth for the next iteration of tuning | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
739 prev_tth = tth | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
740 tth = unconstrained_tth | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
741 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
742 # Stop tuning tth at this iteration if differences are small enough | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
743 if abs(tth - prev_tth) < calibration_config.tune_tth_tol: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
744 break | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
745 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
746 # Fit line to expected / computed peak locations from the last | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
747 # unconstrained fit. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
748 fit = Fit.fit_data(fit_E0,'linear', x=unconstrained_fit_centers, nan_policy='omit') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
749 slope = fit.best_values['slope'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
750 intercept = fit.best_values['intercept'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
751 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
752 return(float(tth), float(slope), float(intercept)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
753 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
754 class MCADataProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
755 '''Class representing a process to return data from a MCA, restuctured to | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
756 incorporate the shape & metadata associated with a map configuration to | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
757 which the MCA data belongs, and linearly transformed according to the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
758 results of a ceria calibration. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
759 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
760 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
761 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
762 '''Process configurations for a map and MCA detector(s), and return the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
763 raw MCA data collected over the map. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
764 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
765 :param data: input map configuration and results of ceria calibration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
766 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
767 :return: calibrated and flux-corrected MCA data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
768 :rtype: nexusformat.nexus.NXentry | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
769 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
770 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
771 map_config, calibration_config = self.get_configs(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
772 nxroot = self.get_nxroot(map_config, calibration_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
773 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
774 return(nxroot) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
775 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
776 def get_configs(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
777 '''Get instances of the configuration objects needed by this | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
778 `Processor` from a returned value of `Reader.read` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
779 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
780 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
781 value `'MapConfig'` for the `'schema'` key, and at least one item has | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
782 the value `'MCACeriaCalibrationConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
783 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
784 :raises Exception: If valid config objects cannot be constructed from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
785 :return: valid instances of the configuration objects with field values | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
786 taken from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
787 :rtype: tuple[MapConfig, MCACeriaCalibrationConfig] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
788 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
789 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
790 from CHAP.models.map import MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
791 from CHAP.models.edd import MCACeriaCalibrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
792 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
793 map_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
794 calibration_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
795 if isinstance(data, list): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
796 for item in data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
797 if isinstance(item, dict): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
798 schema = item.get('schema') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
799 if schema == 'MapConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
800 map_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
801 elif schema == 'MCACeriaCalibrationConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
802 calibration_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
803 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
804 if not map_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
805 raise(ValueError('No map configuration found in input data')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
806 if not calibration_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
807 raise(ValueError('No MCA ceria calibration configuration found in input data')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
808 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
809 return(MapConfig(**map_config), MCACeriaCalibrationConfig(**calibration_config)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
810 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
811 def get_nxroot(self, map_config, calibration_config): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
812 '''Get a map of the MCA data collected by the scans in `map_config`. The | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
813 MCA data will be calibrated and flux-corrected according to the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
814 parameters included in `calibration_config`. The data will be returned | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
815 along with relevant metadata in the form of a NeXus structure. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
816 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
817 :param map_config: the map configuration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
818 :type map_config: MapConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
819 :param calibration_config: the calibration configuration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
820 :type calibration_config: MCACeriaCalibrationConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
821 :return: a map of the calibrated and flux-corrected MCA data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
822 :rtype: nexusformat.nexus.NXroot | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
823 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
824 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
825 from nexusformat.nexus import (NXdata, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
826 NXdetector, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
827 NXentry, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
828 NXinstrument, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
829 NXroot) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
830 import numpy as np | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
831 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
832 nxroot = NXroot() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
833 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
834 nxroot[map_config.title] = MapProcessor.get_nxentry(map_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
835 nxentry = nxroot[map_config.title] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
836 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
837 nxentry.instrument = NXinstrument() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
838 nxentry.instrument.detector = NXdetector() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
839 nxentry.instrument.detector.calibration_configuration = json.dumps(calibration_config.dict()) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
840 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
841 nxentry.instrument.detector.data = NXdata() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
842 nxdata = nxentry.instrument.detector.data | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
843 nxdata.raw = np.empty((*map_config.shape, calibration_config.num_bins)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
844 nxdata.raw.attrs['units'] = 'counts' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
845 nxdata.channel_energy = calibration_config.slope_calibrated * \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
846 np.arange(0, calibration_config.num_bins) * \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
847 (calibration_config.max_energy_kev / calibration_config.num_bins) + \ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
848 calibration_config.intercept_calibrated | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
849 nxdata.channel_energy.attrs['units'] = 'keV' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
850 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
851 for scans in map_config.spec_scans: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
852 for scan_number in scans.scan_numbers: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
853 scanparser = scans.get_scanparser(scan_number) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
854 for scan_step_index in range(scanparser.spec_scan_npts): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
855 map_index = scans.get_index(scan_number, scan_step_index, map_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
856 nxdata.raw[map_index] = scanparser.get_detector_data(calibration_config.detector_name, scan_step_index) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
857 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
858 nxentry.data.makelink(nxdata.raw, name=calibration_config.detector_name) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
859 nxentry.data.makelink(nxdata.channel_energy, name=f'{calibration_config.detector_name}_channel_energy') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
860 if isinstance(nxentry.data.attrs['axes'], str): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
861 nxentry.data.attrs['axes'] = [nxentry.data.attrs['axes'], f'{calibration_config.detector_name}_channel_energy'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
862 else: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
863 nxentry.data.attrs['axes'] += [f'{calibration_config.detector_name}_channel_energy'] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
864 nxentry.data.attrs['signal'] = calibration_config.detector_name | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
865 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
866 return(nxroot) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
867 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
868 class StrainAnalysisProcessor(Processor): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
869 '''Class representing a process to compute a map of sample strains by fitting | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
870 bragg peaks in 1D detector data and analyzing the difference between measured | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
871 peak locations and expected peak locations for the sample measured. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
872 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
873 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
874 def _process(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
875 '''Process the input map detector data & configuration for the strain | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
876 analysis procedure, and return a map of sample strains. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
877 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
878 :param data: results of `MutlipleReader.read` containing input map | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
879 detector data and strain analysis configuration | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
880 :type data: dict[list[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
881 :return: map of sample strains | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
882 :rtype: xarray.Dataset | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
883 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
884 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
885 strain_analysis_config = self.get_config(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
886 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
887 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
888 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
889 def get_config(self, data): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
890 '''Get instances of the configuration objects needed by this | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
891 `Processor` from a returned value of `Reader.read` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
892 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
893 :param data: Result of `Reader.read` where at least one item has the | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
894 value `'StrainAnalysisConfig'` for the `'schema'` key. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
895 :type data: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
896 :raises Exception: If valid config objects cannot be constructed from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
897 :return: valid instances of the configuration objects with field values | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
898 taken from `data`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
899 :rtype: StrainAnalysisConfig | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
900 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
901 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
902 strain_analysis_config = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
903 if isinstance(data, list): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
904 for item in data: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
905 if isinstance(item, dict): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
906 schema = item.get('schema') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
907 if item.get('schema') == 'StrainAnalysisConfig': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
908 strain_analysis_config = item.get('data') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
909 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
910 if not strain_analysis_config: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
911 raise(ValueError('No strain analysis configuration found in input data')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
912 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
913 return(strain_analysis_config) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
914 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
915 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
916 class OptionParser(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
917 '''User based option parser''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
918 def __init__(self): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
919 self.parser = argparse.ArgumentParser(prog='PROG') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
920 self.parser.add_argument("--data", action="store", | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
921 dest="data", default="", help="Input data") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
922 self.parser.add_argument("--processor", action="store", | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
923 dest="processor", default="Processor", help="Processor class name") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
924 self.parser.add_argument('--log-level', choices=logging._nameToLevel.keys(), | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
925 dest='log_level', default='INFO', help='logging level') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
926 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
927 def main(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
928 '''Main function''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
929 optmgr = OptionParser() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
930 opts = optmgr.parser.parse_args() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
931 clsName = opts.processor | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
932 try: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
933 processorCls = getattr(sys.modules[__name__],clsName) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
934 except: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
935 print(f'Unsupported processor {clsName}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
936 sys.exit(1) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
937 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
938 processor = processorCls() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
939 processor.logger.setLevel(getattr(logging, opts.log_level)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
940 log_handler = logging.StreamHandler() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
941 log_handler.setFormatter(logging.Formatter('{name:20}: {message}', style='{')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
942 processor.logger.addHandler(log_handler) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
943 data = processor.process(opts.data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
944 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
945 print(f"Processor {processor} operates on data {data}") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
946 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
947 if __name__ == '__main__': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
948 main() | 
