|
65 | 65 | ProcessingJob, |
66 | 66 | RsyncInstance, |
67 | 67 | Session, |
| 68 | + SessionProcessingParameters, |
68 | 69 | SPAFeedbackParameters, |
69 | 70 | SPARelionParameters, |
70 | 71 | Tilt, |
@@ -477,6 +478,19 @@ def _parse(ps, i, dcg_id): |
477 | 478 | def register_spa_proc_params( |
478 | 479 | session_id: MurfeySessionID, proc_params: ProcessingParametersSPA, db=murfey_db |
479 | 480 | ): |
| 481 | + session_processing_parameters = db.exec( |
| 482 | + select(SessionProcessingParameters).where( |
| 483 | + SessionProcessingParameters.session_id == session_id |
| 484 | + ) |
| 485 | + ).all() |
| 486 | + if session_processing_parameters: |
| 487 | + proc_params.gain_ref = session_processing_parameters[0].gain_ref |
| 488 | + proc_params.dose_per_frame = session_processing_parameters[0].dose_per_frame |
| 489 | + proc_params.eer_fractionation_file = session_processing_parameters[ |
| 490 | + 0 |
| 491 | + ].eer_fractionation_file |
| 492 | + proc_params.symmetry = session_processing_parameters[0].symmetry |
| 493 | + |
480 | 494 | zocalo_message = { |
481 | 495 | "register": "spa_processing_parameters", |
482 | 496 | **dict(proc_params), |
@@ -605,6 +619,18 @@ def post_foil_hole( |
605 | 619 | def register_tomo_preproc_params( |
606 | 620 | session_id: MurfeySessionID, proc_params: PreprocessingParametersTomo, db=murfey_db |
607 | 621 | ): |
| 622 | + session_processing_parameters = db.exec( |
| 623 | + select(SessionProcessingParameters).where( |
| 624 | + SessionProcessingParameters.session_id == session_id |
| 625 | + ) |
| 626 | + ).all() |
| 627 | + if session_processing_parameters: |
| 628 | + proc_params.gain_ref = session_processing_parameters[0].gain_ref |
| 629 | + proc_params.dose_per_frame = session_processing_parameters[0].dose_per_frame |
| 630 | + proc_params.eer_fractionation_file = session_processing_parameters[ |
| 631 | + 0 |
| 632 | + ].eer_fractionation_file |
| 633 | + |
608 | 634 | zocalo_message = { |
609 | 635 | "register": "tomography_processing_parameters", |
610 | 636 | **dict(proc_params), |
@@ -1142,7 +1168,11 @@ async def request_spa_preprocessing( |
1142 | 1168 | "picker_uuid": murfey_ids[1], |
1143 | 1169 | "session_id": session_id, |
1144 | 1170 | "particle_diameter": proc_params["particle_diameter"] or 0, |
1145 | | - "fm_int_file": proc_file.eer_fractionation_file, |
| 1171 | + "fm_int_file": ( |
| 1172 | + proc_params["eer_fractionation_file"] |
| 1173 | + if proc_params["eer_fractionation_file"] |
| 1174 | + else proc_file.eer_fractionation_file |
| 1175 | + ), |
1146 | 1176 | "do_icebreaker_jobs": default_spa_parameters.do_icebreaker_jobs, |
1147 | 1177 | "cryolo_model_weights": str( |
1148 | 1178 | _cryolo_model_path(visit_name, instrument_name) |
@@ -1229,6 +1259,20 @@ async def request_tomography_preprocessing( |
1229 | 1259 | murfey_ids = _murfey_id(appid, db, number=1, close=False) |
1230 | 1260 | if not mrc_out.parent.exists(): |
1231 | 1261 | mrc_out.parent.mkdir(parents=True, exist_ok=True) |
| 1262 | + |
| 1263 | + processing_job_parameters = db.exec( |
| 1264 | + select(TomographyProcessingParameters).where( |
| 1265 | + TomographyProcessingParameters.processing_job_id |
| 1266 | + == data_collection[2].id |
| 1267 | + ) |
| 1268 | + ).all() |
| 1269 | + if processing_job_parameters: |
| 1270 | + proc_file.gain_ref = processing_job_parameters[0].gain_ref |
| 1271 | + proc_file.dose_per_frame = processing_job_parameters[0].dose_per_frame |
| 1272 | + proc_file.eer_fractionation_file = processing_job_parameters[ |
| 1273 | + 0 |
| 1274 | + ].eer_fractionation_file |
| 1275 | + |
1232 | 1276 | zocalo_message: dict = { |
1233 | 1277 | "recipes": [recipe_name], |
1234 | 1278 | "parameters": { |
@@ -1514,6 +1558,24 @@ def register_proc( |
1514 | 1558 | }, |
1515 | 1559 | } |
1516 | 1560 |
|
| 1561 | + session_processing_parameters = db.exec( |
| 1562 | + select(SessionProcessingParameters).where( |
| 1563 | + SessionProcessingParameters.session_id == session_id |
| 1564 | + ) |
| 1565 | + ).all() |
| 1566 | + |
| 1567 | + if session_processing_parameters: |
| 1568 | + proc_params["job_parameters"].update( |
| 1569 | + { |
| 1570 | + "gain_ref": session_processing_parameters[0].gain_ref, |
| 1571 | + "dose_per_frame": session_processing_parameters[0].dose_per_frame, |
| 1572 | + "eer_fractionation_file": session_processing_parameters[ |
| 1573 | + 0 |
| 1574 | + ].eer_fractionation_file, |
| 1575 | + "symmetry": session_processing_parameters[0].symmetry, |
| 1576 | + } |
| 1577 | + ) |
| 1578 | + |
1517 | 1579 | if _transport_object: |
1518 | 1580 | _transport_object.send( |
1519 | 1581 | _transport_object.feedback_queue, |
@@ -1654,6 +1716,17 @@ async def write_eer_fractionation_file( |
1654 | 1716 | / machine_config.gain_directory_name |
1655 | 1717 | / secure_filename(fractionation_params.fractionation_file_name) |
1656 | 1718 | ) |
| 1719 | + |
| 1720 | + session_parameters = db.exec( |
| 1721 | + select(SessionProcessingParameters).where( |
| 1722 | + SessionProcessingParameters.session_id == session_id |
| 1723 | + ) |
| 1724 | + ).all() |
| 1725 | + if session_parameters: |
| 1726 | + session_parameters[0].eer_fractionation_file = str(file_path) |
| 1727 | + db.add(session_parameters) |
| 1728 | + db.commit() |
| 1729 | + |
1657 | 1730 | if file_path.is_file(): |
1658 | 1731 | return {"eer_fractionation_file": str(file_path)} |
1659 | 1732 |
|
|
0 commit comments