def test_make_neuron_post_tree_action(): def post_action(t): t.bar = 'foo' rd = RAW_DATA[0] nrn = utils.make_neuron(rd, post_action) for t in nrn.neurites: nt.ok_(hasattr(t, 'bar') and t.bar == 'foo')
def test_make_neuron_no_soma_raises_SomaError(): utils.make_neuron(NO_SOMA_RAW_DATA)
def test_make_neuron(): rd = RAW_DATA[0] nrn = utils.make_neuron(rd) nt.ok_(np.all([s[COLS.ID] for s in nrn.soma.iter()] == SOMA_IDS[0])) _check_trees(nrn.neurites)
from neurom.point_neurite.io.utils import make_neuron from neurom.point_neurite.point_tree import PointTree from neurom.point_neurite import bifurcations as bif from neurom.point_neurite.core import iter_neurites import math class MockNeuron(object): pass DATA_PATH = './test_data' SWC_PATH = os.path.join(DATA_PATH, 'swc/') data = io.load_data(SWC_PATH + 'Neuron.swc') neuron0 = make_neuron(data) tree0 = neuron0.neurites[0] def _make_neuron_tree(): p = [0.0, 0.0, 0.0, 1.0, 1, 1, 2] T = PointTree(p) T1 = T.add_child(PointTree([0.0, 1.0, 0.0, 1.0, 1, 1, 2])) T2 = T1.add_child(PointTree([0.0, 2.0, 0.0, 1.0, 1, 1, 2])) T3 = T2.add_child(PointTree([0.0, 4.0, 0.0, 2.0, 1, 1, 2])) T4 = T3.add_child(PointTree([0.0, 5.0, 0.0, 2.0, 1, 1, 2])) T5 = T4.add_child(PointTree([2.0, 5.0, 0.0, 1.0, 1, 1, 2])) T6 = T4.add_child(PointTree([0.0, 5.0, 2.0, 1.0, 1, 1, 2])) T7 = T5.add_child(PointTree([3.0, 5.0, 0.0, 0.75, 1, 1, 2])) T8 = T7.add_child(PointTree([4.0, 5.0, 0.0, 0.75, 1, 1, 2])) T9 = T6.add_child(PointTree([0.0, 5.0, 3.0, 0.75, 1, 1, 2])) T10 = T9.add_child(PointTree([0.0, 6.0, 3.0, 0.75, 1, 1, 2]))
from neurom.point_neurite.io.utils import make_neuron from neurom import io from neurom.point_neurite import io as pt_io from neurom.view import view from neurom.point_neurite.treefunc import set_tree_type import os import numpy as np import pylab as plt from neurom.point_neurite.point_tree import PointTree DATA_PATH = './test_data' SWC_PATH = os.path.join(DATA_PATH, 'swc/') pt_raw_data = pt_io.load_data(SWC_PATH + 'Neuron.swc') pt_neuron = make_neuron(pt_raw_data, set_tree_type) soma0 = pt_neuron.soma fst_neuron = io.load_neuron(os.path.join(SWC_PATH, 'Neuron.swc')) def test_tree(): axes = [] for tree in pt_neuron.neurites: fig, ax = view.tree(tree) axes.append(ax) nt.ok_(axes[0].get_data_ratio() > 1.00 ) nt.ok_(axes[1].get_data_ratio() > 0.80 ) nt.ok_(axes[2].get_data_ratio() > 1.00 ) nt.ok_(axes[3].get_data_ratio() > 0.85 ) tree0 = pt_neuron.neurites[0]
"""Calculate inter-segment angles""" import logging import numpy as np from neurom.core.dataformat import COLS from neurom.point_neurite import triplets as trip from neurom.point_neurite.io.utils import load_data, make_neuron from neurom.point_neurite.core import iter_neurites # root level logger. This would be a top level application logger. logging.basicConfig() LOG = logging.getLogger() LOG.setLevel(logging.DEBUG) fmt = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") LOG.handlers[0].setFormatter(fmt) if __name__ == "__main__": filename = "test_data/swc/Neuron.swc" rd = load_data(filename) nrn = make_neuron(rd) for tt in nrn.neurites: print "Tree ID: {0}, type: {1}".format(tt.value[COLS.ID], tt.value[COLS.TYPE]) for a in iter_neurites(tt, trip.meander_angle): LOG.debug("Angle %f", a) if np.isnan(a): LOG.warn("Found NaN angle. Check for zero length segments!")