|
@ -0,0 +1,149 @@ |
|
|
|
|
|
""" |
|
|
|
|
|
Legacy class for backwards compatibility |
|
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
import warnings |
|
|
|
|
|
|
|
|
|
|
|
from nd2reader import ND2Reader |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Nd2(object): |
|
|
|
|
|
""" Legacy Nd2 object for backwards compatibility. """ |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, filename): |
|
|
|
|
|
warnings.warn( |
|
|
|
|
|
"The 'Nd2' class is deprecated, please consider using the new ND2Reader interface which uses pims.", |
|
|
|
|
|
DeprecationWarning) |
|
|
|
|
|
|
|
|
|
|
|
self.reader = ND2Reader(filename) |
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self): |
|
|
|
|
|
return "\n".join(["<Deprecated ND2 %s>" % self.reader.filename, |
|
|
|
|
|
"Created: %s" % (self.date if self.date is not None else "Unknown"), |
|
|
|
|
|
"Image size: %sx%s (HxW)" % (self.height, self.width), |
|
|
|
|
|
"Frames: %s" % len(self.frames), |
|
|
|
|
|
"Channels: %s" % ", ".join(["%s" % str(channel) for channel in self.channels]), |
|
|
|
|
|
"Fields of View: %s" % len(self.fields_of_view), |
|
|
|
|
|
"Z-Levels: %s" % len(self.z_levels) |
|
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
def __enter__(self): |
|
|
|
|
|
return self |
|
|
|
|
|
|
|
|
|
|
|
def __exit__(self, exc_type, exc_val, exc_tb): |
|
|
|
|
|
if self.reader is not None: |
|
|
|
|
|
self.reader.close() |
|
|
|
|
|
|
|
|
|
|
|
def __len__(self): |
|
|
|
|
|
return len(self.reader) |
|
|
|
|
|
|
|
|
|
|
|
def __getitem__(self, item): |
|
|
|
|
|
return self.reader[item] |
|
|
|
|
|
|
|
|
|
|
|
def select(self, fields_of_view=None, channels=None, z_levels=None, start=0, stop=None): |
|
|
|
|
|
""" |
|
|
|
|
|
Select images based on criteria. |
|
|
|
|
|
Args: |
|
|
|
|
|
fields_of_view: the fields of view |
|
|
|
|
|
channels: the color channels |
|
|
|
|
|
z_levels: the z levels |
|
|
|
|
|
start: the starting frame |
|
|
|
|
|
stop: the last frame |
|
|
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
|
|
ND2Reader: Sliced ND2Reader which contains the frames |
|
|
|
|
|
""" |
|
|
|
|
|
if stop is None: |
|
|
|
|
|
stop = len(self.frames) |
|
|
|
|
|
|
|
|
|
|
|
return self.reader[start:stop] |
|
|
|
|
|
|
|
|
|
|
|
def get_image(self, frame_number, field_of_view, channel_name, z_level): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Returns the specified image from the ND2Reader class. |
|
|
|
|
|
Args: |
|
|
|
|
|
frame_number: the frame number |
|
|
|
|
|
field_of_view: the field of view number |
|
|
|
|
|
channel_name: the name of the color channel |
|
|
|
|
|
z_level: the z level number |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.parser.get_image_by_attributes(frame_number, field_of_view, channel_name, z_level, |
|
|
|
|
|
self.height, self.width) |
|
|
|
|
|
|
|
|
|
|
|
def close(self): |
|
|
|
|
|
"""Closes the ND2Reader |
|
|
|
|
|
""" |
|
|
|
|
|
if self.reader is not None: |
|
|
|
|
|
self.reader.close() |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def height(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches the height of the image. |
|
|
|
|
|
Returns: |
|
|
|
|
|
int: the pixel height of the image |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["height"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def width(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches the width of the image. |
|
|
|
|
|
Returns: |
|
|
|
|
|
int: the pixel width of the image |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["width"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def z_levels(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches the available z levels. |
|
|
|
|
|
Returns: |
|
|
|
|
|
list: z levels. |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["z_levels"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def fields_of_view(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches the fields of view. |
|
|
|
|
|
Returns: |
|
|
|
|
|
list: fields of view. |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["fields_of_view"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def channels(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches all color channels. |
|
|
|
|
|
Returns: |
|
|
|
|
|
list: the color channels. |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["channels"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def frames(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches all frames. |
|
|
|
|
|
Returns: |
|
|
|
|
|
list: list of frames |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["frames"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def date(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches the acquisition date. |
|
|
|
|
|
Returns: |
|
|
|
|
|
string: the date |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["date"] |
|
|
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
|
def pixel_microns(self): |
|
|
|
|
|
""" |
|
|
|
|
|
Deprecated. Fetches the amount of microns per pixel. |
|
|
|
|
|
Returns: |
|
|
|
|
|
float: microns per pixel |
|
|
|
|
|
""" |
|
|
|
|
|
return self.reader.metadata["pixel_microns"] |