def neurite_centre_of_mass(neurite):
    '''Calculate and return centre of mass of a neurite.'''
    centre_of_mass = np.zeros(3)
    total_volume = 0
    for segment in tree.val_iter(tree.isegment(neurite)):
        seg_volume = morphmath.segment_volume(segment)
        centre_of_mass = centre_of_mass + seg_volume * segment_centre_of_mass(segment)
        total_volume += seg_volume
    return centre_of_mass / total_volume
Example #2
0
def neurite_centre_of_mass(neurite):
    '''Calculate and return centre of mass of a neurite.'''
    centre_of_mass = np.zeros(3)
    total_volume = 0
    for segment in tree.val_iter(tree.isegment(neurite)):
        seg_volume = morphmath.segment_volume(segment)
        centre_of_mass = centre_of_mass + seg_volume * segment_centre_of_mass(
            segment)
        total_volume += seg_volume
    return centre_of_mass / total_volume
Example #3
0
def test_segment_volume():
    p0 = Point(0.0, 0.0, 0.0, 3.0, 1)
    p1 = Point(2.0, 0.0, 0.0, 3.0, 1)
    p2 = Point(4.0, 0.0, 0.0, 3.0, 1)
    p3 = Point(4.0, 0.0, 0.0, 6.0, 1)
    p4 = Point(1.0, 0.0, 0.0, 3.0, 1)
    p5 = Point(4.0, 0.0, 0.0, 3.0, 1)

    v01 = segment_volume((p0, p1))
    v02 = segment_volume((p0, p2))
    v03 = segment_volume((p0, p3))
    v04 = segment_volume((p0, p4))
    v45 = segment_volume((p4, p5))
    v05 = segment_volume((p0, p5))

    nt.assert_almost_equal(v01, 56.5486677, places=6)
    nt.assert_almost_equal(2*v01, v02)
    nt.assert_almost_equal(v03, 263.8937829, places=6)
    nt.assert_almost_equal(v45, v05 - v04)
    nt.assert_almost_equal(segment_volume((p0, p3)), segment_volume((p3, p0)))