API#
See also
Quickstart - Step-by-step introduction and workflows
PySNT Overview - Core concepts and detailed usage patterns
Quirks and Limitations - Known limitations and workarounds
Documentation Types#
PySNT provides two API documentation approaches:
Auto-Generated API Documentation - Python API reference with type hints and signatures
Method Index - Alphabetical index of all SNT methods
Class Index - Alphabetical index of all SNT classes
Constants Index - Index of public static fields (constants)
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 |
|---|---|---|
main package interface with root classes and core functionality |
||
neuronal morphology analysis tools and statistics |
||
handling neuronal reconstructions as graphs |
||
growth analysis of neurites across time |
||
Sholl analysis |
||
handling of neuropil annotations and atlases metadata |
||
import of neuronal reconstructions from multiple sources |
||
tracing tools |
||
Utility classes and helper functions |
||
2D and 3D visualization utilities |
PySNT Module |
Description |
|---|---|
Configuration system for PySNT |
|
Converters that transform SNT Java objects into Python equivalents |
|
Handles initialization and setup functions |
|
GUI utilities for PySNT to handle threading and platform-specific issues. |
|
Java environment management utilities |
|
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 |
|
Discoverable classes |
Advanced/uncommon tasks |
Basic |
Slower on first access, then cached |
|
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)