navis-org / navis

Python library for analysis of neuroanatomical data.
https://navis-org.github.io/navis/
GNU General Public License v3.0
83 stars 33 forks source link

IntEnum for treenode-connector relationships #120

Open clbarnes opened 1 year ago

clbarnes commented 1 year ago

I can never remember these and it drives me spare trying to find them in code.

Does this lean too heavily into the CATMAID data model? Navis already uses the 0 and 1 for presynapse/postsynapse but I don't know if you use any of the other types. Alternatively, there could be a cut-down version here and the full one in pymaid (slightly more complicated than just re-exporting this enum from pymaid but not too bad).

schlegelp commented 1 year ago

navis has so far tried to not play favourites but CATMAID has the only well defined connector data model that I've come across. Perhaps (Web)Knossos has one too but I haven't dug into it.

I like your proposal to formalise the data model for navis. May need a bit of time to mull it over - for example also thinking about whether/how to re-use this for plotting too.

clbarnes commented 1 year ago

I've cut this down to just the pre/post synapse relations, which I think is all navis already uses, as well as adding some really explicit methods for what the relation means for the node and the connector, because it ties my brain in knots every time I have to deal with it :sweat_smile: