Skip to content
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

Kimimaro for skeletonizing collagen fibers - time persistence of skeletons #89

Open
peterlionelnewman opened this issue Jul 16, 2024 · 2 comments

Comments

@peterlionelnewman
Copy link
Contributor

Hi William,

Thanks for your great work writing the kimimaro skeletonization tool. I'm interested in using this to get the skeletons of a fluorescent collagen network imaged on a lattice light sheet (see *.npz of an example processed data set with which I'm working - probability maps from a segementation - a volume stack where each voxel contains the probability of a fibre at dimension: time, channel, z, y, x).

Using these maps, I create a binary image with simple thresholding, though in doing this I find that many of the skeletons 'flash in and out' with time. Ideally, the skeletons would be persistent through time.

I was wondering if you might have any advice on the method to best approach this problem. What parameters within kimimaro should I focus on? Here you suggest const and scale, through the 'physical dimensions mentioned' are a little unclear to me. Are these the voxel edge - or is there somewhere that a voxel edge to physical size conversion is input and made?

Are there any other approaches or tools within kimimaro that you might recommend (as per your example - # LISTING 2: Combining skeletons produced from adjacent or overlapping images. skel = Skeleton.simple_merge(skels).consolidate()) it looks like there might be scope for attacking this with other parts of the codebase.

example_data.npz.zip

Thanks again, take care,

@william-silversmith
Copy link
Contributor

Hi Peter,

Interesting problem. It seems more and more people are applying the techniques we developed for single timepoint data to time series.

  1. The individual fibers probably form tree-like structures individually, but with simple thresholding, the fibers seem to merge (unless they naturally form a web with loops). Kimimaro is designed for producing tree structures, so you may run into issues.

The way we deal with self-touch mergers like this in EM data is somewhat complex. We oversegment the image and then use those segments to build the full path so there is some way to tell which pieces are not supposed to be joined together. If you're able to tell what's supposed to not be joined, you can attempt something like this using kimimaro's oversegment feature.

  1. You can try visualizing your binary threshold using zmesh: https://github.com/seung-lab/zmesh

  2. Can you show me some examples of the skeleton winking in and out? I took a quick look but the data is pretty complex looking so it might be helpful to see some screenshots.

  3. If you need to, I have office hours on Friday and we can chat about this some more. https://calendly.com/will-silversmith-office-hours/

@peterlionelnewman
Copy link
Contributor Author

Thanks for your reply, I've scheduled in a chat through your calendly - looking forward to meeting with you and discussing. Thanks again,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants