From c4d78c04286f1365c87245cb4a6d16e621590c8e Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Tue, 8 Apr 2025 16:39:52 +0100 Subject: [PATCH 1/4] Override the tomography processing parameters with ones from web ui --- src/murfey/server/api/__init__.py | 21 ++++++++++++--------- src/murfey/server/demo_api.py | 4 ++-- src/murfey/util/models.py | 4 ++-- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/murfey/server/api/__init__.py b/src/murfey/server/api/__init__.py index 77d1e7eab..0e786b551 100644 --- a/src/murfey/server/api/__init__.py +++ b/src/murfey/server/api/__init__.py @@ -90,7 +90,6 @@ MillingParameters, PostInfo, PreprocessingParametersTomo, - ProcessFile, ProcessingJobParameters, ProcessingParametersSPA, ProcessingParametersTomo, @@ -104,6 +103,7 @@ TiltInfo, TiltSeriesGroupInfo, TiltSeriesInfo, + TomoProcessFile, Visit, ) from murfey.util.processing_params import default_spa_parameters @@ -1210,7 +1210,10 @@ async def request_spa_preprocessing( @router.post("/visits/{visit_name}/{session_id}/tomography_preprocess") async def request_tomography_preprocessing( - visit_name: str, session_id: MurfeySessionID, proc_file: ProcessFile, db=murfey_db + visit_name: str, + session_id: MurfeySessionID, + proc_file: TomoProcessFile, + db=murfey_db, ): instrument_name = ( db.exec(select(Session).where(Session.id == session_id)).one().instrument_name @@ -1260,15 +1263,15 @@ async def request_tomography_preprocessing( if not mrc_out.parent.exists(): mrc_out.parent.mkdir(parents=True, exist_ok=True) - processing_job_parameters = db.exec( - select(TomographyProcessingParameters).where( - TomographyProcessingParameters.pj_id == data_collection[0][2].id + session_processing_parameters = db.exec( + select(SessionProcessingParameters).where( + SessionProcessingParameters.session_id == session_id ) ).all() - if processing_job_parameters: - proc_file.gain_ref = processing_job_parameters[0].gain_ref - proc_file.dose_per_frame = processing_job_parameters[0].dose_per_frame - proc_file.eer_fractionation_file = processing_job_parameters[ + if session_processing_parameters: + proc_file.gain_ref = session_processing_parameters[0].gain_ref + proc_file.dose_per_frame = session_processing_parameters[0].dose_per_frame + proc_file.eer_fractionation_file = session_processing_parameters[ 0 ].eer_fractionation_file diff --git a/src/murfey/server/demo_api.py b/src/murfey/server/demo_api.py index 39e89fd90..d953b87ab 100644 --- a/src/murfey/server/demo_api.py +++ b/src/murfey/server/demo_api.py @@ -73,7 +73,6 @@ GridSquareParameters, PostInfo, PreprocessingParametersTomo, - ProcessFile, ProcessingJobParameters, ProcessingParametersSPA, ProcessingParametersTomo, @@ -86,6 +85,7 @@ TiltInfo, TiltSeriesGroupInfo, TiltSeriesInfo, + TomoProcessFile, Visit, ) from murfey.util.processing_params import default_spa_parameters @@ -1196,7 +1196,7 @@ def flush_tomography_processing( @router.post("/visits/{visit_name}/{client_id}/tomography_preprocess") async def request_tomography_preprocessing( - visit_name: str, client_id: int, proc_file: ProcessFile, db=murfey_db + visit_name: str, client_id: int, proc_file: TomoProcessFile, db=murfey_db ): if not sanitise_path(Path(proc_file.path)).exists(): log.warning( diff --git a/src/murfey/util/models.py b/src/murfey/util/models.py index 4cf4f18b7..28abfea23 100644 --- a/src/murfey/util/models.py +++ b/src/murfey/util/models.py @@ -308,13 +308,13 @@ class Token(BaseModel): """ -class ProcessFile(BaseModel): # Rename to TomoProcessFile +class TomoProcessFile(BaseModel): path: str description: str tag: str image_number: int pixel_size: float - dose_per_frame: float + dose_per_frame: Optional[float] frame_count: int tilt_axis: Optional[float] mc_uuid: Optional[int] = None From 55bfc6416e9e9978c336448a53c8aee2ad618129 Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Tue, 8 Apr 2025 16:52:40 +0100 Subject: [PATCH 2/4] Typo --- src/murfey/server/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/murfey/server/__init__.py b/src/murfey/server/__init__.py index f84d8ea99..169c18af7 100644 --- a/src/murfey/server/__init__.py +++ b/src/murfey/server/__init__.py @@ -1949,7 +1949,7 @@ def _register_bfactors(message: dict, _db=murfey_db, demo: bool = False): if message["symmetry"] != relion_params.symmetry: # Currently don't do anything with a symmetrised re-run of the refinement - logger.info(f"Recieved symmetrised structure of {message['symmetry']}") + logger.info(f"Received symmetrised structure of {message['symmetry']}") return True if not feedback_params.hold_refine: From 7d9e08c3aefe7951aac73171934188b0afdda411 Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Tue, 8 Apr 2025 16:54:16 +0100 Subject: [PATCH 3/4] Sanitise symmetry --- src/murfey/server/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/murfey/server/__init__.py b/src/murfey/server/__init__.py index 169c18af7..49452d9e2 100644 --- a/src/murfey/server/__init__.py +++ b/src/murfey/server/__init__.py @@ -1949,7 +1949,9 @@ def _register_bfactors(message: dict, _db=murfey_db, demo: bool = False): if message["symmetry"] != relion_params.symmetry: # Currently don't do anything with a symmetrised re-run of the refinement - logger.info(f"Received symmetrised structure of {message['symmetry']}") + logger.info( + f"Received symmetrised structure of {sanitise(message['symmetry'])}" + ) return True if not feedback_params.hold_refine: From b2785d7cf6f5cdaf1350214749a4204d439dde6c Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Tue, 8 Apr 2025 17:06:33 +0100 Subject: [PATCH 4/4] Tomo param registration also needs to allow none --- src/murfey/util/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/murfey/util/models.py b/src/murfey/util/models.py index 28abfea23..d72eff927 100644 --- a/src/murfey/util/models.py +++ b/src/murfey/util/models.py @@ -350,7 +350,7 @@ class CompletedTiltSeries(BaseModel): class PreprocessingParametersTomo(BaseModel): - dose_per_frame: float + dose_per_frame: Optional[float] frame_count: int tilt_axis: float gain_ref: Optional[str]