Skip to main content

Python package for evaluating neuron segmentations in terms of the number of splits and merges

Project description

aind-segmentation-evaluation

License Code Style

semantic-release: angular

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.

Usage

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])

Installation

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

Pull requests

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:

  • build: Changes that affect build tools or external dependencies (example scopes: pyproject.toml, setup.py)
  • ci: Changes to our CI configuration files and scripts (examples: .github/workflows/ci.yml)
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bugfix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • test: Adding missing tests or correcting existing tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aind_segmentation_evaluation-0.1.48.tar.gz (119.1 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file aind_segmentation_evaluation-0.1.48.tar.gz.

File metadata

File hashes

Hashes for aind_segmentation_evaluation-0.1.48.tar.gz
Algorithm Hash digest
SHA256 545fd156b3054d227c56df5d242e0b059fa541b89477e035dd5f33c34545c56b
MD5 cfb7e4ad97400781b289b9c1283f8067
BLAKE2b-256 8da1e1e129c8e619fe0e2f16ac29fae5da5dce373881fe327801d3dbbef358e9

See more details on using hashes here.

File details

Details for the file aind_segmentation_evaluation-0.1.48-py3-none-any.whl.

File metadata

File hashes

Hashes for aind_segmentation_evaluation-0.1.48-py3-none-any.whl
Algorithm Hash digest
SHA256 b332c22245752fbd86818b33ed3d54719f70c2507822610b1573fea93a6a870d
MD5 83177e7132f344e5c03d1539ca081bfe
BLAKE2b-256 d7e65f7fec390aea1ed100913a261ce1f3060abfafcb8fd87f1e2b38b693e2e4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page