aelefebv / nellie

Nellie: Automated organelle segmentation, tracking, and hierarchical feature extraction in 2D/3D live-cell microscopy
Other
30 stars 4 forks source link

Can't open .lif files #23

Open sofiaillescasb opened 3 months ago

sofiaillescasb commented 3 months ago

Hi! I have an issue where I can't open any .lif file, even though I installed napari-aicsimageio, when I try I get this error:


AttributeError Traceback (most recent call last) File ~\myenv\Lib\site-packages\nellie_napari\nellie_fileselect.py:383, in NellieFileSelect.select_filepath(self=) 380 return 381 self.single = True --> 383 self.initialize_single_file() self = <nellie_napari.nellie_fileselect.NellieFileSelect object at 0x000002694CEE08B0> 384 filename = os.path.basename(self.filepath) 385 show_info(f"Selected file: {filename}")

File ~\myenv\Lib\site-packages\nellie_napari\nellie_fileselect.py:263, in NellieFileSelect.initialize_single_file(self=) 261 dim_sizes, dim_order = self.check_manual_params() 262 # open the file and load its info --> 263 self.im_info = ImInfo(self.filepath, ch=self.nellie.processor.channel_input.value(), dimension_order=dim_order, dim_sizes=dim_sizes) self.im_info = None dim_sizes = None dim_order = '' self = <nellie_napari.nellie_fileselect.NellieFileSelect object at 0x000002694CEE08B0> self.filepath = 'C:/Users/killescas/Downloads/xyzt_test.lif' self.nellie = <nellie_napari.nellie_loader.NellieLoader object at 0x000002694A9CC430> self.nellie.processor.channel_input = <PyQt5.QtWidgets.QSpinBox object at 0x000002694CEE1360> self.nellie.processor = <nellie_napari.nellie_processor.NellieProcessor object at 0x000002694CEE1240> 264 self.nellie.im_info = self.im_info 265 self.dim_order = self.im_info.axes

File ~\myenv\Lib\site-packages\nellie\im_info\im_info.py:48, in ImInfo.init(self=, im_path='C:/Users/killescas/Downloads/xyzt_test.lif', output_dirpath=None, screenshot_dirpath=None, ch=0, dim_sizes=None, dimension_order='', output_suffix='') 45 self._load_metadata() 47 if self.dim_sizes is None: ---> 48 self._set_dim_sizes() self = <nellie.im_info.im_info.ImInfo object at 0x00000269558F1F10> 50 self.no_z = True 51 self.no_t = True

File ~\myenv\Lib\site-packages\nellie\im_info\im_info.py:215, in ImInfo._set_dim_sizes(self=) 213 self.metadata = {} 214 self.dim_sizes = {} --> 215 raise e

File ~\myenv\Lib\site-packages\nellie\im_info\im_info.py:187, in ImInfo._set_dim_sizes(self=) 183 logger.warning(f'File is an ImageJ type, but has weird metadata, ' 184 f'found dimension sizes: {self.dim_sizes}') 186 elif self.metadata_type is None: --> 187 self._get_tif_tag_metadata(self.metadata) self.metadata = {} self = <nellie.im_info.im_info.ImInfo object at 0x00000269558F1F10> 188 logger.warning(f'File is not an ImageJ or OME type, found dimension sizes: {self.dim_sizes}') 190 elif self.metadata_type == 'nd2':

File ~\myenv\Lib\site-packages\nellie\im_info\im_info.py:120, in ImInfo._get_tif_tag_metadata(self=, metadata=None) 119 def _get_tif_tag_metadata(self, metadata): --> 120 tag_names = {tag_value.name: tag_code for tag_code, tag_value in metadata.items()} metadata = None 122 if 'XResolution' in tag_names: 123 self.dim_sizes['X'] = metadata[tag_names['XResolution']].value[1] \ 124 / metadata[tag_names['XResolution']].value[0]

AttributeError: 'NoneType' object has no attribute 'items'

I can open yeast_3d_mitochondria.ome just fine.

aelefebv commented 3 months ago

Hi Sofia, thanks for the issue! I haven't set up support for .lif files yet. Can you send me an example one at austin.e.lefebvre+nellie@gmail.com? I'm happy to implement it.