diff --git a/imageviewer.py b/imageviewer.py index 34bb25731aabb716c4797095d886a72e853590bc..3b7fd876d4e8533d27776862150c743e75e02f73 100644 --- a/imageviewer.py +++ b/imageviewer.py @@ -6,7 +6,7 @@ import h5py import napari import numpy as np from agora.io.cells import Cells -from agora.io.metadata import dispatch_metadata_parser +from agora.io.metadata import parse_metadata from aliby.io.image import dispatch_image from aliby.tile.tiler import Tiler @@ -43,7 +43,8 @@ class BaseImageViewer(ABC): tiles_dict[ch] = tiles else: masks = [ - self.cells.at_time(tp, kind="mask").get(trap_id, []) for tp in tps + self.cells.at_time(tp, kind="mask").get(trap_id, []) + for tp in tps ] # some masks may be empty default_mask = [np.ones(self.cells.tile_size).astype(bool)] @@ -65,10 +66,13 @@ class BaseImageViewer(ABC): """Get uniquely labelled outlines for each cell time point.""" # get outlines for each time point outlines = [ - self.cells.at_time(tp, kind="edgemask").get(trap_id, []) for tp in tps + self.cells.at_time(tp, kind="edgemask").get(trap_id, []) + for tp in tps ] # get cell labels for each time point - cell_labels = [self.cells.labels_at_time(tp).get(trap_id, []) for tp in tps] + cell_labels = [ + self.cells.labels_at_time(tp).get(trap_id, []) for tp in tps + ] # generate one image with all cell outlines uniquely labelled per tile labelled_outlines = [ ( @@ -114,12 +118,16 @@ class BaseImageViewer(ABC): channels = list(tiles_dict.keys()) # put time series into one array with dimensions TCZYX ydim, xdim = tiles_dict[list(tiles_dict.keys())[0]][0].shape - ts_images = np.zeros((tps.size, len(tiles_dict), 1, ydim, xdim)).astype(int) + ts_images = np.zeros( + (tps.size, len(tiles_dict), 1, ydim, xdim) + ).astype(int) ts_labels = np.zeros((tps.size, 1, ydim, xdim)).astype(int) # make array of time series of tiles for ch_index, channel in enumerate(tiles_dict): for tp_index in range(tps.size): - ts_images[tp_index, ch_index, 0, ...] = tiles_dict[channel][tp_index] + ts_images[tp_index, ch_index, 0, ...] = tiles_dict[channel][ + tp_index + ] # make array of time series of outlines with no channels dimension for tp_index in range(tps.size): ts_labels[tp_index, 0, ...] = outlines[tp_index] @@ -145,7 +153,9 @@ class BaseImageViewer(ABC): tps = np.arange(self.cells.ntimepoints) elif type(tps) is int: tps = np.arange(tps) - ts_images, ts_labels, channels = self.get_data_for_viewing(trap_id, tps) + ts_images, ts_labels, channels = self.get_data_for_viewing( + trap_id, tps + ) # launch napari viewer = napari.Viewer() viewer.add_image( @@ -207,7 +217,7 @@ class RemoteImageViewer(BaseImageViewer): server_info = server_info or { k: self.attrs["parameters"]["general"][k] for k in self.credentials } - logfiles_meta = dispatch_metadata_parser(h5file_path.parent) + logfiles_meta = parse_metadata(h5file_path.parent) image_id = logfiles_meta.get("image_id") if image_id is None: with h5py.File(h5file_path, "r") as f: