Skip to content

Commit 577044f

Browse files
Update grid squares before inserting foil holes (#485)
1 parent 1db4ee4 commit 577044f

File tree

2 files changed

+57
-4
lines changed

2 files changed

+57
-4
lines changed

src/murfey/client/contexts/spa_metadata.py

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@
66
import xmltodict
77

88
from murfey.client.context import Context
9-
from murfey.client.contexts.spa import _get_source
9+
from murfey.client.contexts.spa import _file_transferred_to, _get_source
1010
from murfey.client.instance_environment import MurfeyInstanceEnvironment, SampleInfo
1111
from murfey.util import authorised_requests, capture_post, get_machine_config_client
12-
from murfey.util.spa_metadata import FoilHoleInfo, get_grid_square_atlas_positions
12+
from murfey.util.spa_metadata import (
13+
FoilHoleInfo,
14+
get_grid_square_atlas_positions,
15+
grid_square_data,
16+
)
1317

1418
logger = logging.getLogger("murfey.client.contexts.spa_metadata")
1519

@@ -228,6 +232,40 @@ def post_transfer(
228232
)
229233
return
230234
visitless_source = str(visitless_source_images_dirs[-1])
235+
236+
if fh_positions:
237+
gs_url = f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{gs_name}"
238+
gs_info = grid_square_data(
239+
transferred_file,
240+
int(gs_name),
241+
)
242+
metadata_source = Path(
243+
(
244+
"/".join(Path(visitless_source).parts[:-2])
245+
+ f"/{environment.visit}/"
246+
+ Path(visitless_source).parts[-2]
247+
)[1:]
248+
)
249+
image_path = (
250+
_file_transferred_to(
251+
environment, metadata_source, Path(gs_info.image)
252+
)
253+
if gs_info.image
254+
else ""
255+
)
256+
capture_post(
257+
gs_url,
258+
json={
259+
"tag": visitless_source,
260+
"readout_area_x": gs_info.readout_area_x,
261+
"readout_area_y": gs_info.readout_area_y,
262+
"thumbnail_size_x": gs_info.thumbnail_size_x,
263+
"thumbnail_size_y": gs_info.thumbnail_size_y,
264+
"pixel_size": gs_info.pixel_size,
265+
"image": str(image_path),
266+
},
267+
)
268+
231269
for fh, fh_data in fh_positions.items():
232270
capture_post(
233271
f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{gs_name}/foil_hole",

src/murfey/workflows/spa/flush_spa_preprocess.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,20 @@ def register_grid_square(
5757
grid_square.y_stage_position = (
5858
grid_square_params.y_stage_position or grid_square.y_stage_position
5959
)
60+
grid_square.readout_area_x = (
61+
grid_square_params.readout_area_x or grid_square.readout_area_x
62+
)
63+
grid_square.readout_area_y = (
64+
grid_square_params.readout_area_y or grid_square.readout_area_y
65+
)
66+
grid_square.thumbnail_size_x = (
67+
grid_square_params.thumbnail_size_x or grid_square.thumbnail_size_x
68+
)
69+
grid_square.thumbnail_size_y = (
70+
grid_square_params.thumbnail_size_y or grid_square.thumbnail_size_y
71+
)
72+
grid_square.pixel_size = grid_square_params.pixel_size or grid_square.pixel_size
73+
grid_square.image = grid_square_params.image or grid_square.image
6074
if _transport_object:
6175
_transport_object.do_update_grid_square(grid_square.id, grid_square_params)
6276
except Exception:
@@ -198,12 +212,13 @@ def _grid_square_metadata_file(f: Path, grid_square: int) -> Optional[Path]:
198212
"""Search through metadata directories to find the required grid square dm"""
199213
raw_dir = f.parent.parent.parent
200214
metadata_dirs = raw_dir.glob("metadata*")
215+
gs_path = None
201216
for md_dir in metadata_dirs:
202217
gs_path = md_dir / f"Metadata/GridSquare_{grid_square}.dm"
203218
if gs_path.is_file():
204219
return gs_path
205-
logger.error(f"Could not determine grid square metadata path for {f}")
206-
return None
220+
logger.error(f"Grid square metadata path {gs_path} does not exist for {f}")
221+
return gs_path
207222

208223

209224
def _flush_position_analysis(

0 commit comments

Comments
 (0)