99
1010import json
1111import logging
12+ import re
1213import traceback
1314from pathlib import Path
1415from typing import Literal , Optional
@@ -114,7 +115,7 @@ def run(message: dict, murfey_db: Session, demo: bool = False) -> bool:
114115 murfey_db .commit ()
115116
116117 # Iteratively register the output image stacks
117- for channel , output_file in result .output_files .items ():
118+ for c , ( channel , output_file ) in enumerate ( result .output_files .items () ):
118119 clem_img_stk : CLEMImageStack = get_db_entry (
119120 db = murfey_db ,
120121 table = CLEMImageStack ,
@@ -133,8 +134,27 @@ def run(message: dict, murfey_db: Session, demo: bool = False) -> bool:
133134
134135 # Register and link parent TIFF files if present
135136 if result .parent_tiffs :
136- tiff_files_to_register = []
137- for file in result .parent_tiffs [channel ]:
137+ seed_file = result .parent_tiffs [channel ][0 ]
138+ if c == 0 :
139+ # Load list of files to register from seed file
140+ series_identifier = seed_file .stem .split ("--" )[0 ] + "--"
141+ tiff_list = list (
142+ seed_file .parent .glob (f"{ series_identifier } --" )
143+ )
144+
145+ # Load TIFF files by colour channel if "--C" in file stem
146+ match = re .search (r"--C[\d]{2,3}" , seed_file .stem )
147+ tiff_file_subset = [
148+ file
149+ for file in tiff_list
150+ if file .stem .startswith (series_identifier )
151+ and (match .group (0 ) in file .stem if match else True )
152+ ]
153+ tiff_file_subset .sort ()
154+
155+ # Register TIFF file subset
156+ clem_tiff_files = []
157+ for file in tiff_file_subset :
138158 clem_tiff_file : CLEMTIFFFile = get_db_entry (
139159 db = murfey_db ,
140160 table = CLEMTIFFFile ,
@@ -146,8 +166,10 @@ def run(message: dict, murfey_db: Session, demo: bool = False) -> bool:
146166 clem_tiff_file .associated_metadata = clem_metadata
147167 clem_tiff_file .child_series = clem_img_series
148168 clem_tiff_file .child_stack = clem_img_stk
149- tiff_files_to_register .append (clem_tiff_file )
150- murfey_db .add_all (tiff_files_to_register )
169+
170+ clem_tiff_files .append (clem_tiff_file )
171+
172+ murfey_db .add_all (clem_tiff_files )
151173 murfey_db .commit ()
152174
153175 logger .info (
0 commit comments