Skip to content

Commit cdc12a4

Browse files
authored
Merge pull request #18 from funkelab/tuple_location_key
Allow tuple location key
2 parents 2d69e99 + ddb1c17 commit cdc12a4

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/motile_toolbox/visualization/napari_utils.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ def assign_tracklet_ids(graph: nx.DiGraph) -> nx.DiGraph:
3737
return graph, intertrack_edges
3838

3939

40+
def _get_location(graph, node, location_key):
41+
if isinstance(location_key, list) or isinstance(location_key, tuple):
42+
return [graph.nodes[node][dim] for dim in location_key]
43+
else:
44+
return graph.nodes[node][location_key]
45+
46+
4047
def to_napari_tracks_layer(
4148
graph, frame_key=NodeAttr.TIME.value, location_key=NodeAttr.POS.value, properties=()
4249
):
@@ -67,16 +74,14 @@ def to_napari_tracks_layer(
6774
case of track splitting, or more than one (the track has multiple
6875
parents, but only one child) in the case of track merging.
6976
"""
70-
for _, loc in graph.nodes(data=location_key):
71-
ndim = len(loc)
72-
break
77+
ndim = len(_get_location(graph, next(iter(graph.nodes)), location_key))
7378
napari_data = np.zeros((graph.number_of_nodes(), ndim + 2))
7479
napari_properties = {prop: np.zeros(graph.number_of_nodes()) for prop in properties}
7580
napari_edges = {}
7681
graph, intertrack_edges = assign_tracklet_ids(graph)
7782
for index, node in enumerate(graph.nodes(data=True)):
7883
node_id, data = node
79-
location = data[location_key]
84+
location = _get_location(graph, node_id, location_key)
8085
napari_data[index] = [data["tracklet_id"], data[frame_key], *location]
8186
for prop in properties:
8287
if prop in data:

0 commit comments

Comments
 (0)