tracksdata.functional
Functional utilities for graph operations.
Functions:
-
rx_digraph_to_napari_dict
–Convert a tracklet graph to a napari-ready dictionary.
-
to_napari_format
–Convert the subgraph of solution nodes to a napari-ready format.
rx_digraph_to_napari_dict
Convert a tracklet graph to a napari-ready dictionary. The input is a (child -> parent) graph (forward in time) and it is converted to a (parent -> child) dictionary (backward in time).
Parameters
tracklet_graph : rx.PyDiGraph The tracklet graph to convert.
Returns
dict[int, list[int]] A dictionary of parent -> child relationships.
Source code in src/tracksdata/functional/_napari.py
to_napari_format
to_napari_format(graph: BaseGraph, shape: tuple[int, ...], solution_key: str | None = DEFAULT_ATTR_KEYS.SOLUTION, output_track_id_key: str = DEFAULT_ATTR_KEYS.TRACK_ID, mask_key: str | None = None, chunk_shape: tuple[int] | None = None, buffer_cache_size: int | None = None) -> tuple[pl.DataFrame, dict[int, int], GraphArrayView] | tuple[pl.DataFrame, dict[int, int]]
Convert the subgraph of solution nodes to a napari-ready format.
This includes:
- a tracks layer with the solution tracks
- a graph with the parent-child relationships for the solution tracks
- a labels layer with the solution nodes if mask_key
is provided.
IMPORTANT: This function will reset the track ids if they already exist.
Parameters:
-
graph
BaseGraph
) –The graph to convert.
-
shape
tuple[int, ...]
) –The shape of the labels layer.
-
solution_key
str
, default:SOLUTION
) –The key of the solution attribute. If None, the graph is not filtered by the solution attribute.
-
output_track_id_key
str
, default:TRACK_ID
) –The key of the output track id attribute.
-
mask_key
str | None
, default:None
) –The key of the mask attribute.
-
chunk_shape
tuple[int] | None
, default:None
) –The chunk shape for the labels layer. If None, the default chunk size is used.
-
buffer_cache_size
int
, default:None
) –The maximum number of buffers to keep in the cache for the labels layer. If None, the default buffer cache size is used.
Examples:
labels = ...
graph = ...
tracks_data, dict_graph, array_view = to_napari_format(graph, labels.shape, mask_key="mask")
Returns:
-
tuple[DataFrame, dict[int, int], GraphArrayView] | tuple[DataFrame, dict[int, int]]
–- tracks_data: The tracks data as a polars DataFrame.
- dict_graph: A dictionary of parent -> child relationships.
- array_view: The array view of the solution graph if
mask_key
is provided.
Source code in src/tracksdata/functional/_napari.py
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
|