def has_valid_soma(data_wrapper): """Check if a data block has a valid soma""" try: make_soma(data_wrapper.soma_points()) return CheckResult(True) except SomaError: return CheckResult(False)
def has_valid_soma(data_wrapper): """Check if a data block has a valid soma. Returns: CheckResult with result """ try: make_soma(data_wrapper.soma_points()) return CheckResult(True) except SomaError: return CheckResult(False)
def has_valid_soma(data_wrapper): '''Check if a data block has a valid soma Returns: CheckResult with result ''' try: make_soma(data_wrapper.soma_points()) return CheckResult(True) except SomaError: return CheckResult(False)
def test_trunk_origin_elevations(): class Mock(object): pass n0 = Mock() n1 = Mock() s = make_soma([[0, 0, 0, 4]]) t0 = Section(((1, 0, 0, 2), (2, 1, 1, 2))) t0.type = NeuriteType.basal_dendrite t1 = Section(((0, 1, 0, 2), (1, 2, 1, 2))) t1.type = NeuriteType.basal_dendrite n0.neurites = [Neurite(t0), Neurite(t1)] n0.soma = s t2 = Section(((0, -1, 0, 2), (-1, -2, -1, 2))) t2.type = NeuriteType.basal_dendrite n1.neurites = [Neurite(t2)] n1.soma = s pop = Population([n0, n1]) nt.eq_(list(_nf.trunk_origin_elevations(pop)), [0.0, np.pi/2., -np.pi/2.]) nt.eq_( list(_nf.trunk_origin_elevations(pop, neurite_type=NeuriteType.basal_dendrite)), [0.0, np.pi/2., -np.pi/2.]) nt.eq_(len(_nf.trunk_origin_elevations(pop, neurite_type=NeuriteType.axon)), 0) nt.eq_(len(_nf.trunk_origin_elevations(pop, neurite_type=NeuriteType.apical_dendrite)), 0)
def test_trunk_origin_elevations(): class Mock(object): pass n0 = Mock() n1 = Mock() s = make_soma([[0, 0, 0, 4]]) t0 = Section(((1, 0, 0, 2), (2, 1, 1, 2))) t0.type = NeuriteType.basal_dendrite t1 = Section(((0, 1, 0, 2), (1, 2, 1, 2))) t1.type = NeuriteType.basal_dendrite n0.neurites = [Neurite(t0), Neurite(t1)] n0.soma = s t2 = Section(((0, -1, 0, 2), (-1, -2, -1, 2))) t2.type = NeuriteType.basal_dendrite n1.neurites = [Neurite(t2)] n1.soma = s pop = Population([n0, n1]) nt.eq_(list(_nf.trunk_origin_elevations(pop)), [0.0, np.pi / 2.0, -np.pi / 2.0]) nt.eq_( list(_nf.trunk_origin_elevations(pop, neurite_type=NeuriteType.basal_dendrite)), [0.0, np.pi / 2.0, -np.pi / 2.0], ) nt.eq_(len(_nf.trunk_origin_elevations(pop, neurite_type=NeuriteType.axon)), 0) nt.eq_(len(_nf.trunk_origin_elevations(pop, neurite_type=NeuriteType.apical_dendrite)), 0)
def __init__(self, data_wrapper, name="Neuron"): self._data = data_wrapper neurites, sections = make_neurites(self._data) soma = make_soma(self._data.soma_points(), _SOMA_ACTION[self._data.fmt]) super(FstNeuron, self).__init__(soma, neurites, sections) self.name = name self._points = None
def __init__(self, data_wrapper, name='Neuron'): self._data = data_wrapper neurites, sections = make_neurites(self._data) soma = make_soma(self._data.soma_points(), _SOMA_ACTION[self._data.fmt]) super(FstNeuron, self).__init__(soma, neurites, sections) self.name = name self._points = None
def test_trunk_origin_azimuths(): n0 = MockNeuron() n1 = MockNeuron() n2 = MockNeuron() n3 = MockNeuron() n4 = MockNeuron() n5 = MockNeuron() t = PointTree((0, 0, 0, 2)) t.type = NeuriteType.basal_dendrite n0.neurites = [t] n1.neurites = [t] n2.neurites = [t] n3.neurites = [t] n4.neurites = [t] n5.neurites = [t] pop = [n0, n1, n2, n3, n4, n5] s0 = make_soma([[0, 0, 1, 4]]) s1 = make_soma([[0, 0, -1, 4]]) s2 = make_soma([[0, 0, 0, 4]]) s3 = make_soma([[-1, 0, -1, 4]]) s4 = make_soma([[-1, 0, 0, 4]]) s5 = make_soma([[1, 0, 0, 4]]) pop[0].soma = s0 pop[1].soma = s1 pop[2].soma = s2 pop[3].soma = s3 pop[4].soma = s4 pop[5].soma = s5 nt.assert_true(np.all(get_feat('trunk_origin_azimuths', pop) == [-np.pi/2., np.pi/2., 0.0, np.pi/4., 0.0, np.pi])) nt.eq_(len(get_feat('trunk_origin_azimuths', pop, neurite_type=NeuriteType.axon)), 0)
def test_trunk_origin_elevation(): t = PointTree((1, 0, 0, 2)) s = make_soma([[0, 0, 0, 4]]) nt.assert_equal(mtr.trunk_origin_elevation(t, s), 0.0) t = PointTree((0, 1, 0, 2)) nt.assert_equal(mtr.trunk_origin_elevation(t, s), np.pi/2) t = PointTree((0, -1, 0, 2)) nt.assert_equal(mtr.trunk_origin_elevation(t, s), -np.pi/2) t = PointTree((0, 0, 0, 2)) try: mtr.trunk_origin_elevation(t, s) nt.ok_(False) except ValueError: nt.ok_(True)
def make_neuron(raw_data, tree_action=None): '''Build a neuron from a raw data block The tree contains rows of raw data. Parameters: raw_data: a DataWrapper object. tree_action: optional function to run on the built trees. Raises: SomaError if no soma points in raw_data or points incompatible with soma. IDSequenceError if filename contains invalid ID sequence ''' _soma = make_soma(raw_data.soma_points()) _trees = [make_point_tree(raw_data, iseg, tree_action) for iseg in get_initial_neurite_segment_ids(raw_data)] nrn = PointNeuron(_soma, _trees) nrn.data_block = raw_data return nrn
def test_trunk_origin_azimuth(): t = PointTree((0, 0, 0, 2)) s = make_soma([[0, 0, 1, 4]]) nt.assert_equal(mtr.trunk_origin_azimuth(t, s), -np.pi/2) s = make_soma([[0, 0, -1, 4]]) nt.assert_equal(mtr.trunk_origin_azimuth(t, s), np.pi/2) s = make_soma([[0, 0, 0, 4]]) nt.assert_equal(mtr.trunk_origin_azimuth(t, s), 0.0) s = make_soma([[-1, 0, -1, 4]]) nt.assert_equal(mtr.trunk_origin_azimuth(t, s), np.pi/4) s = make_soma([[-1, 0, 0, 4]]) nt.assert_equal(mtr.trunk_origin_azimuth(t, s), 0.0) s = make_soma([[1, 0, 0, 4]]) nt.assert_equal(mtr.trunk_origin_azimuth(t, s), np.pi)
def test_trunk_origin_elevations(): n0 = MockNeuron() n1 = MockNeuron() s = make_soma([[0, 0, 0, 4]]) t0 = PointTree((1, 0, 0, 2)) t0.type = NeuriteType.basal_dendrite t1 = PointTree((0, 1, 0, 2)) t1.type = NeuriteType.basal_dendrite n0.neurites = [t0, t1] n0.soma = s t2 = PointTree((0, -1, 0, 2)) t2.type = NeuriteType.basal_dendrite n1.neurites = [t2] n1.soma = s pop = [n0, n1] nt.assert_true(np.all(get_feat('trunk_origin_elevations', pop) == [0.0, np.pi/2., -np.pi/2.])) nt.eq_(len(get_feat('trunk_origin_elevations', pop, neurite_type=NeuriteType.axon)), 0)
from neurom.point_neurite.core import Neuron from neurom.core import make_soma from neurom.core import NeuriteType from neurom.point_neurite.treefunc import set_tree_type import neurom.point_neurite.dendrogram as dm TREE = PointTree(np.array([0., 0., 0., 10., 4., 0., 0.])) TREE.add_child(PointTree(np.array([3., 3., 3., 9., 4., 0., 0.]))) TREE.children[0].add_child(PointTree(np.array([10., 10., 10., 5., 4., 0., 0.]))) TREE.children[0].add_child(PointTree(np.array([-10., -10., -10., 7., 4., 0., 0.]))) set_tree_type(TREE) SOMA = make_soma(np.array([[0., 0., 0., 1., 1., 1., -1.]])) NEURON = Neuron(SOMA, [TREE, TREE, TREE]) OLD_OFFS = [1.2, -1.2] NEW_OFFS = [2.3, -2.3] SPACING = (40., 0.) def test_n_rectangles_tree(): nt.assert_equal(dm._n_rectangles(TREE), 5) def test_n_rectangles_neuron(): nt.assert_equal(dm._n_rectangles(NEURON), 16)
def test_deep_copy(): soma = make_soma([[0, 0, 0, 1, 1, 1, -1]]) nrn1 = Neuron(soma, [TREE]) nrn2 = deepcopy(nrn1) check_cloned_neuron(nrn1, nrn2)
def test_trunk_origin_direction(): t = PointTree((1, 0, 0, 2)) s = make_soma([[0, 0, 0, 4]]) nt.ok_(np.allclose(mtr.trunk_origin_direction(t, s), np.array([1, 0, 0])))