|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | 3 | import logging |
4 | | -from datetime import datetime |
5 | 4 | from itertools import count |
6 | 5 | from pathlib import Path |
7 | 6 | from typing import Any, Dict, List, Optional, OrderedDict, Tuple |
@@ -109,27 +108,9 @@ class SPAModularContext(Context): |
109 | 108 | "Dose Per Frame [e- / Angstrom^2 / frame] (after EER grouping if relevant)", |
110 | 109 | default=1, |
111 | 110 | ), |
112 | | - ProcessingParameter( |
113 | | - "estimate_particle_diameter", |
114 | | - "Use crYOLO to Estimate Particle Diameter", |
115 | | - default=True, |
116 | | - ), |
117 | | - ProcessingParameter( |
118 | | - "particle_diameter", "Particle Diameter (Angstroms)", default=None |
119 | | - ), |
120 | | - ProcessingParameter("use_cryolo", "Use crYOLO Autopicking", default=True), |
121 | 111 | ProcessingParameter("symmetry", "Symmetry Group", default="C1"), |
122 | 112 | ProcessingParameter("eer_fractionation", "EER Fractionation", default=20), |
123 | | - ProcessingParameter( |
124 | | - "mask_diameter", "Mask Diameter (2D classification)", default=190 |
125 | | - ), |
126 | | - ProcessingParameter("boxsize", "Box Size", default=256), |
127 | | - ProcessingParameter("downscale", "Downscale Extracted Particles", default=True), |
128 | | - ProcessingParameter( |
129 | | - "small_boxsize", "Downscaled Extracted Particle Size (pixels)", default=128 |
130 | | - ), |
131 | 113 | ProcessingParameter("gain_ref", "Gain Reference"), |
132 | | - ProcessingParameter("gain_ref_superres", "Unbinned Gain Reference"), |
133 | 114 | ] |
134 | 115 | metadata_params = [ |
135 | 116 | ProcessingParameter("voltage", "Voltage"), |
@@ -164,7 +145,6 @@ def gather_metadata( |
164 | 145 | return OrderedDict({}) |
165 | 146 | data = xmltodict.parse(for_parsing) |
166 | 147 | magnification = 0 |
167 | | - num_fractions = 1 |
168 | 148 | metadata: OrderedDict = OrderedDict({}) |
169 | 149 | metadata["experiment_type"] = "SPA" |
170 | 150 | if data.get("Acquisition"): |
@@ -217,14 +197,6 @@ def gather_metadata( |
217 | 197 | ) # convert e / m^2 to e / A^2 |
218 | 198 | except ValueError: |
219 | 199 | metadata["total_exposed_dose"] = 1 |
220 | | - try: |
221 | | - num_fractions = int( |
222 | | - data["MicroscopeImage"]["microscopeData"]["acquisition"]["camera"][ |
223 | | - "CameraSpecificInput" |
224 | | - ]["a:KeyValueOfstringanyType"][2]["a:Value"]["b:NumberOffractions"] |
225 | | - ) |
226 | | - except (KeyError, IndexError): |
227 | | - pass |
228 | 200 | c2_index = 3 |
229 | 201 | for i, el in enumerate( |
230 | 202 | data["MicroscopeImage"]["CustomData"]["a:KeyValueOfstringanyType"] |
@@ -293,85 +265,13 @@ def gather_metadata( |
293 | 265 | metadata["image_size_x"] = str(int(metadata["image_size_x"]) * binning_factor) |
294 | 266 | metadata["image_size_y"] = str(int(metadata["image_size_y"]) * binning_factor) |
295 | 267 | metadata["motion_corr_binning"] = 1 if binning_factor_xml == 2 else 2 |
296 | | - if environment: |
297 | | - metadata["gain_ref"] = ( |
298 | | - environment.data_collection_parameters.get("gain_ref") |
299 | | - if environment |
300 | | - and environment.data_collection_parameters.get("gain_ref") |
301 | | - not in (None, "None") |
302 | | - else f"{datetime.now().year}/{environment.visit}/processing/gain.mrc" |
303 | | - ) |
304 | | - metadata["gain_ref_superres"] = ( |
305 | | - environment.data_collection_parameters.get("gain_ref_superres") |
306 | | - if environment |
307 | | - and environment.data_collection_parameters.get("gain_ref_superres") |
308 | | - not in (None, "None") |
309 | | - else f"{datetime.now().year}/{environment.visit}/processing/gain_superres.mrc" |
310 | | - ) |
311 | | - else: |
312 | | - metadata["gain_ref"] = None |
313 | | - metadata["gain_ref_superres"] = None |
314 | | - if metadata.get("total_exposed_dose"): |
315 | | - metadata["dose_per_frame"] = ( |
316 | | - environment.data_collection_parameters.get("dose_per_frame") |
317 | | - if environment |
318 | | - and environment.data_collection_parameters.get("dose_per_frame") |
319 | | - not in (None, "None") |
320 | | - else round(metadata["total_exposed_dose"] / num_fractions, 3) |
321 | | - ) |
322 | | - else: |
323 | | - metadata["dose_per_frame"] = ( |
324 | | - environment.data_collection_parameters.get("dose_per_frame") |
325 | | - if environment |
326 | | - else None |
327 | | - ) |
328 | | - |
329 | | - metadata["use_cryolo"] = ( |
330 | | - environment.data_collection_parameters.get("use_cryolo") |
331 | | - if environment |
332 | | - else None |
333 | | - ) or True |
334 | | - metadata["symmetry"] = ( |
335 | | - environment.data_collection_parameters.get("symmetry") |
336 | | - if environment |
337 | | - else None |
338 | | - ) or "C1" |
339 | | - metadata["mask_diameter"] = ( |
340 | | - environment.data_collection_parameters.get("mask_diameter") |
341 | | - if environment |
342 | | - else None |
343 | | - ) or 190 |
344 | | - metadata["boxsize"] = ( |
345 | | - environment.data_collection_parameters.get("boxsize") |
346 | | - if environment |
347 | | - else None |
348 | | - ) or 256 |
349 | | - metadata["downscale"] = ( |
350 | | - environment.data_collection_parameters.get("downscale") |
351 | | - if environment |
352 | | - else None |
353 | | - ) or True |
354 | | - metadata["small_boxsize"] = ( |
355 | | - environment.data_collection_parameters.get("small_boxsize") |
356 | | - if environment |
357 | | - else None |
358 | | - ) or 128 |
| 268 | + metadata["gain_ref"] = environment.gain_ref if environment else None |
| 269 | + metadata["dose_per_frame"] = environment.dose_per_frame if environment else None |
| 270 | + metadata["symmetry"] = (environment.symmetry if environment else None) or "C1" |
359 | 271 | metadata["eer_fractionation"] = ( |
360 | | - environment.data_collection_parameters.get("eer_fractionation") |
361 | | - if environment |
362 | | - else None |
| 272 | + environment.eer_fractionation if environment else None |
363 | 273 | ) or 20 |
364 | 274 | metadata["source"] = str(self._basepath) |
365 | | - metadata["particle_diameter"] = ( |
366 | | - environment.data_collection_parameters.get("particle_diameter") |
367 | | - if environment |
368 | | - else None |
369 | | - ) or 0 |
370 | | - metadata["estimate_particle_diameter"] = ( |
371 | | - environment.data_collection_parameters.get("estimate_particle_diameter") |
372 | | - if environment |
373 | | - else None |
374 | | - ) or True |
375 | 275 | return metadata |
376 | 276 |
|
377 | 277 | def _position_analysis( |
@@ -584,10 +484,10 @@ def post_transfer( |
584 | 484 | f"{str(environment.url.geturl())}{url_path_for('file_io_instrument.router', 'write_eer_fractionation_file', visit_name=environment.visit, session_id=environment.murfey_session)}", |
585 | 485 | json={ |
586 | 486 | "eer_path": str(file_transferred_to), |
587 | | - "fractionation": environment.data_collection_parameters[ |
| 487 | + "fractionation": self.data_collection_parameters[ |
588 | 488 | "eer_fractionation" |
589 | 489 | ], |
590 | | - "dose_per_frame": environment.data_collection_parameters[ |
| 490 | + "dose_per_frame": self.data_collection_parameters[ |
591 | 491 | "dose_per_frame" |
592 | 492 | ], |
593 | 493 | "fractionation_file_name": "eer_fractionation_spa.txt", |
@@ -619,20 +519,16 @@ def post_transfer( |
619 | 519 | "image_number": environment.movies[ |
620 | 520 | file_transferred_to |
621 | 521 | ].movie_number, |
622 | | - "pixel_size": environment.data_collection_parameters.get( |
| 522 | + "pixel_size": self.data_collection_parameters.get( |
623 | 523 | "pixel_size_on_image" |
624 | 524 | ), |
625 | 525 | "autoproc_program_id": None, |
626 | | - "dose_per_frame": environment.data_collection_parameters.get( |
627 | | - "dose_per_frame" |
628 | | - ), |
629 | | - "mc_binning": environment.data_collection_parameters.get( |
| 526 | + "dose_per_frame": environment.dose_per_frame, |
| 527 | + "mc_binning": self.data_collection_parameters.get( |
630 | 528 | "motion_corr_binning", 1 |
631 | 529 | ), |
632 | | - "gain_ref": environment.data_collection_parameters.get( |
633 | | - "gain_ref" |
634 | | - ), |
635 | | - "extract_downscale": environment.data_collection_parameters.get( |
| 530 | + "gain_ref": environment.gain_ref, |
| 531 | + "extract_downscale": self.data_collection_parameters.get( |
636 | 532 | "downscale", True |
637 | 533 | ), |
638 | 534 | "eer_fractionation_file": eer_fractionation_file, |
|
0 commit comments