Skip to content

Commit 7ed3fb7

Browse files
committed
Add feedback params for tomo
1 parent 7208088 commit 7ed3fb7

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/murfey/server/feedback.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2364,7 +2364,18 @@ def feedback_callback(header: dict, message: dict, _db=murfey_db) -> None:
23642364
gain_ref=message["gain_ref"],
23652365
eer_fractionation_file=message["eer_fractionation_file"],
23662366
)
2367+
feedback_params = db.ClassificationFeedbackParameters(
2368+
pj_id=collected_ids[2].id,
2369+
estimate_particle_diameter=True,
2370+
hold_class2d=False,
2371+
hold_class3d=False,
2372+
class_selection_score=0,
2373+
star_combination_job=0,
2374+
initial_model="",
2375+
next_job=0,
2376+
)
23672377
_db.add(params)
2378+
_db.add(feedback_params)
23682379
_db.commit()
23692380
_db.close()
23702381
if murfey.server._transport_object:

src/murfey/workflows/tomo/picking.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from murfey.util.config import get_machine_config
1111
from 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

Comments
 (0)