diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index b54548e..05a771b 100644 Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/nellie.feature_extraction.doctree b/docs/_build/doctrees/nellie.feature_extraction.doctree index 8885523..767eec9 100644 Binary files a/docs/_build/doctrees/nellie.feature_extraction.doctree and b/docs/_build/doctrees/nellie.feature_extraction.doctree differ diff --git a/docs/_build/html/_modules/nellie/feature_extraction/hierarchical.html b/docs/_build/html/_modules/nellie/feature_extraction/hierarchical.html index 43b6d12..abf7329 100644 --- a/docs/_build/html/_modules/nellie/feature_extraction/hierarchical.html +++ b/docs/_build/html/_modules/nellie/feature_extraction/hierarchical.html @@ -47,6 +47,53 @@

Source code for nellie.feature_extraction.hierarchical

[docs] class Hierarchy: + """ + A class to handle the hierarchical structure of image data, including voxel, node, branch, and component features. + + Parameters + ---------- + im_info : ImInfo + Object containing metadata and pathways related to the image. + skip_nodes : bool, optional + Whether to skip node processing (default is True). + viewer : optional + Viewer for updating status messages (default is None). + + Attributes + ---------- + im_info : ImInfo + The ImInfo object containing the image metadata. + num_t : int + Number of time frames in the image. + spacing : tuple + Spacing between dimensions (Z, Y, X) or (Y, X) depending on the presence of Z. + im_raw : memmap + Raw image data loaded from disk. + im_struct : memmap + Preprocessed structural image data. + im_distance : memmap + Distance-transformed image data. + im_skel : memmap + Skeletonized image data. + label_components : memmap + Instance-labeled image data of components. + label_branches : memmap + Re-labeled skeleton data of branches. + im_border_mask : memmap + Image data with border mask. + im_pixel_class : memmap + Image data classified by pixel types. + im_obj_reassigned : memmap + Object reassigned labels across time. + im_branch_reassigned : memmap + Branch reassigned labels across time. + flow_interpolator_fw : FlowInterpolator + Forward flow interpolator. + flow_interpolator_bw : FlowInterpolator + Backward flow interpolator. + viewer : optional + Viewer to display status updates. + """ def __init__(self, im_info: ImInfo, skip_nodes=True, viewer=None): self.im_info = im_info @@ -84,6 +131,14 @@

Source code for nellie.feature_extraction.hierarchical

self.viewer = viewer def _get_t(self): + """ + Retrieves the number of time frames from image metadata, raising an error if the information is insufficient. + + Returns + ------- + int + Number of time frames. + """ if self.num_t is None and not self.im_info.no_t: # if self.im_info.no_t: # raise ValueError("No time dimension in image.") @@ -93,6 +148,10 @@

Source code for nellie.feature_extraction.hierarchical

return self.num_t def _allocate_memory(self): + """ + Loads the required image data into memory using memory-mapped arrays. This includes raw image data, structural + data, skeletons, component labels, and other features related to the image pipeline. + """ # getting reshaped image will load the image into memory.. should probably do this case by case self.im_raw = self.im_info.get_memmap(self.im_info.im_path) self.im_struct = self.im_info.get_memmap(self.im_info.pipeline_paths['im_preprocessed']) @@ -123,6 +182,10 @@

Source code for nellie.feature_extraction.hierarchical

# self.im_info.shape = self.shape def _get_hierarchies(self): + """ + Executes the hierarchical feature extraction process, which includes running voxel, node, branch, component, + and image analyses. + """ self.voxels = Voxels(self) logger.info("Running voxel analysis") start = time.time() @@ -165,6 +228,10 @@

Source code for nellie.feature_extraction.hierarchical

logger.debug(f"Image analysis took {i_time} seconds") def _save_dfs(self): + """ + Saves the extracted features to CSV files, including voxel, node, branch, component, and image features. + """ + if self.viewer is not None: self.viewer.status = f'Saving features to csv files.' voxel_features, voxel_headers = create_feature_array(self.voxels) @@ -189,6 +256,9 @@

Source code for nellie.feature_extraction.hierarchical

image_df.to_csv(self.im_info.pipeline_paths['features_image'], index=True) def _save_adjacency_maps(self): + """ + Constructs adjacency maps for voxels, nodes, branches, and components and saves them as a pickle file. + """ # edge list: v_n = [] v_b = [] @@ -279,6 +349,10 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def run(self): + """ + Main function to run the entire hierarchical feature extraction process, which includes memory allocation, + hierarchical analysis, and saving the results. + """ self._get_t() self._allocate_memory() self._get_hierarchies() @@ -295,6 +369,21 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def append_to_array(to_append): + """ + Converts feature dictionaries into lists of arrays and headers for saving to a CSV. + + Parameters + ---------- + to_append : dict + Dictionary containing feature names and values to append. + + Returns + ------- + list + List of feature arrays. + list + List of corresponding feature headers. + """ new_array = [] new_headers = [] for feature, stats in to_append.items(): @@ -317,6 +406,23 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def create_feature_array(level, labels=None): + """ + Creates a 2D feature array and corresponding headers for saving features to CSV. + + Parameters + ---------- + level : object + The level (e.g., voxel, node, branch, etc.) from which features are extracted. + labels : array-like, optional + Array of labels to use for the first column of the output (default is None). + + Returns + ------- + numpy.ndarray + 2D array of features. + list + List of corresponding feature headers. + """ full_array = None headers = None all_attr = [] @@ -367,6 +473,55 @@

Source code for nellie.feature_extraction.hierarchical

[docs] class Voxels: + """ + A class to extract and store voxel-level features from hierarchical image data. + + Parameters + ---------- + hierarchy : Hierarchy + The Hierarchy object containing the image data and metadata. + + Attributes + ---------- + hierarchy : Hierarchy + The Hierarchy object. + time : list + List of time frames associated with the extracted voxel features. + coords : list + List of voxel coordinates. + intensity : list + List of voxel intensity values. + structure : list + List of voxel structural values. + vec01 : list + List of vectors from frame t-1 to t. + vec12 : list + List of vectors from frame t to t+1. + lin_vel : list + List of linear velocity vectors. + ang_vel : list + List of angular velocity vectors. + directionality_rel : list + List of directionality features. + node_labels : list + List of node labels assigned to voxels. + branch_labels : list + List of branch labels assigned to voxels. + component_labels : list + List of component labels assigned to voxels. + node_dim0_lims : list + List of node bounding box limits in dimension 0 (Z or Y). + node_dim1_lims : list + List of node bounding box limits in dimension 1 (Y or X). + node_dim2_lims : list + List of node bounding box limits in dimension 2 (X). + node_voxel_idxs : list + List of voxel indices associated with each node. + stats_to_aggregate : list + List of statistics to aggregate for features. + features_to_save : list + List of voxel features to save. + """ def __init__(self, hierarchy: Hierarchy): self.hierarchy = hierarchy @@ -450,6 +605,16 @@

Source code for nellie.feature_extraction.hierarchical

self.features_to_save = self.stats_to_aggregate + ["x", "y", "z"] def _get_node_info(self, t, frame_coords): + """ + Gathers node-related information for each frame, including pixel classes, skeleton radii, and bounding boxes. + + Parameters + ---------- + t : int + The time frame index. + frame_coords : array-like + The coordinates of the voxels in the current frame. + """ # get all network pixels skeleton_pixels = np.argwhere(self.hierarchy.im_pixel_class[t] > 0) skeleton_radius = self.hierarchy.im_distance[t][tuple(skeleton_pixels.T)] @@ -527,6 +692,21 @@

Source code for nellie.feature_extraction.hierarchical

self.node_voxel_idxs.append(chunk_node_voxel_idxs) def _get_min_euc_dist(self, t, vec): + """ + Calculates the minimum Euclidean distance for voxels to their nearest branch. + + Parameters + ---------- + t : int + The time frame index. + vec : array-like + The vector field for the current time frame. + + Returns + ------- + pandas.Series + The indices of the minimum distance for each branch. + """ euc_dist = np.linalg.norm(vec, axis=1) branch_labels = self.branch_labels[t] @@ -541,6 +721,25 @@

Source code for nellie.feature_extraction.hierarchical

return idxmin def _get_ref_coords(self, coords_a, coords_b, idxmin, t): + """ + Retrieves the reference coordinates for calculating relative velocity and acceleration. + + Parameters + ---------- + coords_a : array-like + The coordinates in frame A. + coords_b : array-like + The coordinates in frame B. + idxmin : pandas.Series + Indices of minimum Euclidean distances. + t : int + The time frame index. + + Returns + ------- + tuple + The reference coordinates for frames A and B. + """ vals_a = idxmin[self.branch_labels[t]].values vals_a_no_nan = vals_a.copy() vals_a_no_nan[np.isnan(vals_a_no_nan)] = 0 @@ -559,6 +758,17 @@

Source code for nellie.feature_extraction.hierarchical

return ref_a, ref_b def _get_motility_stats(self, t, coords_1_px): + """ + Computes motility-related features for each voxel, including linear and angular velocities, accelerations, + and directionality. + + Parameters + ---------- + t : int + The time frame index. + coords_1_px : array-like + Coordinates of the voxels in pixel space for frame t. + """ coords_1_px = coords_1_px.astype('float32') if self.hierarchy.im_info.no_z: dims = 2 @@ -755,6 +965,21 @@

Source code for nellie.feature_extraction.hierarchical

# self.directionality_acc_rel.append(directionality_acc_rel) def _get_linear_velocity(self, ra, rb): + """ + Computes the linear velocity, its magnitude, and orientation between two sets of coordinates. + + Parameters + ---------- + ra : array-like + Coordinates in the earlier frame (frame t-1 or t). + rb : array-like + Coordinates in the later frame (frame t or t+1). + + Returns + ------- + tuple + Tuple containing linear velocity vectors, magnitudes, and orientations. + """ lin_disp = rb - ra lin_vel = lin_disp / self.hierarchy.im_info.dim_res['T'] lin_vel_mag = np.linalg.norm(lin_vel, axis=1) @@ -767,6 +992,22 @@

Source code for nellie.feature_extraction.hierarchical

return lin_vel, lin_vel_mag, lin_vel_orient def _get_angular_velocity_2d(self, ra, rb): + """ + Computes the angular velocity, its magnitude, and orientation between two sets of coordinates. + Uses either 2D or 3D calculations depending on the image dimensionality. + + Parameters + ---------- + ra : array-like + Coordinates in the earlier frame (frame t-1 or t). + rb : array-like + Coordinates in the later frame (frame t or t+1). + + Returns + ------- + tuple + Tuple containing angular velocity vectors, magnitudes, and orientations. + """ # calculate angles of ra and rb relative to x-axis theta_a = np.arctan2(ra[:, 1], ra[:, 0]) theta_b = np.arctan2(rb[:, 1], rb[:, 0]) @@ -846,6 +1087,10 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def run(self): + """ + Main function to run the extraction of voxel features over all time frames. + Iterates over each frame to extract coordinates, intensity, structural features, and motility statistics. + """ if self.hierarchy.num_t is None: self.hierarchy.num_t = 1 for t in range(self.hierarchy.num_t): @@ -920,6 +1165,47 @@

Source code for nellie.feature_extraction.hierarchical

[docs] class Nodes: + """ + A class to extract and store node-level features from hierarchical image data. + + Parameters + ---------- + hierarchy : Hierarchy + The Hierarchy object containing the image data and metadata. + + Attributes + ---------- + hierarchy : Hierarchy + The Hierarchy object. + time : list + List of time frames associated with the extracted node features. + nodes : list + List of node coordinates for each frame. + z, x, y : list + List of node coordinates in 3D or 2D space. + node_thickness : list + List of node thickness values. + divergence : list + List of divergence values for nodes. + convergence : list + List of convergence values for nodes. + vergere : list + List of vergere values (convergence + divergence). + aggregate_voxel_metrics : list + List of aggregated voxel metrics for each node. + voxel_idxs : list + List of voxel indices associated with each node. + branch_label : list + List of branch labels assigned to nodes. + component_label : list + List of component labels assigned to nodes. + image_name : list + List of image file names. + stats_to_aggregate : list + List of statistics to aggregate for nodes. + features_to_save : list + List of node features to save. + """ def __init__(self, hierarchy): self.hierarchy = hierarchy @@ -960,10 +1246,26 @@

