Utility functions

Check input quality

bigfish.stack.check_array(array, ndim=None, dtype=None, allow_nan=True)

Full safety check of an array.

Parameters:
arraynp.ndarray

Array to check.

ndimint or List[int]

Number of dimensions expected.

dtypetype or List[type]

Types expected.

allow_nanbool

Allow NaN values or not.

Returns:
_bool

Assert if the array is well formatted.

bigfish.stack.check_df(df, features=None, features_without_nan=None)

Full safety check of a dataframe.

Parameters:
dfpd.DataFrame or pd.Series

Dataframe or Series to check.

featuresList[str]

Names of the expected features.

features_without_nanList[str]

Names of the features to check for the missing values

Returns:
_bool

Assert if the dataframe is well formatted.

bigfish.stack.check_parameter(**kwargs)

Check dtype of the function’s parameters.

Parameters:
kwargsType or Tuple[Type]

Map of each parameter with its expected dtype.

Returns:
_bool

Assert if the array is well formatted.

bigfish.stack.check_range_value(array, min_=None, max_=None)

Check the support of the array.

Parameters:
arraynp.ndarray

Array to check.

min_int

Minimum value allowed.

max_int

Maximum value allowed.

Returns:
_bool

Assert if the array has the right range of values.


Get constant values

bigfish.stack.get_margin_value()

Return the margin pixel around a cell coordinate used to define its bounding box.

Returns:
_int

Margin value (in pixels).

bigfish.stack.get_eps_float32()

Return the epsilon value for a 32 bit float.

Returns:
_np.float32

Epsilon value.


Load and check stored data

bigfish.stack.load_and_save_url(remote_url, directory, filename=None)

Download remote data and save them

Parameters:
remote_urlstr

Remote url of the data to download.

directorystr

Directory to save the download content.

filenamestr

Filename of the object to save.

Returns:
pathstr

Path of the downloaded file.

bigfish.stack.check_hash(path, expected_hash)

Check hash value of a file.

Parameters:
pathstr

Path of the file to check.

expected_hashstr

Expected hash value.

Returns:
_bool

True if hash values match.

bigfish.stack.compute_hash(path)

Compute sha256 hash of a file.

Parameters:
pathstr

Path to read the file.

Returns:
sha256str

Hash value of the file.

bigfish.stack.check_input_data(input_directory, input_segmentation=False)

Check input images exists and download them if necessary.

Parameters:
input_directorystr

Path of the image directory.

input_segmentationbool

Check 2-d example images for segmentation.


Compute moving average

bigfish.stack.moving_average(array, n)

Compute a trailing average.

Parameters:
arraynp.ndarray

Array used to compute moving average.

nint

Window width of the moving average.

Returns:
resultsnp.ndarray

Moving average values.

bigfish.stack.centered_moving_average(array, n)

Compute a centered moving average.

Parameters:
arraynp.ndarray

Array used to compute moving average.

nint

Window width of the moving average.

Returns:
resultsnp.ndarray

Centered moving average values.


Convert pixels and nanometers

bigfish.detection.convert_spot_coordinates(spots, voxel_size)

Convert spots coordinates from pixel to nanometer.

Parameters:
spotsnp.ndarray

Coordinates of the detected spots with shape (nb_spots, 3) or (nb_spots, 2).

voxel_sizeint, float, Tuple(int, float) or List(int, float)

Size of a voxel, in nanometer. One value per spatial dimension (zyx or yx dimensions). If it’s a scalar, the same value is applied to every dimensions.

Returns:
spots_nanometernp.ndarray

Coordinates of the detected spots with shape (nb_spots, 3) or (nb_spots, 3), in nanometer.

bigfish.detection.get_object_radius_pixel(voxel_size_nm, object_radius_nm, ndim)

Convert the object radius in pixel.

When the object considered is a spot this value can be interpreted as the standard deviation of the spot PSF, in pixel. For any object modelled with a gaussian signal, this value can be interpreted as the standard deviation of the gaussian.

Parameters:
voxel_size_nmint, float, Tuple(int, float) or List(int, float)

Size of a voxel, in nanometer. One value per spatial dimension (zyx or yx dimensions). If it’s a scalar, the same value is applied to every dimensions.

object_radius_nmint, float, Tuple(int, float) or List(int, float)

Radius of the object, in nanometer. One value per spatial dimension (zyx or yx dimensions). If it’s a scalar, the same radius is applied to every dimensions.

ndimint

Number of spatial dimension to consider.

Returns:
object_radius_pxTuple[float]

Radius of the object in pixel, one element per dimension (zyx or yx dimensions).

bigfish.detection.get_object_radius_nm(voxel_size_nm, object_radius_px, ndim)

Convert the object radius in nanometer.

When the object considered is a spot this value can be interpreted as the standard deviation of the spot PSF, in nanometer. For any object modelled with a gaussian signal, this value can be interpreted as the standard deviation of the gaussian.

Parameters:
voxel_size_nmint, float, Tuple(int, float) or List(int, float)

Size of a voxel, in nanometer. One value per spatial dimension (zyx or yx dimensions). If it’s a scalar, the same value is applied to every dimensions.

object_radius_pxint, float, Tuple(int, float) or List(int, float)

Radius of the object, in pixel. One value per spatial dimension (zyx or yx dimensions). If it’s a scalar, the same radius is applied to every dimensions.

ndimint

Number of spatial dimension to consider.

Returns:
object_radius_nmTuple[float]

Radius of the object in nanometer, one element per dimension (zyx or yx dimensions).


Extract a spot image

bigfish.detection.get_spot_volume(image, spot_z, spot_y, spot_x, radius_z, radius_yx)

Get a subimage of a detected spot in 3 dimensions.

Parameters:
imagenp.ndarray

Image with shape (z, y, x).

spot_zint or float

Coordinate of the detected spot along the z axis.

spot_yint or float

Coordinate of the detected spot along the y axis.

spot_xint or float

Coordinate of the detected spot along the x axis.

radius_zint or float

Radius in pixel of the detected spot, along the z axis.

radius_yxint or float

Radius in pixel of the detected spot, on the yx plan.

Returns:
image_spotnp.ndarray

Reference spot in 3-d.

_Tuple[int]

Lower zyx coordinates of the crop.

bigfish.detection.get_spot_surface(image, spot_y, spot_x, radius_yx)

Get a subimage of a detected spot in 2 dimensions.

Parameters:
imagenp.ndarray

Image with shape (y, x).

spot_yint or float

Coordinate of the detected spot along the y axis.

spot_xint or float

Coordinate of the detected spot along the x axis.

radius_yxint or float

Radius in pixel of the detected spot, on the yx plan.

Returns:
image_spotnp.ndarray

Reference spot in 2-d.

_Tuple[int]

Lower yx coordinates of the crop.


Format and save plots

bigfish.plot.save_plot(path_output, ext)

Save the plot.

Parameters:
path_outputstr

Path to save the image (without extension).

extstr or List[str]

Extension used to save the plot. If it is a list of strings, the plot will be saved several times.

bigfish.plot.get_minmax_values(tensor)

Get the minimum and maximum value of the image according to its dtype.

Parameters:
tensornp.ndarray

A 2-d, 3-d or 5-d tensor with shape (y, x), (z, y, x) or (r, c, z, y, x) respectively.

Returns:
vminint

Minimum value display in the plot.

vmaxint

Maximum value display in the plot.

bigfish.plot.create_colormap()

Create a shuffled colormap to display segmentation masks.

Returns:
colormapListedColormap object

Colormap for matplotlib.