1010from murfey .util .config import get_machine_config
1111from murfey .util .db import (
1212 AutoProcProgram ,
13+ ClassificationFeedbackParameters ,
1314 DataCollection ,
1415 ParticleSizes ,
1516 ProcessingJob ,
@@ -87,6 +88,14 @@ def _register_picked_tomogram_use_diameter(message: dict, _db: Session):
8788
8889 particle_diameter = tomo_params .particle_diameter
8990
91+ feedback_params = _db .exec (
92+ select (ClassificationFeedbackParameters ).where (
93+ ClassificationFeedbackParameters .pj_id == pj_id
94+ )
95+ ).one ()
96+ if not feedback_params .next_job :
97+ feedback_params .next_job = 9
98+
9099 if not particle_diameter :
91100 # If the diameter has not been calculated then find it
92101 picking_db = _db .exec (
@@ -125,6 +134,7 @@ def _register_picked_tomogram_use_diameter(message: dict, _db: Session):
125134 "picker_id" : None ,
126135 "class2d_grp_uuid" : class2d_grp_uuid ,
127136 "class_uuids" : class_uuids ,
137+ "next_job" : feedback_params .next_job ,
128138 },
129139 "recipes" : ["em-tomo-class2d" ],
130140 }
@@ -135,6 +145,7 @@ def _register_picked_tomogram_use_diameter(message: dict, _db: Session):
135145 _transport_object .send (
136146 "processing_recipe" , zocalo_message , new_connection = True
137147 )
148+ feedback_params .next_job += 2
138149 else :
139150 # If the diameter is known then just send the new message
140151 particle_diameter = tomo_params .particle_diameter
@@ -164,6 +175,7 @@ def _register_picked_tomogram_use_diameter(message: dict, _db: Session):
164175 "picker_id" : None ,
165176 "class2d_grp_uuid" : class2d_grp_uuid ,
166177 "class_uuids" : class_uuids ,
178+ "next_job" : feedback_params .next_job ,
167179 },
168180 "recipes" : ["em-tomo-class2d" ],
169181 }
@@ -174,6 +186,9 @@ def _register_picked_tomogram_use_diameter(message: dict, _db: Session):
174186 _transport_object .send (
175187 "processing_recipe" , zocalo_message , new_connection = True
176188 )
189+ feedback_params .next_job += 2
190+ _db .add (feedback_params )
191+ _db .commit ()
177192 else :
178193 # If not enough particles then save the new sizes
179194 particle_list = message .get ("particle_diameters" )
0 commit comments