Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/murfey/client/analyser.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from murfey.client.tui.forms import FormDependency
from murfey.util.client import Observer, get_machine_config_client
from murfey.util.mdoc import get_block
from murfey.util.models import PreprocessingParametersTomo, ProcessingParametersSPA
from murfey.util.models import ProcessingParametersSPA, ProcessingParametersTomo

logger = logging.getLogger("murfey.client.analyser")

Expand Down Expand Up @@ -65,7 +65,7 @@
self._environment = environment
self._force_mdoc_metadata = force_mdoc_metadata
self.parameters_model: (
Type[ProcessingParametersSPA] | Type[PreprocessingParametersTomo] | None
Type[ProcessingParametersSPA] | Type[ProcessingParametersTomo] | None
) = None

self.queue: queue.Queue = queue.Queue()
Expand Down Expand Up @@ -183,7 +183,7 @@
if not self._context:
logger.info("Acquisition software: tomo")
self._context = TomographyContext("tomo", self._basepath)
self.parameters_model = PreprocessingParametersTomo
self.parameters_model = ProcessingParametersTomo
return True

# Files with these suffixes belong to the serial EM tomography workflow
Expand All @@ -207,7 +207,7 @@
):
return False
self._context = TomographyContext("serialem", self._basepath)
self.parameters_model = PreprocessingParametersTomo
self.parameters_model = ProcessingParametersTomo

Check warning on line 210 in src/murfey/client/analyser.py

View check run for this annotation

Codecov / codecov/patch

src/murfey/client/analyser.py#L210

Added line #L210 was not covered by tests
return True
return False

Expand Down
6 changes: 0 additions & 6 deletions src/murfey/client/contexts/tomo.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
get_machine_config_client,
)
from murfey.util.mdoc import get_block, get_global_data, get_num_blocks
from murfey.util.tomo import midpoint

logger = logging.getLogger("murfey.client.contexts.tomo")

Expand Down Expand Up @@ -72,7 +71,6 @@ class TomographyContext(Context):
ProcessingParameter(
"dose_per_frame", "Dose Per Frame (e- / Angstrom^2 / frame)", default=1
),
ProcessingParameter("manual_tilt_offset", "Tilt Offset", default=0),
ProcessingParameter("gain_ref", "Gain Reference"),
ProcessingParameter("eer_fractionation", "EER Fractionation", default=20),
]
Expand Down Expand Up @@ -570,7 +568,6 @@ def gather_metadata(
if environment
else None
)
metadata["manual_tilt_offset"] = 0
metadata["source"] = str(self._basepath)
except KeyError:
return OrderedDict({})
Expand Down Expand Up @@ -631,9 +628,6 @@ def gather_metadata(
if environment
else None
)
mdoc_metadata["manual_tilt_offset"] = -midpoint(
[float(b["TiltAngle"]) for b in blocks]
)
mdoc_metadata["source"] = str(self._basepath)
mdoc_metadata["tag"] = str(self._basepath)
mdoc_metadata["tilt_series_tag"] = metadata_file.stem
Expand Down
8 changes: 1 addition & 7 deletions src/murfey/client/multigrid_control.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,12 +410,6 @@ def _start_dc(self, json, from_form: bool = False):
source = Path(json["source"])
context = self.analysers[source]._context
if isinstance(context, TomographyContext):
if from_form:
capture_post(
f"{self._environment.url.geturl()}/clients/{self._environment.client_id}/tomography_processing_parameters",
json=json,
)

