From c28240f5d6b3ad0054e1606cfa10b94e33b3aa1b Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Thu, 16 Oct 2025 12:11:23 +0100 Subject: [PATCH 1/2] Raise and exception if no 2D murfey ids present --- src/murfey/server/feedback.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/murfey/server/feedback.py b/src/murfey/server/feedback.py index 288f3926f..d24cabb8d 100644 --- a/src/murfey/server/feedback.py +++ b/src/murfey/server/feedback.py @@ -241,6 +241,8 @@ def _2d_class_murfey_ids(particles_file: str, app_id: int, _db) -> Dict[str, int db.Class2D.particles_file == particles_file and db.Class2D.pj_id == pj_id ) ).all() + if not classes: + raise ValueError(f"No 2D classification IDs found for {particles_file}") return {str(cl.class_number): cl.murfey_id for cl in classes} @@ -623,7 +625,9 @@ def _register_incomplete_2d_batch(message: dict, _db, demo: bool = False): ) _db.add(class2d_params) _db.commit() - murfey_ids = _murfey_id(message["program_id"], _db, number=50) + murfey_ids = _murfey_id( + message["program_id"], _db, number=default_spa_parameters.nr_classes_2d + ) _murfey_class2ds( murfey_ids, class2d_message["particles_file"], message["program_id"], _db ) @@ -747,7 +751,9 @@ def _register_complete_2d_batch(message: dict, _db, demo: bool = False): _db.add(class2d_params) _db.commit() _db.close() - murfey_ids = _murfey_id(_app_id(pj_id, _db), _db, number=50) + murfey_ids = _murfey_id( + _app_id(pj_id, _db), _db, number=default_spa_parameters.nr_classes_2d + ) _murfey_class2ds( murfey_ids, class2d_message["particles_file"], _app_id(pj_id, _db), _db ) @@ -796,7 +802,13 @@ def _register_complete_2d_batch(message: dict, _db, demo: bool = False): else: class_uuids = { str(i + 1): m - for i, m in enumerate(_murfey_id(_app_id(pj_id, _db), _db, number=50)) + for i, m in enumerate( + _murfey_id( + _app_id(pj_id, _db), + _db, + number=default_spa_parameters.nr_classes_2d, + ) + ) } class2d_grp_uuid = _murfey_id(_app_id(pj_id, _db), _db)[0] zocalo_message: dict = { @@ -865,7 +877,13 @@ def _register_complete_2d_batch(message: dict, _db, demo: bool = False): else: class_uuids = { str(i + 1): m - for i, m in enumerate(_murfey_id(_app_id(pj_id, _db), _db, number=50)) + for i, m in enumerate( + _murfey_id( + _app_id(pj_id, _db), + _db, + number=default_spa_parameters.nr_classes_2d, + ) + ) } class2d_grp_uuid = _murfey_id(_app_id(pj_id, _db), _db)[0] zocalo_message = { From 2e79985561d0afd7f2ff200f9be4183ca8543ef3 Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Thu, 16 Oct 2025 13:19:39 +0100 Subject: [PATCH 2/2] Raise the same error for 3D --- src/murfey/server/feedback.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/murfey/server/feedback.py b/src/murfey/server/feedback.py index d24cabb8d..d91f54a80 100644 --- a/src/murfey/server/feedback.py +++ b/src/murfey/server/feedback.py @@ -258,6 +258,8 @@ def _3d_class_murfey_ids(particles_file: str, app_id: int, _db) -> Dict[str, int and db.Class3D.pj_id == pj_id ) ).all() + if not classes: + raise ValueError(f"No 3D classification IDs found for {particles_file}") return {str(cl.class_number): cl.murfey_id for cl in classes}