
Measurement Module¶
flyqma.measurement
provides tools for quantifying reporter fluorescence intensity within individual cell nuclei.
Image Segmentation¶
Tools for detecting individual cell nuclei.
-
class
flyqma.measurement.segmentation.
Segmentation
(image, seed_kws={}, seg_kws={}, exclude_edges=True)[source]¶ Object for finding nuclear contours within an image.
Seed detection is performed by finding local maxima in a euclidean distance transform of the image foreground mask. Segmentation is achieved via the watershed method.
Attributes:
seeds (np.ndarray[float]) - seeds for segmentation, 2 x N
labels (2D np.ndarray[int]) - segment label mask, number denotes segment ID
segment_ids (1D np.ndarray[int]) - unique segment IDs, length N
cmap (matplotlib.colors.ColorMap) - segment ID colormap, length N+1
-
exclude_small_segments
(min_area=10)[source]¶ Exclude small segments.
Args:
min_area (float) - minimum contour area
-
static
find_maxima
(im, min_distance=1, num_peaks=inf)[source]¶ Find local maxima of euclidean distance transform.
Args:
im (np.ndarray[bool]) - 2D boolean foreground mask
min_distance (int) - minimum distance separating maxima, px
num_peaks (int) - maximum number of peaks
Returns:
seeds (np.ndarray[float]) - local maxima, shape (N, 2)
-
classmethod
get_seeds_from_distance
(mask, sigma=2, min_distance=1, num_peaks=inf)[source]¶ Seed detection via euclidean distance transform of binary map.
Args:
mask (nd.ndarray[bool]) - foreground mask
sigma (float) - smoothing applied to euclidean distance mask
min_distance (int) - minimum pixel distance between local maxima
num_peaks (int) - maximum number of local maxima
Returns:
seeds (dict) - {segment_id: (xpos, ypos)} pairs
-
classmethod
get_segment_mask
(im, seeds)[source]¶ Get mask for markers.
Args:
im (np.ndarray[float]) - image to be segmented
seeds (dict) - {segment_id: [x, y]} pairs
-
property
num_objects
¶ Number of unique objects in image.
-
Expression Measurement¶
Tools for measuring the properties of detected cell nuclei.
-
class
flyqma.measurement.measure.
Measurements
(im, labels)[source]¶ Object measures properties of labeled segments within an image.
Attributes:
colordepth (int) - number of color channels
segment_ids (np.ndarray[float]) - ordered segment labels
levels (dict) - {channel: np.ndarray[float]} - expression levels
std (dict) - {channel: np.ndarray[float]} - expression std. deviation
xpos (np.ndarray[float]) - segment centroid x-positions
ypos (np.ndarray[float]) - segment centroid y-positions
voxel_size (np.ndarray[float]) - segment voxel size
-
build_dataframe
()[source]¶ Build and return dataframe containing all measurements.
Returns:
measurements (pd.DataFrame) - measurement data
-
static
evaluate_centroids
(labels)[source]¶ Evaluate center of mass of each label.
Note: scipy returns centroids as (y, x) which are flipped to (x, y)
Args:
labels (np.ndarray[int]) - segment label mask
Returns:
center_of_mass (dict) - {segment_id: [xpos, ypos]} pairs
-
measure_centroids
(labels, segment_ids)[source]¶ Measure the centroid of each segment.
Args:
labels (np.ndarray[int]) - cell segment labels
segment_ids (np.ndarray[int]) - ordered segment IDs
-