source = Path(json["source"])
context.register_tomography_data_collections(
file_extension=json["file_extension"],
Expand Down Expand Up @@ -443,7 +437,7 @@ def _start_dc(self, json, from_form: bool = False):
eer_fractionation_file = eer_response.json()["eer_fractionation_file"]
json.update({"eer_fractionation_file": eer_fractionation_file})
capture_post(
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}/tomography_preprocessing_parameters",
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}/tomography_processing_parameters",
json=json,
)
capture_post(
Expand Down
2 changes: 1 addition & 1 deletion src/murfey/client/tui/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,7 @@ def _start_dc(self, json, from_form: bool = False):
eer_fractionation_file = eer_response.json()["eer_fractionation_file"]
json.update({"eer_fractionation_file": eer_fractionation_file})
requests.post(
f"{self.app._environment.url.geturl()}/sessions/{self.app._environment.murfey_session}/tomography_preprocessing_parameters",
f"{self.app._environment.url.geturl()}/sessions/{self.app._environment.murfey_session}/tomography_processing_parameters",
json=json,
)
capture_post(
Expand Down
12 changes: 5 additions & 7 deletions src/murfey/client/tui/screens.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
from murfey.client.tui.forms import FormDependency
from murfey.util import posix_path
from murfey.util.client import capture_post, get_machine_config_client, read_config
from murfey.util.models import PreprocessingParametersTomo, ProcessingParametersSPA
from murfey.util.models import ProcessingParametersSPA, ProcessingParametersTomo

log = logging.getLogger("murfey.tui.screens")

Expand Down Expand Up @@ -464,7 +464,7 @@
def _write_params(
self,
params: dict | None = None,
model: PreprocessingParametersTomo | ProcessingParametersSPA | None = None,
model: ProcessingParametersTomo | ProcessingParametersSPA | None = None,
):
if params:
try:
Expand All @@ -474,9 +474,9 @@
for k in analyser._context.user_params + analyser._context.metadata_params:
self.app.query_one("#info").write(f"{k.label}: {params.get(k.name)}")
self.app._start_dc(params)
if model == PreprocessingParametersTomo:
if model == ProcessingParametersTomo:
requests.post(
f"{self.app._environment.url.geturl()}/sessions/{self.app._environment.murfey_session}/tomography_preprocessing_parameters",
f"{self.app._environment.url.geturl()}/sessions/{self.app._environment.murfey_session}/tomography_processing_parameters",
json=params,
)
elif model == ProcessingParametersSPA:
Expand Down Expand Up @@ -1157,9 +1157,7 @@
def on_button_pressed(self, event):
if self.app._multigrid and self.app._processing_enabled:
if self._context == TomographyContext:
valid = validate_form(
self._user_params, PreprocessingParametersTomo.Base
)
valid = validate_form(self._user_params, ProcessingParametersTomo.Base)

Check warning on line 1160 in src/murfey/client/tui/screens.py

View check run for this annotation

Codecov / codecov/patch

src/murfey/client/tui/screens.py#L1160

Added line #L1160 was not covered by tests
else:
valid = validate_form(self._user_params, ProcessingParametersSPA.Base)
if not valid:
Expand Down
19 changes: 5 additions & 14 deletions src/murfey/server/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,19 +189,10 @@
)


def get_tomo_proc_params(pj_id: int, *args) -> db.TomographyProcessingParameters:
def get_tomo_preproc_params(dcg_id: int, *args) -> db.TomographyProcessingParameters:
Comment thread
stephen-riggs marked this conversation as resolved.
Outdated
results = murfey_db.exec(
select(db.TomographyProcessingParameters).where(
db.TomographyProcessingParameters.pj_id == pj_id
)
).one()
return results


def get_tomo_preproc_params(dcg_id: int, *args) -> db.TomographyPreprocessingParameters:
results = murfey_db.exec(
select(db.TomographyPreprocessingParameters).where(
db.TomographyPreprocessingParameters.dcg_id == dcg_id
db.TomographyProcessingParameters.dcg_id == dcg_id
)
).one()
return results
Expand Down Expand Up @@ -2534,11 +2525,11 @@
.where(db.ProcessingJob.recipe == "em-tomo-preprocess")
).one()
if not murfey_db.exec(
select(func.count(db.TomographyPreprocessingParameters.dcg_id)).where(
db.TomographyPreprocessingParameters.dcg_id == collected_ids[0].id
select(func.count(db.TomographyProcessingParameters.dcg_id)).where(
db.TomographyProcessingParameters.dcg_id == collected_ids[0].id
)
).one():
params = db.TomographyPreprocessingParameters(
params = db.TomographyProcessingParameters(

Check warning on line 2532 in src/murfey/server/__init__.py

View check run for this annotation

Codecov / codecov/patch

src/murfey/server/__init__.py#L2532

Added line #L2532 was not covered by tests
dcg_id=collected_ids[0].id,
pixel_size=float(message["pixel_size_on_image"]) * 10**10,
voltage=message["voltage"],
Expand Down
41 changes: 2 additions & 39 deletions src/murfey/server/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@
SPARelionParameters,
Tilt,
TiltSeries,
TomographyProcessingParameters,
)
from murfey.util.models import (
BLSampleImageParameters,
Expand All @@ -86,7 +85,6 @@
GridSquareParameters,
MillingParameters,
PostInfo,
PreprocessingParametersTomo,
ProcessingJobParameters,
ProcessingParametersSPA,
ProcessingParametersTomo,
Expand Down Expand Up @@ -618,9 +616,9 @@ def post_foil_hole(
return register_foil_hole(session_id, gs_name, foil_hole_params, db)


@router.post("/sessions/{session_id}/tomography_preprocessing_parameters")
@router.post("/sessions/{session_id}/tomography_processing_parameters")
def register_tomo_preproc_params(
session_id: MurfeySessionID, proc_params: PreprocessingParametersTomo, db=murfey_db
session_id: MurfeySessionID, proc_params: ProcessingParametersTomo, db=murfey_db
):
session_processing_parameters = db.exec(
select(SessionProcessingParameters).where(
Expand All @@ -643,41 +641,6 @@ def register_tomo_preproc_params(
_transport_object.send(_transport_object.feedback_queue, zocalo_message)


@router.post("/sessions/{session_id}/tomography_processing_parameters")
def register_tomo_proc_params(
session_id: MurfeySessionID, proc_params: ProcessingParametersTomo, db=murfey_db
):
log.info(
f"Registering tomography processing parameters {sanitise(proc_params.tag)}, {sanitise(proc_params.tilt_series_tag)}"
)
collected_ids = db.exec(
select(
DataCollectionGroup,
DataCollection,
ProcessingJob,
AutoProcProgram,
)
.where(DataCollectionGroup.session_id == session_id)
.where(DataCollectionGroup.tag == proc_params.tag)
.where(DataCollection.tag == proc_params.tilt_series_tag)
.where(DataCollection.dcg_id == DataCollectionGroup.id)
.where(ProcessingJob.dc_id == DataCollection.id)
.where(AutoProcProgram.pj_id == ProcessingJob.id)
.where(ProcessingJob.recipe == "em-tomo-preprocess")
).one()
if not db.exec(
select(func.count(TomographyProcessingParameters.pj_id)).where(
TomographyProcessingParameters.pj_id == collected_ids[2].id
)
).one():
tomogram_params = TomographyProcessingParameters(
pj_id=collected_ids[2].id, manual_tilt_offset=proc_params.manual_tilt_offset
)
db.add(tomogram_params)
db.commit()
db.close()


class Tag(BaseModel):
tag: str

Expand Down
61 changes: 5 additions & 56 deletions src/murfey/server/demo_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
SPARelionParameters,
Tilt,
TiltSeries,
TomographyPreprocessingParameters,
TomographyProcessingParameters,
)
from murfey.util.models import (
Expand All @@ -70,7 +69,6 @@
GainReference,
GridSquareParameters,
PostInfo,
PreprocessingParametersTomo,
ProcessingJobParameters,
ProcessingParametersSPA,
ProcessingParametersTomo,
Expand Down Expand Up @@ -476,9 +474,9 @@
db.commit()


@router.post("/sessions/{session_id}/tomography_preprocessing_parameters")
@router.post("/sessions/{session_id}/tomography_processing_parameters")

Check warning on line 477 in src/murfey/server/demo_api.py

View check run for this annotation

Codecov / codecov/patch

src/murfey/server/demo_api.py#L477

Added line #L477 was not covered by tests
def register_tomo_preproc_params(
session_id: MurfeySessionID, proc_params: PreprocessingParametersTomo, db=murfey_db
session_id: MurfeySessionID, proc_params: ProcessingParametersTomo, db=murfey_db
):
log.info(
f"Registering tomography preprocessing parameters {sanitise(proc_params.tag)}, {sanitise(proc_params.tilt_series_tag)}"
Expand All @@ -499,68 +497,19 @@
.where(ProcessingJob.recipe == "em-tomo-preprocess")
).one()
if not db.exec(
select(func.count(TomographyPreprocessingParameters.dcg_id)).where(
TomographyPreprocessingParameters.dcg_id == collected_ids[0].id
select(func.count(TomographyProcessingParameters.dcg_id)).where(
TomographyProcessingParameters.dcg_id == collected_ids[0].id
)
).one():
params = TomographyPreprocessingParameters(
params = TomographyProcessingParameters(

Check warning on line 504 in src/murfey/server/demo_api.py

View check run for this annotation

Codecov / codecov/patch

src/murfey/server/demo_api.py#L504

Added line #L504 was not covered by tests
dcg_id=collected_ids[0].id,
pixel_size=proc_params.pixel_size_on_image,
dose_per_frame=proc_params.dose_per_frame,
gain_ref=proc_params.gain_ref,
motion_corr_binning=proc_params.motion_corr_binning,
voltage=proc_params.voltage,
# manual_tilt_offset=proc_params.manual_tilt_offset,
)
db.add(params)
if not db.exec(
select(func.count(TomographyProcessingParameters.pj_id)).where(
TomographyProcessingParameters.pj_id == collected_ids[2].id
)
).one():
tomogram_params = TomographyProcessingParameters(
pj_id=collected_ids[2].id, manual_tilt_offset=proc_params.manual_tilt_offset
)
db.add(tomogram_params)
db.commit()
db.close()


@router.post("/clients/{client_id}/tomography_processing_parameters")
def register_tomo_proc_params(
client_id: int, proc_params: ProcessingParametersTomo, db=murfey_db
):
client = db.exec(
select(ClientEnvironment).where(ClientEnvironment.client_id == client_id)
).one()
session_id = client.session_id
log.info(
f"Registering tomography processing parameters {sanitise(proc_params.tag)}, {sanitise(proc_params.tilt_series_tag)}, {session_id}"
)
collected_ids = db.exec(
select(
DataCollectionGroup,
DataCollection,
ProcessingJob,
AutoProcProgram,
)
.where(DataCollectionGroup.session_id == session_id)
.where(DataCollectionGroup.tag == proc_params.tag)
.where(DataCollection.tag == proc_params.tilt_series_tag)
.where(DataCollection.dcg_id == DataCollectionGroup.id)
.where(ProcessingJob.dc_id == DataCollection.id)
.where(AutoProcProgram.pj_id == ProcessingJob.id)
.where(ProcessingJob.recipe == "em-tomo-preprocess")
).one()
if not db.exec(
select(func.count(TomographyProcessingParameters.pj_id)).where(
TomographyProcessingParameters.pj_id == collected_ids[2].id
)
).one():
tomogram_params = TomographyProcessingParameters(
pj_id=collected_ids[2].id, manual_tilt_offset=proc_params.manual_tilt_offset
)
db.add(tomogram_params)
db.commit()
db.close()

Expand Down
18 changes: 2 additions & 16 deletions src/murfey/util/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ class DataCollectionGroup(SQLModel, table=True): # type: ignore
back_populates="data_collection_group",
sa_relationship_kwargs={"cascade": "delete"},
)
tomography_preprocessing_parameters: List["TomographyPreprocessingParameters"] = (
tomography_processing_parameters: List["TomographyProcessingParameters"] = (
Relationship(
back_populates="data_collection_group",
sa_relationship_kwargs={"cascade": "delete"},
Expand Down Expand Up @@ -448,12 +448,6 @@ class ProcessingJob(SQLModel, table=True): # type: ignore
spa_feedback_parameters: List["SPAFeedbackParameters"] = Relationship(
back_populates="processing_job", sa_relationship_kwargs={"cascade": "delete"}
)
tomography_processing_parameters: List["TomographyProcessingParameters"] = (
Relationship(
back_populates="processing_job",
sa_relationship_kwargs={"cascade": "delete"},
)
)
ctf_parameters: List["CtfParameters"] = Relationship(
back_populates="processing_job", sa_relationship_kwargs={"cascade": "delete"}
)
Expand Down Expand Up @@ -499,7 +493,7 @@ class SelectionStash(SQLModel, table=True): # type: ignore
)


class TomographyPreprocessingParameters(SQLModel, table=True): # type: ignore
class TomographyProcessingParameters(SQLModel, table=True): # type: ignore
dcg_id: int = Field(primary_key=True, foreign_key="datacollectiongroup.id")
pixel_size: float
dose_per_frame: float
Expand All @@ -510,14 +504,6 @@ class TomographyPreprocessingParameters(SQLModel, table=True): # type: ignore
motion_corr_binning: int = 1
gain_ref: Optional[str] = None
data_collection_group: Optional[DataCollectionGroup] = Relationship(
back_populates="tomography_preprocessing_parameters"
)


class TomographyProcessingParameters(SQLModel, table=True): # type: ignore
pj_id: int = Field(primary_key=True, foreign_key="processingjob.id")
manual_tilt_offset: int
processing_job: Optional[ProcessingJob] = Relationship(
back_populates="tomography_processing_parameters"
)

Expand Down
Loading