예제 #1
0
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')
예제 #2
0
def test_make_neuron_no_soma_raises_SomaError():
    utils.make_neuron(NO_SOMA_RAW_DATA)
예제 #3
0
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)
예제 #4
0
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]))
예제 #5
0
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]
예제 #6
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!")