From eee7de9170ee8f0c7214bc14a2257ff8087dc645 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Thu, 21 Sep 2023 10:37:10 +0200 Subject: [PATCH] added skeleton path length example to docs (#945) * added skeleton path length example to docs * Update docs/src/webknossos-py/examples/load_annotation_from_file.md Co-authored-by: Norman Rzepka * Update docs/src/webknossos-py/examples/load_annotation_from_file.md Co-authored-by: Norman Rzepka * added tests * fix test for load_annotation_file example * fix test * fix tests? --------- Co-authored-by: Norman Rzepka --- docs/mkdocs.yml | 2 + .../examples/load_annotation_from_file.md | 11 ++++ .../examples/skeleton_path_length.md | 9 +++ .../examples/load_annotation_from_file.py | 37 ++++++++++++ webknossos/examples/skeleton_path_length.py | 55 ++++++++++++++++++ ...nse_motta_et_al_demo_v2__explorational.zip | Bin 0 -> 85866 bytes webknossos/tests/test_examples.py | 22 +++++++ 7 files changed, 136 insertions(+) create mode 100644 docs/src/webknossos-py/examples/load_annotation_from_file.md create mode 100644 docs/src/webknossos-py/examples/skeleton_path_length.md create mode 100644 webknossos/examples/load_annotation_from_file.py create mode 100644 webknossos/examples/skeleton_path_length.py create mode 100644 webknossos/tests/example_files/l4dense_motta_et_al_demo_v2__explorational.zip diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 20a06f78a..a821e9075 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -96,6 +96,8 @@ nav: - webknossos-py/examples/skeleton_synapse_candidates.md - webknossos-py/examples/calculate_segment_sizes.md - webknossos-py/examples/download_segments.md + - webknossos-py/examples/load_annotation_from_file.md + - webknossos-py/examples/skeleton_path_length.md - Administration Examples: - webknossos-py/examples/user_times.md - webknossos-py/examples/annotation_project_administration.md diff --git a/docs/src/webknossos-py/examples/load_annotation_from_file.md b/docs/src/webknossos-py/examples/load_annotation_from_file.md new file mode 100644 index 000000000..e28c4cb39 --- /dev/null +++ b/docs/src/webknossos-py/examples/load_annotation_from_file.md @@ -0,0 +1,11 @@ +# Annotation File to OME-TIFF + +This example shows how to turn a volume annotation downloaded from WEBKNOSSOS into a OME-TIFF. When [manually downloading a WEBKNOSSOS annotation](/webknossos/export.html#data-export-through-the-ui) through the UI you end up with a ZIP file containing the volume segmentation in the WKW-format (and potentially any skeleton annotation). + +As an alternative to manually downloading annotation files, have a look at streaming the data directly from the remote serve, e.g., in [this example](./download_segments.html). + +```python +--8<-- +webknossos/examples/load_annotation_from_file.py +--8<-- +``` diff --git a/docs/src/webknossos-py/examples/skeleton_path_length.md b/docs/src/webknossos-py/examples/skeleton_path_length.md new file mode 100644 index 000000000..314ec27e4 --- /dev/null +++ b/docs/src/webknossos-py/examples/skeleton_path_length.md @@ -0,0 +1,9 @@ +# Skeleton Path Length + +This example shows how to downloaded a skeleton annotation from WEBKNOSSOS and calcuate the total path length along all edges of each tree. + +```python +--8<-- +webknossos/examples/skeleton_path_length.py +--8<-- +``` diff --git a/webknossos/examples/load_annotation_from_file.py b/webknossos/examples/load_annotation_from_file.py new file mode 100644 index 000000000..b0b6783f4 --- /dev/null +++ b/webknossos/examples/load_annotation_from_file.py @@ -0,0 +1,37 @@ +from pathlib import Path + +from tifffile import imwrite + +import webknossos as wk + +# Specify a bounding box for cutouts +# (topleft_x, topleft_y, topleft_z), (width, height, depth) +BOUNDING_BOX = wk.BoundingBox((0, 0, 0), (500, 500, 50)) + + +def load_annotation(annotation_file: Path) -> None: + # Read the WEBKNOSSOS annotation file (a zipped WKW) + annotation = wk.Annotation.load(annotation_file) + + # Treat it as a regular WK volume layer + with annotation.temporary_volume_layer_copy() as segmentation_layer: + # Do any standard layer operation, e.g. reading a cutout as a numpy array + mag_view = segmentation_layer.get_finest_mag() + segments = mag_view.read(absolute_bounding_box=BOUNDING_BOX) + + # Write segmentation IDs to an OME Tiff file + imwrite( + "segmentation.ome.tiff", + segments.T, # note, the tiff lib use different channel order + ome=True, + metadata={ + "axes": "ZYXC", + }, + ) + + +if __name__ == "__main__": + # Path to annotation file on your computer + ANNOTATION_FILE = Path("my_annotation_file.zip") + + load_annotation(ANNOTATION_FILE) diff --git a/webknossos/examples/skeleton_path_length.py b/webknossos/examples/skeleton_path_length.py new file mode 100644 index 000000000..3ce356247 --- /dev/null +++ b/webknossos/examples/skeleton_path_length.py @@ -0,0 +1,55 @@ +from typing import Tuple + +import numpy as np + +import webknossos as wk + + +def calculate_path_length(annotation_url: str, auth_token: str) -> None: + with wk.webknossos_context(token=auth_token): + # Download a annotation directly from the WEBKNOSSOS server + annotation = wk.Annotation.download( + annotation_url, + ) + + skeleton = annotation.skeleton + voxel_size = annotation.voxel_size + + # Iterate over all the tree in a skeleton and calculate their path length + for tree in skeleton.flattened_trees(): + path_length = calculate_path_length_for_tree(tree, voxel_size) + + # Log the results :-) + print(f"Tree {tree.name} has a path length of {path_length:.2f} nm") + + +def calculate_path_length_for_tree( + tree: wk.Tree, voxel_size: Tuple[float, float, float] +) -> float: + # Auxillary method calculate the maximum path length of a given tree + # Assumes that the annotation does not contain any cycles + + assert ( + len(tree.nodes) > 1 + ), "Each tree should have at least two nodes to calculate the path length" + result = 0 + + # Iterate over all edges + for source_node, target_node in tree.edges: + diff_vector = np.array(source_node.position) - np.array(target_node.position) + scaled_diff_vector = diff_vector * voxel_size + edge_length = np.sqrt(scaled_diff_vector.dot(scaled_diff_vector)) + result += edge_length + + return result + + +if __name__ == "__main__": + # Authentication and API token for your account + # Get it at https://webknossos.org/auth/token + TOKEN = "YOUR-token" + + # A WEBKNOSOS URL containing the skeleton annotation + ANNOTATION_URL = "https://webknossos.org/annotations/12345678" + + calculate_path_length(ANNOTATION_URL, TOKEN) diff --git a/webknossos/tests/example_files/l4dense_motta_et_al_demo_v2__explorational.zip b/webknossos/tests/example_files/l4dense_motta_et_al_demo_v2__explorational.zip new file mode 100644 index 0000000000000000000000000000000000000000..1f82a5f28051ed409486a8dd172260685781a203 GIT binary patch literal 85866 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 literal 0 HcmV?d00001 diff --git a/webknossos/tests/test_examples.py b/webknossos/tests/test_examples.py index 860dfe750..07e3ae487 100644 --- a/webknossos/tests/test_examples.py +++ b/webknossos/tests/test_examples.py @@ -326,3 +326,25 @@ def test_download_tiff_stack() -> None: len(list(output_path.iterdir())) == mag_view.bounding_box.size.z / mag_view.mag.z ) + + +@pytest.mark.block_network(allowed_hosts=[".*"]) +@pytest.mark.vcr(ignore_hosts=["webknossos.org", "data-humerus.webknossos.org"]) +def test_skeleton_path_length() -> None: + from examples.skeleton_path_length import calculate_path_length + + # Public skeleton annotation by MH Lab + annotation_id = "https://webknossos.org/annotations/62b191ef010000e80033e7c0" + token = "123" + calculate_path_length(annotation_id, token) + + +def test_load_annotation_file() -> None: + from examples.load_annotation_from_file import load_annotation + + annotation_file = Path( + "./tests/example_files/l4dense_motta_et_al_demo_v2__explorational.zip" + ).resolve() + + with tmp_cwd(): + load_annotation(annotation_file)