Observed since 21 Oct, 11:30 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Python package for evaluating neuron segmentations in terms of the number of splits and merges
Python package for performing a skeleton-based evaluation of a predicted segmentation of neural arbors. This tool detects topological mistakes (i.e. splits and merges) in the predicted segmentation by comparing it to the ground truth skeleton. Once this comparison is complete, several statistics (e.g. edge accuracy, split count, merge count) are computed and returned in a dictionary. There is also an optional to write either tiff or swc files that highlight each topological mistake.
Here is a simple example of evaluating a predicted segmentation. Note that this package supports a number of different input types, see documentation for details.
import os
from aind_segmentation_evaluation.evaluate import run_evaluation
from aind_segmentation_evaluation.conversions import volume_to_graph
from tifffile import imread
if __name__ == "__main__":
# Initializations
data_dir = "./resources"
target_graphs_dir = os.path.join(data_dir, "target_graphs")
path_to_target_labels = os.path.join(data_dir, "target_labels.tif")
pred_labels = imread(os.path.join(data_dir, "pred_labels.tif"))
pred_graphs = volume_to_graph(pred_labels)
# Evaluation
stats = run_evaluation(
target_graphs_dir,
path_to_target_labels,
pred_graphs,
pred_labels,
filetype="tif",
output="tif",
output_dir=data_dir,
permute=[2, 1, 0],
scale=[1.101, 1.101, 1.101],
)
# Write out results
print("Graph-based evaluation...")
for key in stats.keys():
print(" {}: {}".format(key, stats[key])
To use the software, in the root directory, run
pip install -e .
To develop the code, run
pip install -e .[dev]
To install this package from PyPI, run
pip install aind-segmentation-evaluation
For internal members, please create a branch. For external members, please fork the repository and open a pull request from the fork. We'll primarily use Angular style for commit messages. Roughly, they should follow the pattern:
<type>(<scope>): <short summary>
where scope (optional) describes the packages affected by the code changes and type (mandatory) is one of:
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.48 | 1 Jul 2023 | 14 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 11:30 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1c27c2425b74d4a1fcb030acb6dee4924f3d61a73ba147ce361f1e48f5e3cc89