API#

See also

Documentation Types#

PySNT provides two API documentation approaches:

API Organization#

PySNT modules map directly into SNT’s Java API, so that e.g., pysnt.analysis() mirrors SNT’s sc.fiji.snt.analysis package.

SNT Module

Description

SNT API Match

pysnt package

main package interface with root classes and core functionality

pysnt.analysis package

neuronal morphology analysis tools and statistics

pysnt.analysis.graph package

handling neuronal reconstructions as graphs

pysnt.analysis.growth package

growth analysis of neurites across time

pysnt.analysis.sholl package

Sholl analysis

pysnt.annotation package

handling of neuropil annotations and atlases metadata

pysnt.io package

import of neuronal reconstructions from multiple sources

pysnt.tracing package

tracing tools

pysnt.util package

Utility classes and helper functions

pysnt.viewer package

2D and 3D visualization utilities

PySNT Module

Description

pysnt.config module

Configuration system for PySNT

pysnt.converters package

Converters that transform SNT Java objects into Python equivalents

pysnt.core module

Handles initialization and setup functions

pysnt.gui_utils module

GUI utilities for PySNT to handle threading and platform-specific issues.

pysnt.java_utils module

Java environment management utilities

pysnt.setup_utils module

Setup and configuration helpers

Quick Reference#

Essential Imports#

import pysnt
from pysnt import SNTService, Tree
from pysnt.analysis import TreeStatistics

Essential Functions#

pysnt.initialize()          # Start PySNT
pysnt.display(obj)          # Smart display any object
pysnt.list_classes()        # Explore available classes
pysnt.get_methods(cls)      # Explore class methods
pysnt.find_members(cls, kw) # Search for functionality

Memory Configuration#

pysnt.initialize(max_heap="8g")     # 8GB heap
pysnt.initialize(max_heap="16g", min_heap="4g")  # 16GB max, 4GB initial

Configuration#

pysnt.set_option('display.table_mode', 'pandasgui')
pysnt.set_option('display.chart_format', 'svg')

Initialization#

import pysnt
pysnt.initialize()
pysnt.initialize('/path/to/Fiji.app', max_heap='8g')

Important

Important: pysnt is only available after pysnt.initialize() is called.

Import Strategies#

Three ways to import SNT classes:

Method

Coverage

Use Case

Autocompletion

Comments

Direct Import

Restricted to curated classes

Common tasks

Detailed

Fast, convenient

get_class()

Discoverable classes

Advanced/uncommon tasks

Basic

Slower on first access, then cached

scyjava.jimport()

Any Java class

Expert usage

N/A

May require a priori knowledge of SNT’s architecture

Discovery of Classes#

import pysnt.analysis as analysis
import pysnt.util as util

# Discover what's available
print("Analysis classes:")
analysis.list_classes()
print("\nUtility classes:")
util.list_classes()

# Get class lists programmatically
analysis_classes = analysis.get_available_classes()
util_classes = util.get_available_classes()

# Get curated classes (always available for direct import)
curated = analysis.get_curated_classes()
print(f"Curated: {curated}")

# Get extended classes (available via get_class)
extended = analysis.get_extended_classes()
print(f"Extended: {extended}")

Discovery of Functions#

import pysnt
from pysnt.analysis import TreeStatistics
# Get all methods from TreeStatistics
methods = pysnt.get_methods(TreeStatistics)
# Find all members containing 'length'
results = pysnt.find_members(TreeStatistics, 'length')
# Get only static fields (constants)
constants = pysnt.get_fields(TreeStatistics, static_only=True)