Source code for nellie.feature_extraction.hierarchical

self.node_x_lims = self.hierarchy.voxels.node_dim2_lims def _get_aggregate_voxel_stats(self, t): + """ + Aggregates voxel-level statistics for each node in the frame. + + Parameters + ---------- + t : int + The time frame index. + """ frame_agg = aggregate_stats_for_class(self.hierarchy.voxels, t, self.hierarchy.voxels.node_voxel_idxs[t]) self.aggregate_voxel_metrics.append(frame_agg) def _get_node_stats(self, t): + """ + Computes node-level statistics, including thickness, divergence, convergence, and vergere. + + Parameters + ---------- + t : int + The time frame index. + """ radius = distance_check(self.hierarchy.im_border_mask[t], self.nodes[t], self.hierarchy.spacing) self.node_thickness.append(radius * 2) @@ -1043,6 +1345,14 @@

Source code for nellie.feature_extraction.hierarchical

self.x.append(x) def _run_frame(self, t): + """ + Extracts node features for a single time frame, including voxel metrics, node coordinates, and node statistics. + + Parameters + ---------- + t : int + The time frame index. + """ frame_skel_coords = np.argwhere(self.hierarchy.im_pixel_class[t] > 0) self.nodes.append(frame_skel_coords) @@ -1064,6 +1374,10 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def run(self): + """ + Main function to run the extraction of node features over all time frames. + Iterates over each frame to extract node features and calculate metrics. + """ if self.hierarchy.skip_nodes: return for t in range(self.hierarchy.num_t): @@ -1087,6 +1401,51 @@

Source code for nellie.feature_extraction.hierarchical

[docs] class Branches: + """ + A class to extract and store branch-level features from hierarchical image data. + + Parameters + ---------- + hierarchy : Hierarchy + The Hierarchy object containing the image data and metadata. + + Attributes + ---------- + hierarchy : Hierarchy + The Hierarchy object. + time : list + List of time frames associated with the extracted branch features. + branch_label : list + List of branch labels for each frame. + aggregate_voxel_metrics : list + List of aggregated voxel metrics for each branch. + aggregate_node_metrics : list + List of aggregated node metrics for each branch. + z, x, y : list + List of branch centroid coordinates in 3D or 2D space. + branch_length : list + List of branch length values. + branch_thickness : list + List of branch thickness values. + branch_aspect_ratio : list + List of aspect ratios for branches. + branch_tortuosity : list + List of tortuosity values for branches. + branch_area : list + List of branch area values. + branch_axis_length_maj, branch_axis_length_min : list + List of major and minor axis lengths for branches. + branch_extent : list + List of extent values for branches. + branch_solidity : list + List of solidity values for branches. + reassigned_label : list + List of reassigned branch labels across time. + stats_to_aggregate : list + List of statistics to aggregate for branches. + features_to_save : list + List of branch features to save. + """ def __init__(self, hierarchy): self.hierarchy = hierarchy @@ -1122,6 +1481,14 @@

Source code for nellie.feature_extraction.hierarchical

self.features_to_save = self.stats_to_aggregate + ["x", "y", "z"] def _get_aggregate_stats(self, t): + """ + Aggregates voxel and node-level statistics for each branch in the frame. + + Parameters + ---------- + t : int + The time frame index. + """ voxel_labels = self.hierarchy.voxels.branch_labels[t] grouped_vox_idxs = [np.argwhere(voxel_labels == label).flatten() for label in np.unique(voxel_labels) if label != 0] @@ -1136,6 +1503,14 @@

Source code for nellie.feature_extraction.hierarchical

self.aggregate_node_metrics.append(node_agg) def _get_branch_stats(self, t): + """ + Computes branch-level statistics, including length, thickness, aspect ratio, tortuosity, and solidity. + + Parameters + ---------- + t : int + The time frame index. + """ branch_idx_array_1 = np.array(self.branch_idxs[t]) branch_idx_array_2 = np.array(self.branch_idxs[t])[:, None, :] dist = np.linalg.norm(branch_idx_array_1 - branch_idx_array_2, axis=-1) @@ -1264,6 +1639,15 @@

Source code for nellie.feature_extraction.hierarchical

self.x.append(x) def _run_frame(self, t): + """ + Extracts branch features for a single time frame, including voxel and node metrics, branch coordinates, and + branch statistics. + + Parameters + ---------- + t : int + The time frame index. + """ frame_branch_idxs = np.argwhere(self.hierarchy.im_skel[t] > 0) self.branch_idxs.append(frame_branch_idxs) @@ -1300,6 +1684,10 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def run(self): + """ + Main function to run the extraction of branch features over all time frames. + Iterates over each frame to extract branch features and calculate metrics. + """ for t in range(self.hierarchy.num_t): if self.hierarchy.viewer is not None: self.hierarchy.viewer.status = f'Extracting branch features. Frame: {t + 1} of {self.hierarchy.num_t}.' @@ -1311,6 +1699,45 @@

Source code for nellie.feature_extraction.hierarchical

[docs] class Components: + """ + A class to extract and store component-level features from hierarchical image data. + + Parameters + ---------- + hierarchy : Hierarchy + The Hierarchy object containing the image data and metadata. + + Attributes + ---------- + hierarchy : Hierarchy + The Hierarchy object. + time : list + List of time frames associated with the extracted component features. + component_label : list + List of component labels for each frame. + aggregate_voxel_metrics : list + List of aggregated voxel metrics for each component. + aggregate_node_metrics : list + List of aggregated node metrics for each component. + aggregate_branch_metrics : list + List of aggregated branch metrics for each component. + z, x, y : list + List of component centroid coordinates in 3D or 2D space. + organelle_area : list + List of component area values. + organelle_axis_length_maj, organelle_axis_length_min : list + List of major and minor axis lengths for components. + organelle_extent : list + List of extent values for components. + organelle_solidity : list + List of solidity values for components. + reassigned_label : list + List of reassigned component labels across time. + stats_to_aggregate : list + List of statistics to aggregate for components. + features_to_save : list + List of component features to save. + """ def __init__(self, hierarchy): self.hierarchy = hierarchy @@ -1339,6 +1766,14 @@

Source code for nellie.feature_extraction.hierarchical

self.features_to_save = self.stats_to_aggregate + ["x", "y", "z"] def _get_aggregate_stats(self, t): + """ + Aggregates voxel, node, and branch-level statistics for each component in the frame. + + Parameters + ---------- + t : int + The time frame index. + """ voxel_labels = self.hierarchy.voxels.component_labels[t] grouped_vox_idxs = [np.argwhere(voxel_labels == label).flatten() for label in np.unique(voxel_labels) if label != 0] @@ -1359,6 +1794,14 @@

Source code for nellie.feature_extraction.hierarchical

self.aggregate_branch_metrics.append(branch_agg) def _get_component_stats(self, t): + """ + Computes component-level statistics, including area, axis lengths, extent, and solidity. + + Parameters + ---------- + t : int + The time frame index. + """ regions = regionprops(self.hierarchy.label_components[t], spacing=self.hierarchy.spacing) areas = [] axis_length_maj = [] @@ -1406,6 +1849,15 @@

Source code for nellie.feature_extraction.hierarchical

self.x.append(x) def _run_frame(self, t): + """ + Extracts component features for a single time frame, including voxel, node, and branch metrics, and component + statistics. + + Parameters + ---------- + t : int + The time frame index. + """ smallest_label = int(np.min(self.hierarchy.label_components[t][self.hierarchy.label_components[t] > 0])) largest_label = int(np.max(self.hierarchy.label_components[t])) frame_component_labels = np.arange(smallest_label, largest_label + 1) @@ -1424,6 +1876,10 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def run(self): + """ + Main function to run the extraction of component features over all time frames. + Iterates over each frame to extract component features and calculate metrics. + """ for t in range(self.hierarchy.num_t): if self.hierarchy.viewer is not None: self.hierarchy.viewer.status = f'Extracting organelle features. Frame: {t + 1} of {self.hierarchy.num_t}.' @@ -1435,6 +1891,35 @@

Source code for nellie.feature_extraction.hierarchical

[docs] class Image: + """ + A class to extract and store global image-level features from hierarchical image data. + + Parameters + ---------- + hierarchy : Hierarchy + The Hierarchy object containing the image data and metadata. + + Attributes + ---------- + hierarchy : Hierarchy + The Hierarchy object. + time : list + List of time frames associated with the extracted image-level features. + image_name : list + List of image file names. + aggregate_voxel_metrics : list + List of aggregated voxel metrics for the entire image. + aggregate_node_metrics : list + List of aggregated node metrics for the entire image. + aggregate_branch_metrics : list + List of aggregated branch metrics for the entire image. + aggregate_component_metrics : list + List of aggregated component metrics for the entire image. + stats_to_aggregate : list + List of statistics to aggregate for the entire image. + features_to_save : list + List of image-level features to save. + """ def __init__(self, hierarchy): self.hierarchy = hierarchy @@ -1448,6 +1933,14 @@

Source code for nellie.feature_extraction.hierarchical

self.features_to_save = [] def _get_aggregate_stats(self, t): + """ + Aggregates voxel, node, branch, and component-level statistics for the entire image in the frame. + + Parameters + ---------- + t : int + The time frame index. + """ voxel_agg = aggregate_stats_for_class(self.hierarchy.voxels, t, [np.arange(len(self.hierarchy.voxels.coords[t]))]) self.aggregate_voxel_metrics.append(voxel_agg) @@ -1465,6 +1958,15 @@

Source code for nellie.feature_extraction.hierarchical

self.aggregate_component_metrics.append(component_agg) def _run_frame(self, t): + """ + Extracts image-level features for a single time frame, including aggregated voxel, node, branch, and + component metrics. + + Parameters + ---------- + t : int + The time frame index. + """ self.time.append(t) self.image_name.append(self.hierarchy.im_info.file_info.filename_no_ext) @@ -1473,6 +1975,10 @@

Source code for nellie.feature_extraction.hierarchical

[docs] def run(self): + """ + Main function to run the extraction of image-level features over all time frames. + Iterates over each frame to extract and aggregate voxel, node, branch, and component-level features. + """ for t in range(self.hierarchy.num_t): if self.hierarchy.viewer is not None: self.hierarchy.viewer.status = f'Extracting image features. Frame: {t + 1} of {self.hierarchy.num_t}.' @@ -1508,6 +2014,10 @@

Nellie

Navigation

+

Contents:

+

Related Topics

diff --git a/docs/_build/html/modules.html b/docs/_build/html/modules.html index e505b71..bacd88f 100644 --- a/docs/_build/html/modules.html +++ b/docs/_build/html/modules.html @@ -13,6 +13,8 @@ + + @@ -249,11 +251,23 @@

Nellie

Navigation

+

Contents:

+

Related Topics

diff --git a/docs/_build/html/nellie.feature_extraction.html b/docs/_build/html/nellie.feature_extraction.html index d9744f5..56168ca 100644 --- a/docs/_build/html/nellie.feature_extraction.html +++ b/docs/_build/html/nellie.feature_extraction.html @@ -13,6 +13,8 @@ + + @@ -41,66 +43,340 @@

Submodules class nellie.feature_extraction.hierarchical.Branches(hierarchy)[source]

Bases: object

+

A class to extract and store branch-level features from hierarchical image data.

+
+

Parameters

+
+
hierarchyHierarchy

The Hierarchy object containing the image data and metadata.

+
+
+
+
+

Attributes

+
+
hierarchyHierarchy

The Hierarchy object.

+
+
timelist

List of time frames associated with the extracted branch features.

+
+
branch_labellist

List of branch labels for each frame.

+
+
aggregate_voxel_metricslist

List of aggregated voxel metrics for each branch.

+
+
aggregate_node_metricslist

List of aggregated node metrics for each branch.

+
+
z, x, ylist

List of branch centroid coordinates in 3D or 2D space.

+
+
branch_lengthlist

List of branch length values.

+
+
branch_thicknesslist

List of branch thickness values.

+
+
branch_aspect_ratiolist

