@@ -501,7 +501,7 @@ def _3d_class_murfey_ids(particles_file: str, app_id: int, _db) -> Dict[str, int
501501 return {str (cl .class_number ): cl .murfey_id for cl in classes }
502502
503503
504- def _refine_murfey_id (refine_dir : str , app_id : int , _db ) -> Dict [str , int ]:
504+ def _refine_murfey_id (refine_dir : str , tag : str , app_id : int , _db ) -> Dict [str , int ]:
505505 pj_id = (
506506 _db .exec (select (db .AutoProcProgram ).where (db .AutoProcProgram .id == app_id ))
507507 .one ()
@@ -511,6 +511,7 @@ def _refine_murfey_id(refine_dir: str, app_id: int, _db) -> Dict[str, int]:
511511 select (db .Refine3D )
512512 .where (db .Refine3D .refine_dir == refine_dir )
513513 .where (db .Refine3D .pj_id == pj_id )
514+ .where (db .Refine3D .tag == tag )
514515 ).one ()
515516 return refined_class .murfey_id
516517
@@ -1028,7 +1029,14 @@ def _release_refine_hold(message: dict, _db=murfey_db):
10281029 )
10291030 ).one ()
10301031 refine_params = _db .exec (
1031- select (db .RefineParameters ).where (db .RefineParameters .pj_id == pj_id )
1032+ select (db .RefineParameters )
1033+ .where (db .RefineParameters .pj_id == pj_id )
1034+ .where (db .RefineParameters .tag == "first" )
1035+ ).one ()
1036+ symmetry_refine_params = _db .exec (
1037+ select (db .RefineParameters )
1038+ .where (db .RefineParameters .pj_id == pj_id )
1039+ .where (db .RefineParameters .tag == "symmetry" )
10321040 ).one ()
10331041 if refine_params .run :
10341042 instrument_name = (
@@ -1052,11 +1060,17 @@ def _release_refine_hold(message: dict, _db=murfey_db):
10521060 "nr_iter" : default_spa_parameters .nr_iter_3d ,
10531061 "picker_id" : feedback_params .picker_ispyb_id ,
10541062 "refined_class_uuid" : _refine_murfey_id (
1055- refine_params .refine_dir , _app_id (pj_id , _db ), _db
1063+ refine_params .refine_dir ,
1064+ refine_params .tag ,
1065+ _app_id (pj_id , _db ),
1066+ _db ,
10561067 ),
10571068 "refined_grp_uuid" : refine_params .murfey_id ,
10581069 "symmetry_refined_class_uuid" : _refine_murfey_id (
1059- f"{ refine_params .refine_dir } /symmetry" , _app_id (pj_id , _db ), _db
1070+ symmetry_refine_params .refine_dir ,
1071+ symmetry_refine_params .tag ,
1072+ _app_id (pj_id , _db ),
1073+ _db ,
10601074 ),
10611075 "symmetry_refined_grp_uuid" : refine_params .symmetry_murfey_id ,
10621076 "session_id" : message ["session_id" ],
@@ -2203,7 +2217,14 @@ def _register_refinement(message: dict, _db=murfey_db, demo: bool = False):
22032217 # Send all other messages on to a container
22042218 try :
22052219 refine_params = _db .exec (
2206- select (db .RefineParameters ).where (db .RefineParameters .pj_id == pj_id )
2220+ select (db .RefineParameters )
2221+ .where (db .RefineParameters .pj_id == pj_id )
2222+ .where (db .RefineParameters .tag == "first" )
2223+ ).one ()
2224+ symmetry_refine_params = _db .exec (
2225+ select (db .RefineParameters )
2226+ .where (db .RefineParameters .pj_id == pj_id )
2227+ .where (db .RefineParameters .tag == "symmetry" )
22072228 ).one ()
22082229 except SQLAlchemyError :
22092230 next_job = feedback_params .next_job
@@ -2214,14 +2235,24 @@ def _register_refinement(message: dict, _db=murfey_db, demo: bool = False):
22142235 symmetry_refined_class_uuid = _murfey_id (message ["program_id" ], _db )[0 ]
22152236
22162237 refine_params = db .RefineParameters (
2238+ tag = "first" ,
22172239 pj_id = pj_id ,
22182240 murfey_id = refined_grp_uuid ,
22192241 symmetry_murfey_id = symmetry_refined_grp_uuid ,
22202242 refine_dir = refine_dir ,
22212243 class3d_dir = message ["class3d_dir" ],
22222244 class_number = message ["best_class" ],
22232245 )
2246+ symmetry_refine_params = db .RefineParameters (
2247+ tag = "symmetry" ,
2248+ pj_id = pj_id ,
2249+ murfey_id = symmetry_refined_grp_uuid ,
2250+ refine_dir = refine_dir ,
2251+ class3d_dir = message ["class3d_dir" ],
2252+ class_number = message ["best_class" ],
2253+ )
22242254 _db .add (refine_params )
2255+ _db .add (symmetry_refine_params )
22252256 _db .commit ()
22262257 _murfey_refine (refined_class_uuid , refine_dir , message ["program_id" ], _db )
22272258 _murfey_refine (
@@ -2252,13 +2283,19 @@ def _register_refinement(message: dict, _db=murfey_db, demo: bool = False):
22522283 "nr_iter" : default_spa_parameters .nr_iter_3d ,
22532284 "picker_id" : other_options ["picker_ispyb_id" ],
22542285 "refined_class_uuid" : _refine_murfey_id (
2255- refine_params .refine_dir , _app_id (pj_id , _db ), _db
2286+ refine_params .refine_dir ,
2287+ refine_params .tag ,
2288+ _app_id (pj_id , _db ),
2289+ _db ,
22562290 ),
22572291 "refined_grp_uuid" : refine_params .murfey_id ,
22582292 "symmetry_refined_class_uuid" : _refine_murfey_id (
2259- f"{ refine_params .refine_dir } /symmetry" , _app_id (pj_id , _db ), _db
2293+ symmetry_refine_params .refine_dir ,
2294+ symmetry_refine_params .tag ,
2295+ _app_id (pj_id , _db ),
2296+ _db ,
22602297 ),
2261- "symmetry_refined_grp_uuid" : refine_params . symmetry_murfey_id ,
2298+ "symmetry_refined_grp_uuid" : symmetry_refine_params . murfey_id ,
22622299 "session_id" : message ["session_id" ],
22632300 "autoproc_program_id" : _app_id (
22642301 _pj_id (message ["program_id" ], _db , recipe = "em-spa-refine" ), _db
0 commit comments