Skip to content

Commit 8f7f57e

Browse files
committed
Replace the second id with a tag
1 parent 2e8dfcb commit 8f7f57e

File tree

2 files changed

+46
-9
lines changed

2 files changed

+46
-9
lines changed

src/murfey/server/__init__.py

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

src/murfey/util/db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,10 +707,10 @@ class Class3D(SQLModel, table=True): # type: ignore
707707

708708

709709
class RefineParameters(SQLModel, table=True): # type: ignore
710+
tag: str = Field(primary_key=True)
710711
refine_dir: str = Field(primary_key=True)
711712
pj_id: int = Field(primary_key=True, foreign_key="processingjob.id")
712713
murfey_id: int = Field(foreign_key="murfeyledger.id")
713-
symmetry_murfey_id: int = Field(foreign_key="murfeyledger.id")
714714
class3d_dir: str
715715
class_number: int
716716
run: bool = False

0 commit comments

Comments
 (0)