@@ -1676,24 +1676,49 @@ def _register_3d_batch(message: dict, _db=murfey_db, demo: bool = False):
16761676 )
16771677
16781678 provided_initial_model = _find_initial_model (visit_name , machine_config )
1679- if provided_initial_model :
1679+ if provided_initial_model and not feedback_params . initial_model :
16801680 rescaled_initial_model_path = (
16811681 provided_initial_model .parent
1682- / f"{ provided_initial_model .stem } _rescaled { provided_initial_model .suffix } "
1682+ / f"{ provided_initial_model .stem } _rescaled_ { pj_id } { provided_initial_model .suffix } "
16831683 )
1684- _resize_intial_model (
1685- * _downscaled_box_size (
1686- message ["particle_diameter" ],
1687- relion_options ["angpix" ],
1688- ),
1689- provided_initial_model ,
1690- rescaled_initial_model_path ,
1691- machine_config .external_executables ,
1692- machine_config .external_environment ,
1693- )
1694- feedback_params .initial_model = str (rescaled_initial_model_path )
1695- _db .add (feedback_params )
1696- _db .commit ()
1684+ if not rescaled_initial_model_path .is_file ():
1685+ _resize_intial_model (
1686+ * _downscaled_box_size (
1687+ message ["particle_diameter" ],
1688+ relion_options ["angpix" ],
1689+ ),
1690+ provided_initial_model ,
1691+ rescaled_initial_model_path ,
1692+ machine_config .external_executables ,
1693+ machine_config .external_environment ,
1694+ )
1695+ feedback_params .initial_model = str (rescaled_initial_model_path )
1696+ other_options ["initial_model" ] = str (rescaled_initial_model_path )
1697+ next_job = feedback_params .next_job
1698+ class3d_dir = (
1699+ f"{ class3d_message ['class3d_dir' ]} { (feedback_params .next_job + 1 ):03} "
1700+ )
1701+ feedback_params .next_job += 1
1702+ _db .add (feedback_params )
1703+ _db .commit ()
1704+
1705+ class3d_grp_uuid = _murfey_id (message ["program_id" ], _db )[0 ]
1706+ class_uuids = _murfey_id (message ["program_id" ], _db , number = 4 )
1707+ class3d_params = db .Class3DParameters (
1708+ pj_id = pj_id ,
1709+ murfey_id = class3d_grp_uuid ,
1710+ particles_file = class3d_message ["particles_file" ],
1711+ class3d_dir = class3d_dir ,
1712+ batch_size = class3d_message ["batch_size" ],
1713+ )
1714+ _db .add (class3d_params )
1715+ _db .commit ()
1716+ _murfey_class3ds (
1717+ class_uuids ,
1718+ class3d_message ["particles_file" ],
1719+ message ["program_id" ],
1720+ _db ,
1721+ )
16971722
16981723 if feedback_params .hold_class3d :
16991724 # If waiting then save the message
@@ -1801,7 +1826,7 @@ def _register_3d_batch(message: dict, _db=murfey_db, demo: bool = False):
18011826 _transport_object .send (
18021827 "processing_recipe" , zocalo_message , new_connection = True
18031828 )
1804- feedback_params .next_job += 1
1829+ feedback_params .hold_class3d = True
18051830 _db .add (feedback_params )
18061831 _db .commit ()
18071832 _db .close ()
0 commit comments