BlueBrain / MorphIO

A python and C++ library for reading and writing neuronal morphologies
https://morphio.readthedocs.io
Apache License 2.0
26 stars 22 forks source link

Writing morphs we can't read in v3.3.7 #484

Open mgeplf opened 8 months ago

mgeplf commented 8 months ago

@adrien-berchet noted that the following doesn't allow reading:

from morphio import Morphology

morph = Morphology(
    """
    1 1  0  0 0 1. -1
    2 3  0  0 0 1.  1
    3 3  0  5 0 1.  2
    4 3 -5  5 0 1.5 3
    5 3  6  5 0 1.5 3
    6 2  0  0 0 1.  1
    7 2  0 -4 0 1.  6
    8 2  6 -4 0 2.  7
    9 2 -5 -4 0 2.  7
    """,
    extension="swc")

morph.as_mutable().write("test.h5")
Morphology("test.h5")

An warning is emitted on writing:

Soma must be a contour for ASC and H5: see https://github.com/BlueBrain/MorphIO/issues/457

But on reading, it throws an exeption:

RawDataError: Morphology contour with only a single point is not valid: test.h5
mgeplf commented 8 months ago

We're doing the opposite of Postel's law - being strict on reading, but liberal on writing...

adrien-berchet commented 6 months ago

A small update: the behavior is similar for ASC files.

mgeplf commented 5 months ago

Do you have an example?

adrien-berchet commented 5 months ago

Yes: you just have to replace "test.h5" by "test.asc" in the first snippet :)

mgeplf commented 5 months ago

Ah, I forgot we were only raising a "warning" for single point somas when writing, sorry about that.