Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_empty_neurite():
m = Morphology()
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
root = m.append_root_section(PointLevel(), SectionType.axon)
assert_equal(err.getvalue().strip(),
'Warning: appending empty section with id: 0')
assert_equal(len(m.root_sections), 1)
assert_equal(m.root_sections[0].type,
SectionType.axon)
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
root.append_section(PointLevel(), SectionType.axon)
assert_equal(err.getvalue().strip(),
'Warning: appending empty section with id: 1')
assert_equal(n.root_sections[1].type, 2)
n = Morphology(os.path.join(H5V1_PATH, 'Neuron.h5'))
assert_equal(n.version, MORPHOLOGY_VERSION_H5_1)
assert_equal(len(n.sections), 84)
assert_equal(len(n.soma.points), 3)
assert_equal(len(list(n.iter())), 84)
assert_equal(len(n.points), 924)
section_types = list(s.type for s in n.iter())
assert_equal(len(section_types), 84)
real_section_types = list(chain(repeat(SectionType.apical_dendrite, 21),
repeat(SectionType.basal_dendrite, 42),
repeat(SectionType.axon, 21)))
assert_equal(section_types, real_section_types)
assert_array_equal(n.points[:7],
[[0.0, 0.0, 0.0],
[0.0, 0.0, 0.10000000149011612],
[0.5529246926307678, -0.7534923553466797, 0.9035181403160095],
[1.2052767276763916, -1.3861794471740723, 1.6835479736328125],
[1.2670834064483643, -1.3914604187011719, 2.4186644554138184],
[1.271288275718689, -2.3130500316619873, 3.192789077758789],
[1.605881929397583, -2.6893420219421387, 3.992844343185425]])
def test_mut_copy_ctor():
simple = Morphology(os.path.join(_path, "simple.swc"))
assert_equal([sec.id for sec in simple.iter()],
[0, 1, 2, 3, 4, 5])
copy = Morphology(simple)
copy.append_root_section(PointLevel([[1, 2, 3], [4, 5, 6]],
[2, 2],
[20, 20]),
SectionType.axon)
# test that first object has not been mutated
assert_equal([sec.id for sec in simple.iter()],
[0, 1, 2, 3, 4, 5])
assert_equal([sec.id for sec in copy.iter()],
[0, 1, 2, 3, 4, 5, 6])
def test_write_basic():
morpho = Morphology()
morpho.soma.points = [[0, 0, 0]]
morpho.soma.diameters = [2]
dendrite = morpho.append_root_section(PointLevel([[0, 0, 0], [0, 5, 0]], [2, 2]),
SectionType.basal_dendrite)
dendrite.append_section(PointLevel([[0, 5, 0], [-5, 5, 0]], [2, 3]))
dendrite.append_section(PointLevel([[0, 5, 0], [6, 5, 0]], [2, 3]))
axon = morpho.append_root_section(
PointLevel([[0, 0, 0],
[0, -4, 0]],
[2, 2]),
SectionType.axon)
axon.append_section(PointLevel([[0, -4, 0],
[6, -4, 0]],
[2, 4]))
axon = axon.append_section(PointLevel([[0, -4, 0],
[-5, -4, 0]],
[2, 4]))
with setup_tempdir('test_write_basic') as tmp_folder:
morpho.write(os.path.join(tmp_folder, "test_write.asc"))
morpho.write(os.path.join(tmp_folder, "test_write.swc"))
morpho.write(os.path.join(tmp_folder, "test_write.h5"))
expected = [[0., 0., 0.], [0., 5., 0.], [0., 5., 0.], [-5., 5., 0.],
[0., 5., 0.], [6., 5., 0.], [0., 0., 0.], [0., -4., 0.],
def test_duplicate_different_diameter():
'''Test that starting a child section with a different diamete
work as expected'''
morpho = Morphology()
morpho.soma.points = [[0, 0, 0], [1, 1, 1]]
morpho.soma.diameters = [1, 1]
section = morpho.append_root_section(PointLevel([[2, 2, 2], [3, 3, 3]],
[4, 4]),
SectionType.axon,)
section.append_section(PointLevel([[3, 3, 3], [4, 4, 4]], [10, 12]))
section.append_section(PointLevel([[3, 3, 3], [5, 5, 5]], [11, 12]))
with setup_tempdir('test_write_duplicate_different_diameter', no_cleanup=True) as tmp_folder:
for ext in ['asc', 'h5', 'swc']:
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
outfile = os.path.join(tmp_folder, 'tmp.' + ext)
morpho.write(outfile)
read = Morphology(outfile)
assert_equal(len(read.root_sections[0].children), 2)
child1, child2 = read.root_sections[0].children
[SectionType.axon,
SectionType.basal_dendrite,
SectionType.apical_dendrite])
normal = Morphology(os.path.join(_path, 'reversed_NRN_neurite_order.swc'))
m = MutableMorphology(normal, options=Option.nrn_order)
assert_equal([section.type for section in m.root_sections],
[SectionType.axon,
SectionType.basal_dendrite,
SectionType.apical_dendrite])
normal = MutableMorphology(os.path.join(_path, 'reversed_NRN_neurite_order.swc'))
m = MutableMorphology(normal, options=Option.nrn_order)
assert_equal([section.type for section in m.root_sections],
[SectionType.axon,
SectionType.basal_dendrite,
SectionType.apical_dendrite])