Skip to content

Commit 5e6b5be

Browse files
committed
Adjust logic to register only the latest FIB atlas acquired for a FIB sample slot
1 parent 84ad3b4 commit 5e6b5be

1 file changed

Lines changed: 34 additions & 19 deletions

File tree

src/murfey/workflows/fib/register_atlas.py

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from sqlmodel import Session, select
1010

1111
import murfey.util.db as MurfeyDB
12+
from murfey.util.fib import number_from_name
1213

1314
logger = logging.getLogger("murfey.workflows.fib.register_atlas")
1415

@@ -151,34 +152,48 @@ def _register_fib_imaging_site(
151152
Register FIB atlas in Murfey database or update existing entry.
152153
"""
153154
# Create new entry if one doesn't already exist
154-
if not (
155+
if (
155156
fib_imaging_site := murfey_db.exec(
156157
select(MurfeyDB.ImagingSite)
157158
.where(MurfeyDB.ImagingSite.session_id == session_id)
158-
.where(MurfeyDB.ImagingSite.image_path == str(metadata.file))
159+
.where(MurfeyDB.ImagingSite.site_name == metadata.site_name)
160+
.where(MurfeyDB.ImagingSite.data_type == "atlas")
159161
).one_or_none()
160-
):
162+
) is None:
161163
fib_imaging_site = MurfeyDB.ImagingSite(
162164
session_id=session_id,
165+
site_name=metadata.site_name,
163166
image_path=str(metadata.file),
164167
data_type="atlas",
165168
)
166-
# Add/update entries
167-
fib_imaging_site.site_name = metadata.site_name
168-
fib_imaging_site.pos_x = metadata.pos_x
169-
fib_imaging_site.pos_y = metadata.pos_y
170-
fib_imaging_site.pos_z = metadata.pos_z
171-
fib_imaging_site.rotation = float(np.rad2deg(metadata.rotation))
172-
fib_imaging_site.tilt_alpha = float(np.rad2deg(metadata.tilt_alpha))
173-
fib_imaging_site.tilt_beta = float(np.rad2deg(metadata.tilt_beta))
174-
fib_imaging_site.len_x = metadata.len_x
175-
fib_imaging_site.len_y = metadata.len_y
176-
fib_imaging_site.image_pixels_x = metadata.pixels_x
177-
fib_imaging_site.image_pixels_y = metadata.pixels_y
178-
fib_imaging_site.image_pixel_size = metadata.pixel_size
179-
180-
murfey_db.add(fib_imaging_site)
181-
murfey_db.commit()
169+
170+
# Check if the entry is new or newer than the current stored one
171+
incoming_number = number_from_name(metadata.file.stem)
172+
# Handle empty string
173+
if not fib_imaging_site.image_path:
174+
current_number = 0
175+
# Read 'maps' atlases in one way
176+
elif "maps" in (curr_path := Path(fib_imaging_site.image_path)).parts:
177+
current_number = number_from_name(curr_path.stem)
178+
else:
179+
current_number = 0
180+
# Update if incoming one is newer
181+
if incoming_number > current_number:
182+
fib_imaging_site.image_path = str(metadata.file)
183+
fib_imaging_site.pos_x = metadata.pos_x
184+
fib_imaging_site.pos_y = metadata.pos_y
185+
fib_imaging_site.pos_z = metadata.pos_z
186+
fib_imaging_site.rotation = float(np.rad2deg(metadata.rotation))
187+
fib_imaging_site.tilt_alpha = float(np.rad2deg(metadata.tilt_alpha))
188+
fib_imaging_site.tilt_beta = float(np.rad2deg(metadata.tilt_beta))
189+
fib_imaging_site.len_x = metadata.len_x
190+
fib_imaging_site.len_y = metadata.len_y
191+
fib_imaging_site.image_pixels_x = metadata.pixels_x
192+
fib_imaging_site.image_pixels_y = metadata.pixels_y
193+
fib_imaging_site.image_pixel_size = metadata.pixel_size
194+
195+
murfey_db.add(fib_imaging_site)
196+
murfey_db.commit()
182197

183198

184199
def run(

0 commit comments

Comments
 (0)