Skip to content
This repository was archived by the owner on Feb 26, 2025. It is now read-only.
This repository was archived by the owner on Feb 26, 2025. It is now read-only.

load_morphology(path).sections throws error #1097

@eleftherioszisis

Description

@eleftherioszisis
path = "tests/data/valid_set/Neuron.swc"

# this works as expected
m = load_morphology(path)
m.sections[0]

# these work as expected
load_morphology(path).points
load_morphology(path).neurites
load_morphology(path).soma.center
load_morphology(path).section(0)

# this fails
load_morphology(path).sections

Out[16]: ---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
File ~/Projects/BBP/NEUROM/venv310/lib/python3.10/site-packages/IPython/core/formatters.py:707, in PlainTextFormatter.__call__(self, obj)
    700 stream = StringIO()
    701 printer = pretty.RepresentationPrinter(stream, self.verbose,
    702     self.max_width, self.newline,
    703     max_seq_length=self.max_seq_length,
    704     singleton_pprinters=self.singleton_printers,
    705     type_pprinters=self.type_printers,
    706     deferred_pprinters=self.deferred_printers)
--> 707 printer.pretty(obj)
    708 printer.flush()
    709 return stream.getvalue()

File ~/Projects/BBP/NEUROM/venv310/lib/python3.10/site-packages/IPython/lib/pretty.py:410, in RepresentationPrinter.pretty(self, obj)
    407                         return meth(obj, self, cycle)
    408                 if cls is not object \
    409                         and callable(cls.__dict__.get('__repr__')):
--> 410                     return _repr_pprint(obj, self, cycle)
    412     return _default_pprint(obj, self, cycle)
    413 finally:

File ~/Projects/BBP/NEUROM/venv310/lib/python3.10/site-packages/IPython/lib/pretty.py:778, in _repr_pprint(obj, p, cycle)
    776 """A pprint that just redirects to the normal repr function."""
    777 # Find newlines and replace them with p.break_()
--> 778 output = repr(obj)
    779 lines = output.splitlines()
    780 with p.group():

File ~/Projects/BBP/NEUROM/NeuroM/neurom/core/morphology.py:199, in Section.__repr__(self)
    197 def __repr__(self):
    198     """Text representation."""
--> 199     parent_id = None if self.parent is None else self.parent.id
    200     return (f'Section(id={self.id}, type={self.type}, n_points={len(self.points)})'
    201             f'<parent: Section(id={parent_id}), nchildren: {len(self.children)}>')

File ~/Projects/BBP/NEUROM/NeuroM/neurom/core/morphology.py:59, in Section.parent(self)
     56 @property
     57 def parent(self):
     58     """Returns the parent section if non root section else None."""
---> 59     if self.morphio_section.is_root:
     60         return None
     61     return Section(self.morphio_section.parent)

RuntimeError: Section does not belong to a morphology, impossible operation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions