Difference between revisions of "SNT: Python Notebooks"

(Getting Started)
(Redirect to updated content)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Python Notebooks=
+
#REDIRECT [[SNT:_Scripting#Python_Notebooks]]
Direct access to the SNT API from the [https://www.python.org/ Python] programming language is made possible with the [https://pypi.org/project/pyimagej/ pyimagej] module. This enables full integration between SNT and any library in the Python ecosystem.
 
==Installing pyimagej==
 
Follow the instructions given [https://github.com/imagej/pyimagej#installation here]
 
==Getting Started==
 
To initialize Fiji from Python:
 
<source lang="python">
 
import imagej
 
ij = imagej.init('sc.fiji:fiji')
 
</source>
 
Then, use [https://github.com/kivy/pyjnius pyjnius] (bundled with pyimagej) to import the SNT (Java) classes you need. For example, to download a neuron reconstruction from the MouseLight database and calculate summary statistics on it, you would import the [http://javadoc.scijava.org/Fiji/tracing/io/MouseLightLoader MouseLightLoader] and [http://javadoc.scijava.org/Fiji/tracing/analysis/TreeStatistics.html TreeStatistics] classes:
 
 
 
<source lang="python">
 
from jnius import autoclass
 
MouseLightLoader = autoclass('tracing.io.MouseLightLoader')
 
TreeStatistics  = autoclass('tracing.analysis.TreeStatistics')
 
</source>
 
Now you can access all the attributes and methods these classes offer. Let's get a summary of the inter-node distances for a cortical motor neuron (UUID = "AA0100" in the MouseLight database).
 
<source lang="python">
 
d_stats = TreeStatistics(tree)
 
metric = TreeStatistics.INTER_NODE_DISTANCE
 
summary_stats = d_stats.getSummaryStats(metric)
 
d_stats.getHistogram(metric).show()
 
print("The average inter-node distance is %d" % summary_stats.getMean())
 
</source>
 

Latest revision as of 05:24, 19 May 2019