List of aspect ratios for branches.

+
+
branch_tortuositylist

List of tortuosity values for branches.

+
+
branch_arealist

List of branch area values.

+
+
branch_axis_length_maj, branch_axis_length_minlist

List of major and minor axis lengths for branches.

+
+
branch_extentlist

List of extent values for branches.

+
+
branch_soliditylist

List of solidity values for branches.

+
+
reassigned_labellist

List of reassigned branch labels across time.

+
+
stats_to_aggregatelist

List of statistics to aggregate for branches.

+
+
features_to_savelist

List of branch features to save.

+
+
run()[source]
-
+

Main function to run the extraction of branch features over all time frames. +Iterates over each frame to extract branch features and calculate metrics.

+
+
class nellie.feature_extraction.hierarchical.Components(hierarchy)[source]

Bases: object

+

A class to extract and store component-level features from hierarchical image data.

+
+

Parameters

+
+
hierarchyHierarchy

The Hierarchy object containing the image data and metadata.

+
+
+
+
+

Attributes

+
+
hierarchyHierarchy

The Hierarchy object.

+
+
timelist

List of time frames associated with the extracted component features.

+
+
component_labellist

List of component labels for each frame.

+
+
aggregate_voxel_metricslist

List of aggregated voxel metrics for each component.

+
+
aggregate_node_metricslist

List of aggregated node metrics for each component.

+
+
aggregate_branch_metricslist

List of aggregated branch metrics for each component.

+
+
z, x, ylist

List of component centroid coordinates in 3D or 2D space.

+
+
organelle_arealist

List of component area values.

+
+
organelle_axis_length_maj, organelle_axis_length_minlist

List of major and minor axis lengths for components.

+
+
organelle_extentlist

List of extent values for components.

+
+
organelle_soliditylist

List of solidity values for components.

+
+
reassigned_labellist

List of reassigned component labels across time.

+
+
stats_to_aggregatelist

List of statistics to aggregate for components.

+
+
features_to_savelist

List of component features to save.

+
+
run()[source]
-
+

Main function to run the extraction of component features over all time frames. +Iterates over each frame to extract component features and calculate metrics.

+
+
class nellie.feature_extraction.hierarchical.Hierarchy(im_info: ImInfo, skip_nodes=True, viewer=None)[source]

Bases: object

+

A class to handle the hierarchical structure of image data, including voxel, node, branch, and component features.

+
+

Parameters

+
+
im_infoImInfo

Object containing metadata and pathways related to the image.

+
+
skip_nodesbool, optional

Whether to skip node processing (default is True).

+
+
vieweroptional

Viewer for updating status messages (default is None).

+
+
+
+
+

Attributes

+
+
im_infoImInfo

The ImInfo object containing the image metadata.

+
+
num_tint

Number of time frames in the image.

+
+
spacingtuple

Spacing between dimensions (Z, Y, X) or (Y, X) depending on the presence of Z.

+
+
im_rawmemmap

Raw image data loaded from disk.

+
+
im_structmemmap

Preprocessed structural image data.

+
+
im_distancememmap

Distance-transformed image data.

+
+
im_skelmemmap

Skeletonized image data.

+
+
label_componentsmemmap

Instance-labeled image data of components.

+
+
label_branchesmemmap

Re-labeled skeleton data of branches.

+
+
im_border_maskmemmap

Image data with border mask.

+
+
im_pixel_classmemmap

Image data classified by pixel types.

+
+
im_obj_reassignedmemmap

Object reassigned labels across time.

+
+
im_branch_reassignedmemmap

Branch reassigned labels across time.

+
+
flow_interpolator_fwFlowInterpolator

Forward flow interpolator.

+
+
flow_interpolator_bwFlowInterpolator

Backward flow interpolator.

+
+
vieweroptional

Viewer to display status updates.

+
+
run()[source]
-
+

Main function to run the entire hierarchical feature extraction process, which includes memory allocation, +hierarchical analysis, and saving the results.

+
+
class nellie.feature_extraction.hierarchical.Image(hierarchy)[source]

Bases: object

+

A class to extract and store global image-level features from hierarchical image data.

+
+

Parameters

+
+
hierarchyHierarchy

The Hierarchy object containing the image data and metadata.

+
+
+
+
+

Attributes

+
+
hierarchyHierarchy

The Hierarchy object.

+
+
timelist

List of time frames associated with the extracted image-level features.

+
+
image_namelist

List of image file names.

+
+
aggregate_voxel_metricslist

List of aggregated voxel metrics for the entire image.

+
+
aggregate_node_metricslist

List of aggregated node metrics for the entire image.

+
+
aggregate_branch_metricslist

List of aggregated branch metrics for the entire image.

+
+
aggregate_component_metricslist

List of aggregated component metrics for the entire image.

+
+
stats_to_aggregatelist

List of statistics to aggregate for the entire image.

+
+
features_to_savelist

List of image-level features to save.

+
+
run()[source]
-
+

Main function to run the extraction of image-level features over all time frames. +Iterates over each frame to extract and aggregate voxel, node, branch, and component-level features.

+
+
class nellie.feature_extraction.hierarchical.Nodes(hierarchy)[source]

Bases: object

+

A class to extract and store node-level features from hierarchical image data.

+
+

Parameters

+
+
hierarchyHierarchy

The Hierarchy object containing the image data and metadata.

+
+
+
+
+

Attributes

+
+
hierarchyHierarchy

The Hierarchy object.

+
+
timelist

List of time frames associated with the extracted node features.

+
+
nodeslist

List of node coordinates for each frame.

+
+
z, x, ylist

List of node coordinates in 3D or 2D space.

+
+
node_thicknesslist

List of node thickness values.

+
+
divergencelist

List of divergence values for nodes.

+
+
convergencelist

List of convergence values for nodes.

+
+
vergerelist

List of vergere values (convergence + divergence).

+
+
aggregate_voxel_metricslist

List of aggregated voxel metrics for each node.

+
+
voxel_idxslist

List of voxel indices associated with each node.

+
+
branch_labellist

List of branch labels assigned to nodes.

+
+
component_labellist

List of component labels assigned to nodes.

+
+
image_namelist

List of image file names.

+
+
stats_to_aggregatelist

List of statistics to aggregate for nodes.

+
+
features_to_savelist

List of node features to save.

+
+
run()[source]
-
+

Main function to run the extraction of node features over all time frames. +Iterates over each frame to extract node features and calculate metrics.

+
+
class nellie.feature_extraction.hierarchical.Voxels(hierarchy: Hierarchy)[source]

Bases: object

+

A class to extract and store voxel-level features from hierarchical image data.

+
+

Parameters

+
+
hierarchyHierarchy

The Hierarchy object containing the image data and metadata.

+
+
+
+
+

Attributes

+
+
hierarchyHierarchy

The Hierarchy object.

+
+
timelist

List of time frames associated with the extracted voxel features.

+
+
coordslist

List of voxel coordinates.

+
+
intensitylist

List of voxel intensity values.

+
+
structurelist

List of voxel structural values.

+
+
vec01list

List of vectors from frame t-1 to t.

+
+
vec12list

List of vectors from frame t to t+1.

+
+
lin_vellist

List of linear velocity vectors.

+
+
ang_vellist

List of angular velocity vectors.

+
+
directionality_rellist

List of directionality features.

+
+
node_labelslist

List of node labels assigned to voxels.

+
+
branch_labelslist

List of branch labels assigned to voxels.

+
+
component_labelslist

List of component labels assigned to voxels.

+
+
node_dim0_limslist

List of node bounding box limits in dimension 0 (Z or Y).

+
+
node_dim1_limslist

List of node bounding box limits in dimension 1 (Y or X).

+
+
node_dim2_limslist

List of node bounding box limits in dimension 2 (X).

+
+
node_voxel_idxslist

List of voxel indices associated with each node.

+
+
stats_to_aggregatelist

List of statistics to aggregate for features.

+
+
features_to_savelist

List of voxel features to save.

+
+
run()[source]
-
+

Main function to run the extraction of voxel features over all time frames. +Iterates over each frame to extract coordinates, intensity, structural features, and motility statistics.

+
+
@@ -111,12 +387,48 @@

Submodules
nellie.feature_extraction.hierarchical.append_to_array(to_append)[source]
-

+

Converts feature dictionaries into lists of arrays and headers for saving to a CSV.

+
+

Parameters

+
+
to_appenddict

Dictionary containing feature names and values to append.

+
+
+
+
+

Returns

+
+
list

List of feature arrays.

+
+
list

List of corresponding feature headers.

+
+
+
+
nellie.feature_extraction.hierarchical.create_feature_array(level, labels=None)[source]
-
+

Creates a 2D feature array and corresponding headers for saving features to CSV.

+
+

Parameters

+
+
levelobject

The level (e.g., voxel, node, branch, etc.) from which features are extracted.

+
+
labelsarray-like, optional

Array of labels to use for the first column of the output (default is None).

+
+
+
+
+

Returns

+
+
numpy.ndarray

2D array of features.

+
+
list

List of corresponding feature headers.

+
+
+
+
@@ -146,11 +458,27 @@

Nellie

Navigation

+

Contents:

+ diff --git a/docs/_build/html/nellie_napari.html b/docs/_build/html/nellie_napari.html index 5744dcd..59e11eb 100644 --- a/docs/_build/html/nellie_napari.html +++ b/docs/_build/html/nellie_napari.html @@ -13,6 +13,8 @@ + + @@ -485,11 +487,25 @@

Nellie

Navigation

+

Contents:

+

Related Topics

diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index f6e62c9..c2d3538 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Contents:": [[0, null]], "Module contents": [[3, "module-nellie"], [4, "module-nellie.feature_extraction"], [5, "module-nellie.im_info"], [6, "module-nellie.segmentation"], [7, "module-nellie.tracking"], [8, "module-nellie.utils"], [9, "module-nellie_napari"], [10, "module-tests"], [11, "module-tests.unit"]], "Nellie documentation": [[0, null]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "submodules"], [6, "submodules"], [7, "submodules"], [8, "submodules"], [9, "submodules"], [11, "submodules"]], "Subpackages": [[3, "subpackages"], [10, "subpackages"]], "main module": [[1, null]], "nellie": [[2, null]], "nellie package": [[3, null]], "nellie.cli module": [[3, "module-nellie.cli"]], "nellie.feature_extraction package": [[4, null]], "nellie.feature_extraction.hierarchical module": [[4, "module-nellie.feature_extraction.hierarchical"]], "nellie.im_info package": [[5, null]], "nellie.im_info.verifier module": [[5, "module-nellie.im_info.verifier"]], "nellie.run module": [[3, "module-nellie.run"]], "nellie.segmentation package": [[6, null]], "nellie.segmentation.filtering module": [[6, "module-nellie.segmentation.filtering"]], "nellie.segmentation.labelling module": [[6, "module-nellie.segmentation.labelling"]], "nellie.segmentation.mocap_marking module": [[6, "module-nellie.segmentation.mocap_marking"]], "nellie.segmentation.networking module": [[6, "module-nellie.segmentation.networking"]], "nellie.tracking package": [[7, null]], "nellie.tracking.all_tracks_for_label module": [[7, "module-nellie.tracking.all_tracks_for_label"]], "nellie.tracking.flow_interpolation module": [[7, "module-nellie.tracking.flow_interpolation"]], "nellie.tracking.hu_tracking module": [[7, "module-nellie.tracking.hu_tracking"]], "nellie.tracking.voxel_reassignment module": [[7, "module-nellie.tracking.voxel_reassignment"]], "nellie.utils package": [[8, null]], "nellie.utils.base_logger module": [[8, "module-nellie.utils.base_logger"]], "nellie.utils.general module": [[8, "module-nellie.utils.general"]], "nellie.utils.gpu_functions module": [[8, "module-nellie.utils.gpu_functions"]], "nellie.utils.torch_xp module": [[8, "nellie-utils-torch-xp-module"]], "nellie_napari package": [[9, null]], "nellie_napari.nellie_analysis module": [[9, "module-nellie_napari.nellie_analysis"]], "nellie_napari.nellie_fileselect module": [[9, "module-nellie_napari.nellie_fileselect"]], "nellie_napari.nellie_home module": [[9, "module-nellie_napari.nellie_home"]], "nellie_napari.nellie_loader module": [[9, "module-nellie_napari.nellie_loader"]], "nellie_napari.nellie_processor module": [[9, "module-nellie_napari.nellie_processor"]], "nellie_napari.nellie_settings module": [[9, "module-nellie_napari.nellie_settings"]], "nellie_napari.nellie_visualizer module": [[9, "module-nellie_napari.nellie_visualizer"]], "tests package": [[10, null]], "tests.unit package": [[11, null]], "tests.unit.test_frangi_filter module": [[11, "module-tests.unit.test_frangi_filter"]], "tests.unit.test_im_info module": [[11, "tests-unit-test-im-info-module"]]}, "docnames": ["index", "main", "modules", "nellie", "nellie.feature_extraction", "nellie.im_info", "nellie.segmentation", "nellie.tracking", "nellie.utils", "nellie_napari", "tests", "tests.unit"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "main.rst", "modules.rst", "nellie.rst", "nellie.feature_extraction.rst", "nellie.im_info.rst", "nellie.segmentation.rst", "nellie.tracking.rst", "nellie.utils.rst", "nellie_napari.rst", "tests.rst", "tests.unit.rst"], "indexentries": {"bbox() (in module nellie.utils.general)": [[8, "nellie.utils.general.bbox", false]], "get_reshaped_image() (in module nellie.utils.general)": [[8, "nellie.utils.general.get_reshaped_image", false]], "module": [[3, "module-nellie", false], [3, "module-nellie.cli", false], [3, "module-nellie.run", false], [8, "module-nellie.utils", false], [8, "module-nellie.utils.base_logger", false], [8, "module-nellie.utils.general", false], [8, "module-nellie.utils.gpu_functions", false], [10, "module-tests", false], [11, "module-tests.unit", false], [11, "module-tests.unit.test_frangi_filter", false]], "nellie": [[3, "module-nellie", false]], "nellie.cli": [[3, "module-nellie.cli", false]], "nellie.run": [[3, "module-nellie.run", false]], "nellie.utils": [[8, "module-nellie.utils", false]], "nellie.utils.base_logger": [[8, "module-nellie.utils.base_logger", false]], "nellie.utils.general": [[8, "module-nellie.utils.general", false]], "nellie.utils.gpu_functions": [[8, "module-nellie.utils.gpu_functions", false]], "otsu_effectiveness() (in module nellie.utils.gpu_functions)": [[8, "nellie.utils.gpu_functions.otsu_effectiveness", false]], "otsu_threshold() (in module nellie.utils.gpu_functions)": [[8, "nellie.utils.gpu_functions.otsu_threshold", false]], "process_directory() (in module nellie.cli)": [[3, "nellie.cli.process_directory", false]], "process_files() (in module nellie.cli)": [[3, "nellie.cli.process_files", false]], "run() (in module nellie.run)": [[3, "nellie.run.run", false]], "tests": [[10, "module-tests", false]], "tests.unit": [[11, "module-tests.unit", false]], "tests.unit.test_frangi_filter": [[11, "module-tests.unit.test_frangi_filter", false]], "triangle_threshold() (in module nellie.utils.gpu_functions)": [[8, "nellie.utils.gpu_functions.triangle_threshold", false]]}, "objects": {"": [[1, 0, 0, "-", "main"], [3, 0, 0, "-", "nellie"], [9, 0, 0, "-", "nellie_napari"], [10, 0, 0, "-", "tests"]], "main": [[1, 1, 1, "", "main"]], "nellie": [[3, 0, 0, "-", "cli"], [4, 0, 0, "-", "feature_extraction"], [5, 0, 0, "-", "im_info"], [3, 0, 0, "-", "run"], [6, 0, 0, "-", "segmentation"], [7, 0, 0, "-", "tracking"], [8, 0, 0, "-", "utils"]], "nellie.cli": [[3, 1, 1, "", "process_directory"], [3, 1, 1, "", "process_files"]], "nellie.feature_extraction": [[4, 0, 0, "-", "hierarchical"]], "nellie.feature_extraction.hierarchical": [[4, 2, 1, "", "Branches"], [4, 2, 1, "", "Components"], [4, 2, 1, "", "Hierarchy"], [4, 2, 1, "", "Image"], [4, 2, 1, "", "Nodes"], [4, 2, 1, "", "Voxels"], [4, 1, 1, "", "aggregate_stats_for_class"], [4, 1, 1, "", "append_to_array"], [4, 1, 1, "", "create_feature_array"], [4, 1, 1, "", "distance_check"]], "nellie.feature_extraction.hierarchical.Branches": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Components": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Hierarchy": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Image": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Nodes": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Voxels": [[4, 3, 1, "", "run"]], "nellie.im_info": [[5, 0, 0, "-", "verifier"]], "nellie.im_info.verifier": [[5, 2, 1, "", "FileInfo"], [5, 2, 1, "", "ImInfo"]], "nellie.im_info.verifier.FileInfo": [[5, 3, 1, "", "change_axes"], [5, 3, 1, "", "change_dim_res"], [5, 3, 1, "", "change_selected_channel"], [5, 3, 1, "", "find_metadata"], [5, 3, 1, "", "load_metadata"], [5, 3, 1, "", "read_file"], [5, 3, 1, "", "save_ome_tiff"], [5, 3, 1, "", "select_temporal_range"]], "nellie.im_info.verifier.ImInfo": [[5, 3, 1, "", "allocate_memory"], [5, 3, 1, "", "create_output_path"], [5, 3, 1, "", "get_memmap"], [5, 3, 1, "", "remove_intermediates"]], "nellie.run": [[3, 1, 1, "", "run"]], "nellie.segmentation": [[6, 0, 0, "-", "filtering"], [6, 0, 0, "-", "labelling"], [6, 0, 0, "-", "mocap_marking"], [6, 0, 0, "-", "networking"]], "nellie.segmentation.filtering": [[6, 2, 1, "", "Filter"]], "nellie.segmentation.filtering.Filter": [[6, 3, 1, "", "run"]], "nellie.segmentation.labelling": [[6, 2, 1, "", "Label"]], "nellie.segmentation.labelling.Label": [[6, 3, 1, "", "run"]], "nellie.segmentation.mocap_marking": [[6, 2, 1, "", "Markers"]], "nellie.segmentation.mocap_marking.Markers": [[6, 3, 1, "", "run"]], "nellie.segmentation.networking": [[6, 2, 1, "", "Network"]], "nellie.segmentation.networking.Network": [[6, 3, 1, "", "run"]], "nellie.tracking": [[7, 0, 0, "-", "all_tracks_for_label"], [7, 0, 0, "-", "flow_interpolation"], [7, 0, 0, "-", "hu_tracking"], [7, 0, 0, "-", "voxel_reassignment"]], "nellie.tracking.all_tracks_for_label": [[7, 2, 1, "", "LabelTracks"]], "nellie.tracking.all_tracks_for_label.LabelTracks": [[7, 3, 1, "", "initialize"], [7, 3, 1, "", "run"]], "nellie.tracking.flow_interpolation": [[7, 2, 1, "", "FlowInterpolator"], [7, 1, 1, "", "interpolate_all_backward"], [7, 1, 1, "", "interpolate_all_forward"]], "nellie.tracking.flow_interpolation.FlowInterpolator": [[7, 3, 1, "", "interpolate_coord"]], "nellie.tracking.hu_tracking": [[7, 2, 1, "", "HuMomentTracking"]], "nellie.tracking.hu_tracking.HuMomentTracking": [[7, 3, 1, "", "run"]], "nellie.tracking.voxel_reassignment": [[7, 2, 1, "", "VoxelReassigner"]], "nellie.tracking.voxel_reassignment.VoxelReassigner": [[7, 3, 1, "", "match_voxels"], [7, 3, 1, "", "run"]], "nellie.utils": [[8, 0, 0, "-", "base_logger"], [8, 0, 0, "-", "general"], [8, 0, 0, "-", "gpu_functions"]], "nellie.utils.general": [[8, 1, 1, "", "bbox"], [8, 1, 1, "", "get_reshaped_image"]], "nellie.utils.gpu_functions": [[8, 1, 1, "", "otsu_effectiveness"], [8, 1, 1, "", "otsu_threshold"], [8, 1, 1, "", "triangle_threshold"]], "nellie_napari": [[9, 0, 0, "-", "nellie_analysis"], [9, 0, 0, "-", "nellie_fileselect"], [9, 0, 0, "-", "nellie_home"], [9, 0, 0, "-", "nellie_loader"], [9, 0, 0, "-", "nellie_processor"], [9, 0, 0, "-", "nellie_settings"], [9, 0, 0, "-", "nellie_visualizer"]], "nellie_napari.nellie_analysis": [[9, 2, 1, "", "NellieAnalysis"]], "nellie_napari.nellie_analysis.NellieAnalysis": [[9, 3, 1, "", "check_for_adjacency_map"], [9, 3, 1, "", "draw_stats"], [9, 3, 1, "", "export_data"], [9, 3, 1, "", "get_csvs"], [9, 3, 1, "", "get_index"], [9, 3, 1, "", "get_stats"], [9, 3, 1, "", "on_attr_selected"], [9, 3, 1, "", "on_hist_change"], [9, 3, 1, "", "on_level_selected"], [9, 3, 1, "", "on_log_scale"], [9, 3, 1, "", "on_t_change"], [9, 3, 1, "", "overlay"], [9, 3, 1, "", "plot_data"], [9, 3, 1, "", "post_init"], [9, 3, 1, "", "reset"], [9, 3, 1, "", "rewrite_dropdown"], [9, 3, 1, "", "save_graph"], [9, 3, 1, "", "set_default_dropdowns"], [9, 3, 1, "", "set_ui"], [9, 3, 1, "", "toggle_match_t"], [9, 3, 1, "", "toggle_mean_med"]], "nellie_napari.nellie_fileselect": [[9, 2, 1, "", "NellieFileSelect"]], "nellie_napari.nellie_fileselect.NellieFileSelect": [[9, 3, 1, "", "change_channel"], [9, 3, 1, "", "change_time"], [9, 3, 1, "", "check_available_dims"], [9, 3, 1, "", "handle_dim_order_changed"], [9, 3, 1, "", "handle_t_changed"], [9, 3, 1, "", "handle_xy_changed"], [9, 3, 1, "", "handle_z_changed"], [9, 3, 1, "", "init_ui"], [9, 3, 1, "", "initialize_folder"], [9, 3, 1, "", "initialize_single_file"], [9, 3, 1, "", "on_change"], [9, 3, 1, "", "on_confirm"], [9, 3, 1, "", "on_preview"], [9, 3, 1, "", "on_process"], [9, 3, 1, "", "select_filepath"], [9, 3, 1, "", "select_folder"], [9, 3, 1, "", "validate_path"]], "nellie_napari.nellie_home": [[9, 2, 1, "", "Home"]], "nellie_napari.nellie_home.Home": [[9, 3, 1, "", "screenshot"]], "nellie_napari.nellie_loader": [[9, 2, 1, "", "NellieLoader"]], "nellie_napari.nellie_loader.NellieLoader": [[9, 3, 1, "", "add_tabs"], [9, 3, 1, "", "go_process"], [9, 3, 1, "", "on_tab_change"], [9, 3, 1, "", "reset"]], "nellie_napari.nellie_processor": [[9, 2, 1, "", "NellieProcessor"]], "nellie_napari.nellie_processor.NellieProcessor": [[9, 3, 1, "", "check_file_existence"], [9, 3, 1, "", "open_directory"], [9, 3, 1, "", "post_init"], [9, 3, 1, "", "reset_status"], [9, 3, 1, "", "run_feature_export"], [9, 3, 1, "", "run_mocap"], [9, 3, 1, "", "run_nellie"], [9, 3, 1, "", "run_preprocessing"], [9, 3, 1, "", "run_reassign"], [9, 3, 1, "", "run_segmentation"], [9, 3, 1, "", "run_tracking"], [9, 3, 1, "", "set_status"], [9, 3, 1, "", "set_ui"], [9, 3, 1, "", "turn_off_buttons"], [9, 3, 1, "", "turn_off_pipeline"], [9, 3, 1, "", "update_status"]], "nellie_napari.nellie_settings": [[9, 2, 1, "", "Settings"]], "nellie_napari.nellie_settings.Settings": [[9, 3, 1, "", "post_init"], [9, 3, 1, "", "set_ui"]], "nellie_napari.nellie_visualizer": [[9, 2, 1, "", "NellieVisualizer"]], "nellie_napari.nellie_visualizer.NellieVisualizer": [[9, 3, 1, "", "check_3d"], [9, 3, 1, "", "check_file_existence"], [9, 3, 1, "", "on_track_selected"], [9, 3, 1, "", "open_mocap_image"], [9, 3, 1, "", "open_preprocess_image"], [9, 3, 1, "", "open_raw"], [9, 3, 1, "", "open_reassign_image"], [9, 3, 1, "", "open_segment_image"], [9, 3, 1, "", "post_init"], [9, 3, 1, "", "set_scale"], [9, 3, 1, "", "set_ui"], [9, 3, 1, "", "track_all"]], "tests": [[11, 0, 0, "-", "unit"]], "tests.unit": [[11, 0, 0, "-", "test_frangi_filter"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "terms": {"0": [5, 6, 7], "1": [6, 7], "2": 6, "256": 8, "5": [6, 7], "No": 5, "add": 0, "add_tab": [2, 9], "aggregate_stats_for_class": [3, 4], "all_tracks_for_label": [2, 3], "allocate_memori": [3, 5], "alpha_sq": 6, "append_to_arrai": [3, 4], "base": [4, 5, 6, 7, 9], "base_logg": [2, 3], "bbox": [3, 8], "beta_sq": 6, "border_mask": 4, "branch": [3, 4], "ch": [3, 5], "change_ax": [3, 5], "change_channel": [2, 9], "change_dim_r": [3, 5], "change_selected_channel": [3, 5], "change_tim": [2, 9], "check_3d": [2, 9], "check_available_dim": [2, 9], "check_coord": 4, "check_file_exist": [2, 9], "check_for_adjacency_map": [2, 9], "child_class": 4, "class": [4, 5, 6, 7, 9], "clean_skel": 6, "cli": 2, "compon": [3, 4], "content": 2, "coord": 7, "create_feature_arrai": [3, 4], "create_output_path": [3, 5], "data": 5, "descript": 5, "detail": 0, "dim": 5, "directori": 3, "distanc": 6, "distance_check": [3, 4], "draw_stat": [2, 9], "dtype": 5, "end": 5, "end_fram": 7, "end_t": 7, "event": 9, "export_data": [2, 9], "ext": 5, "fals": [3, 5, 6], "feature_extract": [2, 3], "file": 3, "file_info": [3, 5], "file_path": 5, "fileinfo": [3, 5], "filepath": [5, 9], "filter": [2, 3], "find_metadata": [3, 5], "float": 5, "flow_interpol": [2, 3], "flowinterpol": [3, 7], "for_nelli": 5, "forward": 7, "frob_thresh": 6, "gener": [2, 3], "get_csv": [2, 9], "get_index": [2, 9], "get_memmap": [3, 5], "get_reshaped_imag": [3, 8], "get_stat": [2, 9], "go_process": [2, 9], "gpu_funct": [2, 3], "handle_dim_order_chang": [2, 9], "handle_t_chang": [2, 9], "handle_xy_chang": [2, 9], "handle_z_chang": [2, 9], "hierarch": [2, 3], "hierarchi": [3, 4], "home": [2, 9], "hu_track": [2, 3], "humomenttrack": [3, 7], "im": 8, "im_info": [2, 3, 4, 6, 7, 8], "imag": [3, 4, 8], "iminfo": [3, 4, 5, 6, 7], "index": 9, "init_ui": [2, 9], "initi": [3, 7], "initialize_fold": [2, 9], "initialize_single_fil": [2, 9], "int": 7, "inter_vari": 8, "interpolate_all_backward": [3, 7], "interpolate_all_forward": [3, 7], "interpolate_coord": [3, 7], "label": [2, 3, 4], "label_im_path": 7, "label_num": 7, "labeltrack": [3, 7], "layer": 9, "level": 4, "list_of_idx": 4, "load_metadata": [3, 5], "main": [0, 2], "marker": [3, 6], "mask": 6, "match_voxel": [3, 7], "matrix": 8, "max_distance_um": 7, "max_radius_um": 6, "min_radius_um": 6, "min_track_num": 7, "mocap_mark": [2, 3], "modul": [0, 2], "napari": 9, "napari_view": 9, "nbin": 8, "nelli": 9, "nellie_analysi": 2, "nellie_fileselect": 2, "nellie_hom": 2, "nellie_load": 2, "nellie_napari": [0, 2], "nellie_processor": 2, "nellie_set": 2, "nellie_visu": 2, "nellieanalysi": [2, 9], "nelliefileselect": [2, 9], "nellieload": [2, 9], "nellieprocessor": [2, 9], "nellievisu": [2, 9], "network": [2, 3], "new_ax": 5, "new_siz": 5, "node": [3, 4], "none": [3, 4, 5, 6, 7, 8, 9], "num_sigma": 6, "num_t": [3, 6, 7, 8], "object": [4, 5, 6, 7], "om": 5, "on_attr_select": [2, 9], "on_chang": [2, 9], "on_confirm": [2, 9], "on_hist_chang": [2, 9], "on_level_select": [2, 9], "on_log_scal": [2, 9], "on_preview": [2, 9], "on_process": [2, 9], "on_t_chang": [2, 9], "on_tab_chang": [2, 9], "on_track_select": [2, 9], "open_directori": [2, 9], "open_mocap_imag": [2, 9], "open_preprocess_imag": [2, 9], "open_raw": [2, 9], "open_reassign_imag": [2, 9], "open_segment_imag": [2, 9], "otsu_effect": [3, 8], "otsu_thresh_intens": [3, 6], "otsu_threshold": [3, 8], "output_dir": [3, 5], "output_path": 5, "overlai": [2, 9], "packag": [0, 2], "parent": 9, "pipeline_path": 5, "plot_data": [2, 9], "post_init": [2, 9], "process_directori": [2, 3], "process_fil": [2, 3], "qtabwidget": 9, "qwidget": 9, "r": 5, "read_fil": [3, 5], "read_mod": 5, "remove_edg": [3, 6], "remove_intermedi": [3, 5], "reset": [2, 9], "reset_statu": [2, 9], "restructuredtext": 0, "return_memmap": 5, "rewrite_dropdown": [2, 9], "run": [2, 4, 6, 7], "run_feature_export": [2, 9], "run_mocap": [2, 9], "run_nelli": [2, 9], "run_preprocess": [2, 9], "run_reassign": [2, 9], "run_segment": [2, 9], "run_track": [2, 9], "save_graph": [2, 9], "save_ome_tiff": [3, 5], "screenshot": [2, 9], "see": 0, "segment": [2, 3], "select_filepath": [2, 9], "select_fold": [2, 9], "select_temporal_rang": [3, 5], "set": [2, 9], "set_default_dropdown": [2, 9], "set_scal": [2, 9], "set_statu": [2, 9], "set_ui": [2, 9], "skip_coord": 7, "skip_nod": 4, "snr_clean": 6, "sourc": [1, 3, 4, 5, 6, 7, 8, 9], "space": 4, "start": 5, "start_fram": 7, "start_t": 7, "state": 9, "str": [5, 7], "submodul": [2, 10], "subpackag": 2, "substr": 3, "syntax": 0, "t": [4, 7], "t_slice": 8, "test": [0, 2], "test_frangi_filt": [2, 10], "test_im_info": [2, 10], "text": 9, "threshold": [3, 6], "tif": 5, "titl": 9, "to_append": 4, "toggle_match_t": [2, 9], "toggle_mean_m": [2, 9], "torch_xp": [2, 3], "track": [2, 3], "track_al": [2, 9], "triangle_threshold": [3, 8], "true": [4, 5, 6, 7], "turn_off_button": [2, 9], "turn_off_pipelin": [2, 9], "unit": [2, 10], "update_statu": [2, 9], "us": 0, "use_im": 6, "util": [2, 3], "validate_path": [2, 9], "verifi": [2, 3], "viewer": [4, 6, 7, 9], "vox_next": 7, "vox_prev": 7, "voxel": [3, 4], "voxel_reassign": [2, 3], "voxelreassign": [3, 7], "your": 0}, "titles": ["Nellie documentation", "main module", "nellie", "nellie package", "nellie.feature_extraction package", "nellie.im_info package", "nellie.segmentation package", "nellie.tracking package", "nellie.utils package", "nellie_napari package", "tests package", "tests.unit package"], "titleterms": {"all_tracks_for_label": 7, "base_logg": 8, "cli": 3, "content": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11], "document": 0, "feature_extract": 4, "filter": 6, "flow_interpol": 7, "gener": 8, "gpu_funct": 8, "hierarch": 4, "hu_track": 7, "im_info": 5, "label": 6, "main": 1, "mocap_mark": 6, "modul": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "nelli": [0, 2, 3, 4, 5, 6, 7, 8], "nellie_analysi": 9, "nellie_fileselect": 9, "nellie_hom": 9, "nellie_load": 9, "nellie_napari": 9, "nellie_processor": 9, "nellie_set": 9, "nellie_visu": 9, "network": 6, "packag": [3, 4, 5, 6, 7, 8, 9, 10, 11], "run": 3, "segment": 6, "submodul": [3, 4, 5, 6, 7, 8, 9, 11], "subpackag": [3, 10], "test": [10, 11], "test_frangi_filt": 11, "test_im_info": 11, "torch_xp": 8, "track": 7, "unit": 11, "util": 8, "verifi": 5, "voxel_reassign": 7}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Attributes": [[4, "attributes"], [4, "id2"], [4, "id4"], [4, "id6"], [4, "id8"], [4, "id10"]], "Contents:": [[0, null]], "Module contents": [[3, "module-nellie"], [4, "module-nellie.feature_extraction"], [5, "module-nellie.im_info"], [6, "module-nellie.segmentation"], [7, "module-nellie.tracking"], [8, "module-nellie.utils"], [9, "module-nellie_napari"], [10, "module-tests"], [11, "module-tests.unit"]], "Nellie documentation": [[0, null]], "Parameters": [[4, "parameters"], [4, "id1"], [4, "id3"], [4, "id5"], [4, "id7"], [4, "id9"], [4, "id11"], [4, "id12"]], "Returns": [[4, "returns"], [4, "id13"]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "submodules"], [6, "submodules"], [7, "submodules"], [8, "submodules"], [9, "submodules"], [11, "submodules"]], "Subpackages": [[3, "subpackages"], [10, "subpackages"]], "main module": [[1, null]], "nellie": [[2, null]], "nellie package": [[3, null]], "nellie.cli module": [[3, "module-nellie.cli"]], "nellie.feature_extraction package": [[4, null]], "nellie.feature_extraction.hierarchical module": [[4, "module-nellie.feature_extraction.hierarchical"]], "nellie.im_info package": [[5, null]], "nellie.im_info.verifier module": [[5, "module-nellie.im_info.verifier"]], "nellie.run module": [[3, "module-nellie.run"]], "nellie.segmentation package": [[6, null]], "nellie.segmentation.filtering module": [[6, "module-nellie.segmentation.filtering"]], "nellie.segmentation.labelling module": [[6, "module-nellie.segmentation.labelling"]], "nellie.segmentation.mocap_marking module": [[6, "module-nellie.segmentation.mocap_marking"]], "nellie.segmentation.networking module": [[6, "module-nellie.segmentation.networking"]], "nellie.tracking package": [[7, null]], "nellie.tracking.all_tracks_for_label module": [[7, "module-nellie.tracking.all_tracks_for_label"]], "nellie.tracking.flow_interpolation module": [[7, "module-nellie.tracking.flow_interpolation"]], "nellie.tracking.hu_tracking module": [[7, "module-nellie.tracking.hu_tracking"]], "nellie.tracking.voxel_reassignment module": [[7, "module-nellie.tracking.voxel_reassignment"]], "nellie.utils package": [[8, null]], "nellie.utils.base_logger module": [[8, "module-nellie.utils.base_logger"]], "nellie.utils.general module": [[8, "module-nellie.utils.general"]], "nellie.utils.gpu_functions module": [[8, "module-nellie.utils.gpu_functions"]], "nellie.utils.torch_xp module": [[8, "nellie-utils-torch-xp-module"]], "nellie_napari package": [[9, null]], "nellie_napari.nellie_analysis module": [[9, "module-nellie_napari.nellie_analysis"]], "nellie_napari.nellie_fileselect module": [[9, "module-nellie_napari.nellie_fileselect"]], "nellie_napari.nellie_home module": [[9, "module-nellie_napari.nellie_home"]], "nellie_napari.nellie_loader module": [[9, "module-nellie_napari.nellie_loader"]], "nellie_napari.nellie_processor module": [[9, "module-nellie_napari.nellie_processor"]], "nellie_napari.nellie_settings module": [[9, "module-nellie_napari.nellie_settings"]], "nellie_napari.nellie_visualizer module": [[9, "module-nellie_napari.nellie_visualizer"]], "tests package": [[10, null]], "tests.unit package": [[11, null]], "tests.unit.test_frangi_filter module": [[11, "module-tests.unit.test_frangi_filter"]], "tests.unit.test_im_info module": [[11, "tests-unit-test-im-info-module"]]}, "docnames": ["index", "main", "modules", "nellie", "nellie.feature_extraction", "nellie.im_info", "nellie.segmentation", "nellie.tracking", "nellie.utils", "nellie_napari", "tests", "tests.unit"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "main.rst", "modules.rst", "nellie.rst", "nellie.feature_extraction.rst", "nellie.im_info.rst", "nellie.segmentation.rst", "nellie.tracking.rst", "nellie.utils.rst", "nellie_napari.rst", "tests.rst", "tests.unit.rst"], "indexentries": {"add_tabs() (nellie_napari.nellie_loader.nellieloader method)": [[9, "nellie_napari.nellie_loader.NellieLoader.add_tabs", false]], "aggregate_stats_for_class() (in module nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.aggregate_stats_for_class", false]], "append_to_array() (in module nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.append_to_array", false]], "bbox() (in module nellie.utils.general)": [[8, "nellie.utils.general.bbox", false]], "branches (class in nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.Branches", false]], "change_channel() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.change_channel", false]], "change_time() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.change_time", false]], "check_3d() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.check_3d", false]], "check_available_dims() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.check_available_dims", false]], "check_file_existence() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.check_file_existence", false]], "check_file_existence() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.check_file_existence", false]], "check_for_adjacency_map() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.check_for_adjacency_map", false]], "components (class in nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.Components", false]], "create_feature_array() (in module nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.create_feature_array", false]], "distance_check() (in module nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.distance_check", false]], "draw_stats() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.draw_stats", false]], "export_data() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.export_data", false]], "get_csvs() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.get_csvs", false]], "get_index() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.get_index", false]], "get_reshaped_image() (in module nellie.utils.general)": [[8, "nellie.utils.general.get_reshaped_image", false]], "get_stats() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.get_stats", false]], "go_process() (nellie_napari.nellie_loader.nellieloader method)": [[9, "nellie_napari.nellie_loader.NellieLoader.go_process", false]], "handle_dim_order_changed() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.handle_dim_order_changed", false]], "handle_t_changed() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.handle_t_changed", false]], "handle_xy_changed() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.handle_xy_changed", false]], "handle_z_changed() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.handle_z_changed", false]], "hierarchy (class in nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.Hierarchy", false]], "home (class in nellie_napari.nellie_home)": [[9, "nellie_napari.nellie_home.Home", false]], "image (class in nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.Image", false]], "init_ui() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.init_ui", false]], "initialize_folder() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.initialize_folder", false]], "initialize_single_file() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.initialize_single_file", false]], "module": [[3, "module-nellie", false], [3, "module-nellie.cli", false], [3, "module-nellie.run", false], [4, "module-nellie.feature_extraction", false], [4, "module-nellie.feature_extraction.hierarchical", false], [8, "module-nellie.utils", false], [8, "module-nellie.utils.base_logger", false], [8, "module-nellie.utils.general", false], [8, "module-nellie.utils.gpu_functions", false], [9, "module-nellie_napari", false], [9, "module-nellie_napari.nellie_analysis", false], [9, "module-nellie_napari.nellie_fileselect", false], [9, "module-nellie_napari.nellie_home", false], [9, "module-nellie_napari.nellie_loader", false], [9, "module-nellie_napari.nellie_processor", false], [9, "module-nellie_napari.nellie_settings", false], [9, "module-nellie_napari.nellie_visualizer", false], [10, "module-tests", false], [11, "module-tests.unit", false], [11, "module-tests.unit.test_frangi_filter", false]], "nellie": [[3, "module-nellie", false]], "nellie.cli": [[3, "module-nellie.cli", false]], "nellie.feature_extraction": [[4, "module-nellie.feature_extraction", false]], "nellie.feature_extraction.hierarchical": [[4, "module-nellie.feature_extraction.hierarchical", false]], "nellie.run": [[3, "module-nellie.run", false]], "nellie.utils": [[8, "module-nellie.utils", false]], "nellie.utils.base_logger": [[8, "module-nellie.utils.base_logger", false]], "nellie.utils.general": [[8, "module-nellie.utils.general", false]], "nellie.utils.gpu_functions": [[8, "module-nellie.utils.gpu_functions", false]], "nellie_napari": [[9, "module-nellie_napari", false]], "nellie_napari.nellie_analysis": [[9, "module-nellie_napari.nellie_analysis", false]], "nellie_napari.nellie_fileselect": [[9, "module-nellie_napari.nellie_fileselect", false]], "nellie_napari.nellie_home": [[9, "module-nellie_napari.nellie_home", false]], "nellie_napari.nellie_loader": [[9, "module-nellie_napari.nellie_loader", false]], "nellie_napari.nellie_processor": [[9, "module-nellie_napari.nellie_processor", false]], "nellie_napari.nellie_settings": [[9, "module-nellie_napari.nellie_settings", false]], "nellie_napari.nellie_visualizer": [[9, "module-nellie_napari.nellie_visualizer", false]], "nellieanalysis (class in nellie_napari.nellie_analysis)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis", false]], "nelliefileselect (class in nellie_napari.nellie_fileselect)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect", false]], "nellieloader (class in nellie_napari.nellie_loader)": [[9, "nellie_napari.nellie_loader.NellieLoader", false]], "nellieprocessor (class in nellie_napari.nellie_processor)": [[9, "nellie_napari.nellie_processor.NellieProcessor", false]], "nellievisualizer (class in nellie_napari.nellie_visualizer)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer", false]], "nodes (class in nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.Nodes", false]], "on_attr_selected() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.on_attr_selected", false]], "on_change() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.on_change", false]], "on_confirm() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.on_confirm", false]], "on_hist_change() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.on_hist_change", false]], "on_level_selected() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.on_level_selected", false]], "on_log_scale() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.on_log_scale", false]], "on_preview() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.on_preview", false]], "on_process() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.on_process", false]], "on_t_change() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.on_t_change", false]], "on_tab_change() (nellie_napari.nellie_loader.nellieloader method)": [[9, "nellie_napari.nellie_loader.NellieLoader.on_tab_change", false]], "on_track_selected() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.on_track_selected", false]], "open_directory() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.open_directory", false]], "open_mocap_image() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.open_mocap_image", false]], "open_preprocess_image() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.open_preprocess_image", false]], "open_raw() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.open_raw", false]], "open_reassign_image() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.open_reassign_image", false]], "open_segment_image() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.open_segment_image", false]], "otsu_effectiveness() (in module nellie.utils.gpu_functions)": [[8, "nellie.utils.gpu_functions.otsu_effectiveness", false]], "otsu_threshold() (in module nellie.utils.gpu_functions)": [[8, "nellie.utils.gpu_functions.otsu_threshold", false]], "overlay() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.overlay", false]], "plot_data() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.plot_data", false]], "post_init() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.post_init", false]], "post_init() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.post_init", false]], "post_init() (nellie_napari.nellie_settings.settings method)": [[9, "nellie_napari.nellie_settings.Settings.post_init", false]], "post_init() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.post_init", false]], "process_directory() (in module nellie.cli)": [[3, "nellie.cli.process_directory", false]], "process_files() (in module nellie.cli)": [[3, "nellie.cli.process_files", false]], "reset() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.reset", false]], "reset() (nellie_napari.nellie_loader.nellieloader method)": [[9, "nellie_napari.nellie_loader.NellieLoader.reset", false]], "reset_status() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.reset_status", false]], "rewrite_dropdown() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.rewrite_dropdown", false]], "run() (in module nellie.run)": [[3, "nellie.run.run", false]], "run() (nellie.feature_extraction.hierarchical.branches method)": [[4, "nellie.feature_extraction.hierarchical.Branches.run", false]], "run() (nellie.feature_extraction.hierarchical.components method)": [[4, "nellie.feature_extraction.hierarchical.Components.run", false]], "run() (nellie.feature_extraction.hierarchical.hierarchy method)": [[4, "nellie.feature_extraction.hierarchical.Hierarchy.run", false]], "run() (nellie.feature_extraction.hierarchical.image method)": [[4, "nellie.feature_extraction.hierarchical.Image.run", false]], "run() (nellie.feature_extraction.hierarchical.nodes method)": [[4, "nellie.feature_extraction.hierarchical.Nodes.run", false]], "run() (nellie.feature_extraction.hierarchical.voxels method)": [[4, "nellie.feature_extraction.hierarchical.Voxels.run", false]], "run_feature_export() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_feature_export", false]], "run_mocap() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_mocap", false]], "run_nellie() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_nellie", false]], "run_preprocessing() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_preprocessing", false]], "run_reassign() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_reassign", false]], "run_segmentation() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_segmentation", false]], "run_tracking() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.run_tracking", false]], "save_graph() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.save_graph", false]], "screenshot() (nellie_napari.nellie_home.home method)": [[9, "nellie_napari.nellie_home.Home.screenshot", false]], "select_filepath() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.select_filepath", false]], "select_folder() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.select_folder", false]], "set_default_dropdowns() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.set_default_dropdowns", false]], "set_scale() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.set_scale", false]], "set_status() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.set_status", false]], "set_ui() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.set_ui", false]], "set_ui() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.set_ui", false]], "set_ui() (nellie_napari.nellie_settings.settings method)": [[9, "nellie_napari.nellie_settings.Settings.set_ui", false]], "set_ui() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.set_ui", false]], "settings (class in nellie_napari.nellie_settings)": [[9, "nellie_napari.nellie_settings.Settings", false]], "tests": [[10, "module-tests", false]], "tests.unit": [[11, "module-tests.unit", false]], "tests.unit.test_frangi_filter": [[11, "module-tests.unit.test_frangi_filter", false]], "toggle_match_t() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.toggle_match_t", false]], "toggle_mean_med() (nellie_napari.nellie_analysis.nellieanalysis method)": [[9, "nellie_napari.nellie_analysis.NellieAnalysis.toggle_mean_med", false]], "track_all() (nellie_napari.nellie_visualizer.nellievisualizer method)": [[9, "nellie_napari.nellie_visualizer.NellieVisualizer.track_all", false]], "triangle_threshold() (in module nellie.utils.gpu_functions)": [[8, "nellie.utils.gpu_functions.triangle_threshold", false]], "turn_off_buttons() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.turn_off_buttons", false]], "turn_off_pipeline() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.turn_off_pipeline", false]], "update_status() (nellie_napari.nellie_processor.nellieprocessor method)": [[9, "nellie_napari.nellie_processor.NellieProcessor.update_status", false]], "validate_path() (nellie_napari.nellie_fileselect.nelliefileselect method)": [[9, "nellie_napari.nellie_fileselect.NellieFileSelect.validate_path", false]], "voxels (class in nellie.feature_extraction.hierarchical)": [[4, "nellie.feature_extraction.hierarchical.Voxels", false]]}, "objects": {"": [[1, 0, 0, "-", "main"], [3, 0, 0, "-", "nellie"], [9, 0, 0, "-", "nellie_napari"], [10, 0, 0, "-", "tests"]], "main": [[1, 1, 1, "", "main"]], "nellie": [[3, 0, 0, "-", "cli"], [4, 0, 0, "-", "feature_extraction"], [5, 0, 0, "-", "im_info"], [3, 0, 0, "-", "run"], [6, 0, 0, "-", "segmentation"], [7, 0, 0, "-", "tracking"], [8, 0, 0, "-", "utils"]], "nellie.cli": [[3, 1, 1, "", "process_directory"], [3, 1, 1, "", "process_files"]], "nellie.feature_extraction": [[4, 0, 0, "-", "hierarchical"]], "nellie.feature_extraction.hierarchical": [[4, 2, 1, "", "Branches"], [4, 2, 1, "", "Components"], [4, 2, 1, "", "Hierarchy"], [4, 2, 1, "", "Image"], [4, 2, 1, "", "Nodes"], [4, 2, 1, "", "Voxels"], [4, 1, 1, "", "aggregate_stats_for_class"], [4, 1, 1, "", "append_to_array"], [4, 1, 1, "", "create_feature_array"], [4, 1, 1, "", "distance_check"]], "nellie.feature_extraction.hierarchical.Branches": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Components": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Hierarchy": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Image": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Nodes": [[4, 3, 1, "", "run"]], "nellie.feature_extraction.hierarchical.Voxels": [[4, 3, 1, "", "run"]], "nellie.im_info": [[5, 0, 0, "-", "verifier"]], "nellie.im_info.verifier": [[5, 2, 1, "", "FileInfo"], [5, 2, 1, "", "ImInfo"]], "nellie.im_info.verifier.FileInfo": [[5, 3, 1, "", "change_axes"], [5, 3, 1, "", "change_dim_res"], [5, 3, 1, "", "change_selected_channel"], [5, 3, 1, "", "find_metadata"], [5, 3, 1, "", "load_metadata"], [5, 3, 1, "", "read_file"], [5, 3, 1, "", "save_ome_tiff"], [5, 3, 1, "", "select_temporal_range"]], "nellie.im_info.verifier.ImInfo": [[5, 3, 1, "", "allocate_memory"], [5, 3, 1, "", "create_output_path"], [5, 3, 1, "", "get_memmap"], [5, 3, 1, "", "remove_intermediates"]], "nellie.run": [[3, 1, 1, "", "run"]], "nellie.segmentation": [[6, 0, 0, "-", "filtering"], [6, 0, 0, "-", "labelling"], [6, 0, 0, "-", "mocap_marking"], [6, 0, 0, "-", "networking"]], "nellie.segmentation.filtering": [[6, 2, 1, "", "Filter"]], "nellie.segmentation.filtering.Filter": [[6, 3, 1, "", "run"]], "nellie.segmentation.labelling": [[6, 2, 1, "", "Label"]], "nellie.segmentation.labelling.Label": [[6, 3, 1, "", "run"]], "nellie.segmentation.mocap_marking": [[6, 2, 1, "", "Markers"]], "nellie.segmentation.mocap_marking.Markers": [[6, 3, 1, "", "run"]], "nellie.segmentation.networking": [[6, 2, 1, "", "Network"]], "nellie.segmentation.networking.Network": [[6, 3, 1, "", "run"]], "nellie.tracking": [[7, 0, 0, "-", "all_tracks_for_label"], [7, 0, 0, "-", "flow_interpolation"], [7, 0, 0, "-", "hu_tracking"], [7, 0, 0, "-", "voxel_reassignment"]], "nellie.tracking.all_tracks_for_label": [[7, 2, 1, "", "LabelTracks"]], "nellie.tracking.all_tracks_for_label.LabelTracks": [[7, 3, 1, "", "initialize"], [7, 3, 1, "", "run"]], "nellie.tracking.flow_interpolation": [[7, 2, 1, "", "FlowInterpolator"], [7, 1, 1, "", "interpolate_all_backward"], [7, 1, 1, "", "interpolate_all_forward"]], "nellie.tracking.flow_interpolation.FlowInterpolator": [[7, 3, 1, "", "interpolate_coord"]], "nellie.tracking.hu_tracking": [[7, 2, 1, "", "HuMomentTracking"]], "nellie.tracking.hu_tracking.HuMomentTracking": [[7, 3, 1, "", "run"]], "nellie.tracking.voxel_reassignment": [[7, 2, 1, "", "VoxelReassigner"]], "nellie.tracking.voxel_reassignment.VoxelReassigner": [[7, 3, 1, "", "match_voxels"], [7, 3, 1, "", "run"]], "nellie.utils": [[8, 0, 0, "-", "base_logger"], [8, 0, 0, "-", "general"], [8, 0, 0, "-", "gpu_functions"]], "nellie.utils.general": [[8, 1, 1, "", "bbox"], [8, 1, 1, "", "get_reshaped_image"]], "nellie.utils.gpu_functions": [[8, 1, 1, "", "otsu_effectiveness"], [8, 1, 1, "", "otsu_threshold"], [8, 1, 1, "", "triangle_threshold"]], "nellie_napari": [[9, 0, 0, "-", "nellie_analysis"], [9, 0, 0, "-", "nellie_fileselect"], [9, 0, 0, "-", "nellie_home"], [9, 0, 0, "-", "nellie_loader"], [9, 0, 0, "-", "nellie_processor"], [9, 0, 0, "-", "nellie_settings"], [9, 0, 0, "-", "nellie_visualizer"]], "nellie_napari.nellie_analysis": [[9, 2, 1, "", "NellieAnalysis"]], "nellie_napari.nellie_analysis.NellieAnalysis": [[9, 3, 1, "", "check_for_adjacency_map"], [9, 3, 1, "", "draw_stats"], [9, 3, 1, "", "export_data"], [9, 3, 1, "", "get_csvs"], [9, 3, 1, "", "get_index"], [9, 3, 1, "", "get_stats"], [9, 3, 1, "", "on_attr_selected"], [9, 3, 1, "", "on_hist_change"], [9, 3, 1, "", "on_level_selected"], [9, 3, 1, "", "on_log_scale"], [9, 3, 1, "", "on_t_change"], [9, 3, 1, "", "overlay"], [9, 3, 1, "", "plot_data"], [9, 3, 1, "", "post_init"], [9, 3, 1, "", "reset"], [9, 3, 1, "", "rewrite_dropdown"], [9, 3, 1, "", "save_graph"], [9, 3, 1, "", "set_default_dropdowns"], [9, 3, 1, "", "set_ui"], [9, 3, 1, "", "toggle_match_t"], [9, 3, 1, "", "toggle_mean_med"]], "nellie_napari.nellie_fileselect": [[9, 2, 1, "", "NellieFileSelect"]], "nellie_napari.nellie_fileselect.NellieFileSelect": [[9, 3, 1, "", "change_channel"], [9, 3, 1, "", "change_time"], [9, 3, 1, "", "check_available_dims"], [9, 3, 1, "", "handle_dim_order_changed"], [9, 3, 1, "", "handle_t_changed"], [9, 3, 1, "", "handle_xy_changed"], [9, 3, 1, "", "handle_z_changed"], [9, 3, 1, "", "init_ui"], [9, 3, 1, "", "initialize_folder"], [9, 3, 1, "", "initialize_single_file"], [9, 3, 1, "", "on_change"], [9, 3, 1, "", "on_confirm"], [9, 3, 1, "", "on_preview"], [9, 3, 1, "", "on_process"], [9, 3, 1, "", "select_filepath"], [9, 3, 1, "", "select_folder"], [9, 3, 1, "", "validate_path"]], "nellie_napari.nellie_home": [[9, 2, 1, "", "Home"]], "nellie_napari.nellie_home.Home": [[9, 3, 1, "", "screenshot"]], "nellie_napari.nellie_loader": [[9, 2, 1, "", "NellieLoader"]], "nellie_napari.nellie_loader.NellieLoader": [[9, 3, 1, "", "add_tabs"], [9, 3, 1, "", "go_process"], [9, 3, 1, "", "on_tab_change"], [9, 3, 1, "", "reset"]], "nellie_napari.nellie_processor": [[9, 2, 1, "", "NellieProcessor"]], "nellie_napari.nellie_processor.NellieProcessor": [[9, 3, 1, "", "check_file_existence"], [9, 3, 1, "", "open_directory"], [9, 3, 1, "", "post_init"], [9, 3, 1, "", "reset_status"], [9, 3, 1, "", "run_feature_export"], [9, 3, 1, "", "run_mocap"], [9, 3, 1, "", "run_nellie"], [9, 3, 1, "", "run_preprocessing"], [9, 3, 1, "", "run_reassign"], [9, 3, 1, "", "run_segmentation"], [9, 3, 1, "", "run_tracking"], [9, 3, 1, "", "set_status"], [9, 3, 1, "", "set_ui"], [9, 3, 1, "", "turn_off_buttons"], [9, 3, 1, "", "turn_off_pipeline"], [9, 3, 1, "", "update_status"]], "nellie_napari.nellie_settings": [[9, 2, 1, "", "Settings"]], "nellie_napari.nellie_settings.Settings": [[9, 3, 1, "", "post_init"], [9, 3, 1, "", "set_ui"]], "nellie_napari.nellie_visualizer": [[9, 2, 1, "", "NellieVisualizer"]], "nellie_napari.nellie_visualizer.NellieVisualizer": [[9, 3, 1, "", "check_3d"], [9, 3, 1, "", "check_file_existence"], [9, 3, 1, "", "on_track_selected"], [9, 3, 1, "", "open_mocap_image"], [9, 3, 1, "", "open_preprocess_image"], [9, 3, 1, "", "open_raw"], [9, 3, 1, "", "open_reassign_image"], [9, 3, 1, "", "open_segment_image"], [9, 3, 1, "", "post_init"], [9, 3, 1, "", "set_scale"], [9, 3, 1, "", "set_ui"], [9, 3, 1, "", "track_all"]], "tests": [[11, 0, 0, "-", "unit"]], "tests.unit": [[11, 0, 0, "-", "test_frangi_filter"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "terms": {"0": [4, 5, 6, 7], "1": [4, 6, 7], "2": [4, 6], "256": 8, "2d": 4, "3d": 4, "5": [6, 7], "A": 4, "No": 5, "The": 4, "across": 4, "add": 0, "add_tab": [2, 9], "aggreg": 4, "aggregate_branch_metr": 4, "aggregate_component_metr": 4, "aggregate_node_metr": 4, "aggregate_stats_for_class": [3, 4], "aggregate_voxel_metr": 4, "all": 4, "all_tracks_for_label": [2, 3], "alloc": 4, "allocate_memori": [3, 5], "alpha_sq": 6, "analysi": 4, "ang_vel": 4, "angular": 4, "append": 4, "append_to_arrai": [3, 4], "ar": 4, "area": 4, "arrai": 4, "aspect": 4, "assign": 4, "associ": 4, "axi": 4, "backward": 4, "base": [4, 5, 6, 7, 9], "base_logg": [2, 3], "bbox": [3, 8], "beta_sq": 6, "between": 4, "bool": 4, "border": 4, "border_mask": 4, "bound": 4, "box": 4, "branch": [3, 4], "branch_area": 4, "branch_aspect_ratio": 4, "branch_axis_length_maj": 4, "branch_axis_length_min": 4, "branch_ext": 4, "branch_label": 4, "branch_length": 4, "branch_solid": 4, "branch_thick": 4, "branch_tortuos": 4, "calcul": 4, "centroid": 4, "ch": [3, 5], "change_ax": [3, 5], "change_channel": [2, 9], "change_dim_r": [3, 5], "change_selected_channel": [3, 5], "change_tim": [2, 9], "check_3d": [2, 9], "check_available_dim": [2, 9], "check_coord": 4, "check_file_exist": [2, 9], "check_for_adjacency_map": [2, 9], "child_class": 4, "class": [4, 5, 6, 7, 9], "classifi": 4, "clean_skel": 6, "cli": 2, "column": 4, "compon": [3, 4], "component_label": 4, "contain": 4, "content": 2, "converg": 4, "convert": 4, "coord": [4, 7], "coordin": 4, "correspond": 4, "creat": 4, "create_feature_arrai": [3, 4], "create_output_path": [3, 5], "csv": 4, "data": [4, 5], "default": 4, "depend": 4, "descript": 5, "detail": 0, "dict": 4, "dictionari": 4, "dim": 5, "dimens": 4, "direction": 4, "directionality_rel": 4, "directori": 3, "disk": 4, "displai": 4, "distanc": [4, 6], "distance_check": [3, 4], "diverg": 4, "draw_stat": [2, 9], "dtype": 5, "e": 4, "each": 4, "end": 5, "end_fram": 7, "end_t": 7, "entir": 4, "etc": 4, "event": 9, "export_data": [2, 9], "ext": 5, "extent": 4, "extract": 4, "fals": [3, 5, 6], "featur": 4, "feature_extract": [2, 3], "features_to_sav": 4, "file": [3, 4], "file_info": [3, 5], "file_path": 5, "fileinfo": [3, 5], "filepath": [5, 9], "filter": [2, 3], "find_metadata": [3, 5], "first": 4, "float": 5, "flow": 4, "flow_interpol": [2, 3], "flow_interpolator_bw": 4, "flow_interpolator_fw": 4, "flowinterpol": [3, 4, 7], "for_nelli": 5, "forward": [4, 7], "frame": 4, "frob_thresh": 6, "from": 4, "function": 4, "g": 4, "gener": [2, 3], "get_csv": [2, 9], "get_index": [2, 9], "get_memmap": [3, 5], "get_reshaped_imag": [3, 8], "get_stat": [2, 9], "global": 4, "go_process": [2, 9], "gpu_funct": [2, 3], "handl": 4, "handle_dim_order_chang": [2, 9], "handle_t_chang": [2, 9], "handle_xy_chang": [2, 9], "handle_z_chang": [2, 9], "header": 4, "hierarch": [2, 3], "hierarchi": [3, 4], "home": [2, 9], "hu_track": [2, 3], "humomenttrack": [3, 7], "i": 4, "im": 8, "im_border_mask": 4, "im_branch_reassign": 4, "im_dist": 4, "im_info": [2, 3, 4, 6, 7, 8], "im_obj_reassign": 4, "im_pixel_class": 4, "im_raw": 4, "im_skel": 4, "im_struct": 4, "imag": [3, 4, 8], "image_nam": 4, "iminfo": [3, 4, 5, 6, 7], "includ": 4, "index": 9, "indic": 4, "init_ui": [2, 9], "initi": [3, 7], "initialize_fold": [2, 9], "initialize_single_fil": [2, 9], "instanc": 4, "int": [4, 7], "intens": 4, "inter_vari": 8, "interpol": 4, "interpolate_all_backward": [3, 7], "interpolate_all_forward": [3, 7], "interpolate_coord": [3, 7], "iter": 4, "label": [2, 3, 4], "label_branch": 4, "label_compon": 4, "label_im_path": 7, "label_num": 7, "labeltrack": [3, 7], "layer": 9, "length": 4, "level": 4, "like": 4, "limit": 4, "lin_vel": 4, "linear": 4, "list": 4, "list_of_idx": 4, "load": 4, "load_metadata": [3, 5], "main": [0, 2, 4], "major": 4, "marker": [3, 6], "mask": [4, 6], "match_voxel": [3, 7], "matrix": 8, "max_distance_um": 7, "max_radius_um": 6, "memmap": 4, "memori": 4, "messag": 4, "metadata": 4, "metric": 4, "min_radius_um": 6, "min_track_num": 7, "minor": 4, "mocap_mark": [2, 3], "modul": [0, 2], "motil": 4, "name": 4, "napari": 9, "napari_view": 9, "nbin": 8, "ndarrai": 4, "nelli": 9, "nellie_analysi": 2, "nellie_fileselect": 2, "nellie_hom": 2, "nellie_load": 2, "nellie_napari": [0, 2], "nellie_processor": 2, "nellie_set": 2, "nellie_visu": 2, "nellieanalysi": [2, 9], "nelliefileselect": [2, 9], "nellieload": [2, 9], "nellieprocessor": [2, 9], "nellievisu": [2, 9], "network": [2, 3], "new_ax": 5, "new_siz": 5, "node": [3, 4], "node_dim0_lim": 4, "node_dim1_lim": 4, "node_dim2_lim": 4, "node_label": 4, "node_thick": 4, "node_voxel_idx": 4, "none": [3, 4, 5, 6, 7, 8, 9], "num_sigma": 6, "num_t": [3, 4, 6, 7, 8], "number": 4, "numpi": 4, "object": [4, 5, 6, 7], "om": 5, "on_attr_select": [2, 9], "on_chang": [2, 9], "on_confirm": [2, 9], "on_hist_chang": [2, 9], "on_level_select": [2, 9], "on_log_scal": [2, 9], "on_preview": [2, 9], "on_process": [2, 9], "on_t_chang": [2, 9], "on_tab_chang": [2, 9], "on_track_select": [2, 9], "open_directori": [2, 9], "open_mocap_imag": [2, 9], "open_preprocess_imag": [2, 9], "open_raw": [2, 9], "open_reassign_imag": [2, 9], "open_segment_imag": [2, 9], "option": 4, "organelle_area": 4, "organelle_axis_length_maj": 4, "organelle_axis_length_min": 4, "organelle_ext": 4, "organelle_solid": 4, "otsu_effect": [3, 8], "otsu_thresh_intens": [3, 6], "otsu_threshold": [3, 8], "output": 4, "output_dir": [3, 5], "output_path": 5, "over": 4, "overlai": [2, 9], "packag": [0, 2], "parent": 9, "pathwai": 4, "pipeline_path": 5, "pixel": 4, "plot_data": [2, 9], "post_init": [2, 9], "preprocess": 4, "presenc": 4, "process": 4, "process_directori": [2, 3], "process_fil": [2, 3], "qtabwidget": 9, "qwidget": 9, "r": 5, "ratio": 4, "raw": 4, "re": 4, "read_fil": [3, 5], "read_mod": 5, "reassign": 4, "reassigned_label": 4, "relat": 4, "remove_edg": [3, 6], "remove_intermedi": [3, 5], "reset": [2, 9], "reset_statu": [2, 9], "restructuredtext": 0, "result": 4, "return_memmap": 5, "rewrite_dropdown": [2, 9], "run": [2, 4, 6, 7], "run_feature_export": [2, 9], "run_mocap": [2, 9], "run_nelli": [2, 9], "run_preprocess": [2, 9], "run_reassign": [2, 9], "run_segment": [2, 9], "run_track": [2, 9], "save": 4, "save_graph": [2, 9], "save_ome_tiff": [3, 5], "screenshot": [2, 9], "see": 0, "segment": [2, 3], "select_filepath": [2, 9], "select_fold": [2, 9], "select_temporal_rang": [3, 5], "set": [2, 9], "set_default_dropdown": [2, 9], "set_scal": [2, 9], "set_statu": [2, 9], "set_ui": [2, 9], "skeleton": 4, "skip": 4, "skip_coord": 7, "skip_nod": 4, "snr_clean": 6, "solid": 4, "sourc": [1, 3, 4, 5, 6, 7, 8, 9], "space": 4, "start": 5, "start_fram": 7, "start_t": 7, "state": 9, "statist": 4, "stats_to_aggreg": 4, "statu": 4, "store": 4, "str": [5, 7], "structur": 4, "submodul": [2, 10], "subpackag": 2, "substr": 3, "syntax": 0, "t": [4, 7], "t_slice": 8, "test": [0, 2], "test_frangi_filt": [2, 10], "test_im_info": [2, 10], "text": 9, "thick": 4, "threshold": [3, 6], "tif": 5, "time": 4, "titl": 9, "to_append": 4, "toggle_match_t": [2, 9], "toggle_mean_m": [2, 9], "torch_xp": [2, 3], "tortuos": 4, "track": [2, 3], "track_al": [2, 9], "transform": 4, "triangle_threshold": [3, 8], "true": [4, 5, 6, 7], "tupl": 4, "turn_off_button": [2, 9], "turn_off_pipelin": [2, 9], "type": 4, "unit": [2, 10], "updat": 4, "update_statu": [2, 9], "us": [0, 4], "use_im": 6, "util": [2, 3], "validate_path": [2, 9], "valu": 4, "vec01": 4, "vec12": 4, "vector": 4, "veloc": 4, "verger": 4, "verifi": [2, 3], "viewer": [4, 6, 7, 9], "vox_next": 7, "vox_prev": 7, "voxel": [3, 4], "voxel_idx": 4, "voxel_reassign": [2, 3], "voxelreassign": [3, 7], "whether": 4, "which": 4, "x": 4, "y": 4, "your": 0, "z": 4}, "titles": ["Nellie documentation", "main module", "nellie", "nellie package", "nellie.feature_extraction package", "nellie.im_info package", "nellie.segmentation package", "nellie.tracking package", "nellie.utils package", "nellie_napari package", "tests package", "tests.unit package"], "titleterms": {"all_tracks_for_label": 7, "attribut": 4, "base_logg": 8, "cli": 3, "content": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11], "document": 0, "feature_extract": 4, "filter": 6, "flow_interpol": 7, "gener": 8, "gpu_funct": 8, "hierarch": 4, "hu_track": 7, "im_info": 5, "label": 6, "main": 1, "mocap_mark": 6, "modul": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "nelli": [0, 2, 3, 4, 5, 6, 7, 8], "nellie_analysi": 9, "nellie_fileselect": 9, "nellie_hom": 9, "nellie_load": 9, "nellie_napari": 9, "nellie_processor": 9, "nellie_set": 9, "nellie_visu": 9, "network": 6, "packag": [3, 4, 5, 6, 7, 8, 9, 10, 11], "paramet": 4, "return": 4, "run": 3, "segment": 6, "submodul": [3, 4, 5, 6, 7, 8, 9, 11], "subpackag": [3, 10], "test": [10, 11], "test_frangi_filt": 11, "test_im_info": 11, "torch_xp": 8, "track": 7, "unit": 11, "util": 8, "verifi": 5, "voxel_reassign": 7}}) \ No newline at end of file diff --git a/nellie/feature_extraction/hierarchical.py b/nellie/feature_extraction/hierarchical.py index f257924..d538d94 100644 --- a/nellie/feature_extraction/hierarchical.py +++ b/nellie/feature_extraction/hierarchical.py @@ -1052,6 +1052,26 @@ def run(self): def aggregate_stats_for_class(child_class, t, list_of_idxs): + """ + Aggregates statistical metrics (mean, standard deviation, min, max, sum) for features of a given class at + a specific time frame. + + Parameters + ---------- + child_class : object + The class from which the feature data is extracted. It should contain a list of statistics to aggregate + (i.e., `stats_to_aggregate`) and corresponding feature arrays. + t : int + The time frame index for which the aggregation is performed. + list_of_idxs : list of lists + A list where each sublist contains the indices of data points that should be grouped together for aggregation. + + Returns + ------- + dict + A dictionary where the keys are feature names and the values are dictionaries containing aggregated + statistics for each feature (mean, standard deviation, min, max, sum). + """ # initialize a dictionary to hold lists of aggregated stats for each stat name # aggregate_stats = { # stat_name: {"mean": [], "std_dev": [], "25%": [], "50%": [], "75%": [], "min": [], "max": [], "range": [], @@ -1330,6 +1350,23 @@ def run(self): def distance_check(border_mask, check_coords, spacing): + """ + Calculates the minimum distance between given coordinates and a border mask using a KD-tree. + + Parameters + ---------- + border_mask : numpy.ndarray + A binary mask where the border is marked as `True`. + check_coords : numpy.ndarray + Coordinates of the points for which distances to the border will be calculated. + spacing : tuple or list + The spacing of the image dimensions (used to scale the coordinates). + + Returns + ------- + numpy.ndarray + An array of distances from each point in `check_coords` to the nearest border point. + """ border_coords = np.argwhere(border_mask) * spacing border_tree = spatial.cKDTree(border_coords) dist, _ = border_tree.query(check_coords * spacing, k=1)