-
Notifications
You must be signed in to change notification settings - Fork 33
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version 2 Roadmap #153
Comments
big +1! this kind of Some challenges I could see:
|
re: visualization, i've been using https://github.com/pyvista/pyvista a lot lately - i wonder what the pros/cons are relative to pygfx. one thing that I appreciate about pyvista is that it seems to have a big user base, which helps with googling for solutions. |
re: representations:
|
But yes, would be a big fan of a morphology representations hackathon! Perhaps as a way to get started, it could be worth writing down a kind of desired API, and working backwards from there in terms of how to implement things? |
Unsurprisingly, Ben and I are on the same page here with our goals. A few things that I have come to believe are useful generalizations/distinctions for such a project:
|
In fact, to not just totally repeat what @bdpedigo said while I was already typing, a key distinction between the mesh and a spatial graph is that the mesh is built of faces and is typically not a single connected component. We always have to remove disconnected faces and graft in connecting edges in order to build a "nice" single component graph out of it, which already makes it not a true triangle mesh. |
Exactly, and now a TreeNeuron/skeleton can inherit from spatial graph, but could have extra methods specific to trees (e.g. a notion of tips and a root) |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
This issue is to suggest & discuss (read: spitball) potential breaking changes that might warrant a new major version.
Plotting
Over the past months I have experimented more with the pygfx library and I'm pretty much set on replacing the current vispy-based 3d viewer with octarine. This may well happen already in the next minor version (see #138) but I wonder if a general refactoring of the plotting interface is in order. In particular:
pygfx
as a 2d plotting backend (see also fastplotlib)? It's much faster and perspectively correct (unlike matplotlib).Additional backends
Currently,
navis
can utilize multiple CPUs (viapathos
) but it doesn't scale beyond a single machine. It'd be nice if there was an easy way to divvy up e.g. a big NBLAST across multiple nodes. @aschampion has already made a start in #111 for a Dask backend and the implementation is generic so that it would be easy to tack on more.Neuron Classes
Two things that have been on my mind with regards to neurons:
As discussed with @bdpedigo in Berlin, can we generate a "unified" neuron object that combines multiple representations (skeleton, mesh, image)? @ceesem has done something similar in MeshParty.
The current neuron names (
TreeNeuron
,MeshNeuron
,VoxelNeuron
) are... uglyIt would be nice if there was only a single
Neuron
class that could be either a single type or multiple. Something along these lines:Combining multiple representations could then look like this:
Individual representations can be accessed like this:
Under-the-hood
navis
already combines representations when needed. For example,navis.prune_twigs
works onMeshNeurons
by (a) skeletonizing the mesh, (b) pruning the skeleton and (c) removing faces corresponding to the removed skeleton nodes from the mesh. The big question then is: does making this explicity actually simplify things for the user? I imagine that most users will work with either skeletons or meshes and don't need to know how things happen under-the-hood.I will add above list as I think of more stuff.
Perhaps some of the above can be tackled in a longer hackathon?
The text was updated successfully, but these errors were encountered: