freud icon indicating copy to clipboard operation
freud copied to clipboard

Segmentation containment hierarchy

Open BartBruininks opened this issue 9 months ago • 2 comments

Description

When working with point clouds or voxel densities, it is often useful to ask for the content of a component. However, the definition of inside is not trivial in periodic space. Nevertheless, having access to the output of a connected components segmentation in a directed acyclic graph can be extremely useful and indeed is possible (think of it as the folder structure of the simulation box).

Proposed Solution

I have been working on a mathematical robust classification for this problem in ND-(periodic) space. This works for any density structure in a (periodic) box, even if the densities are periodic themselves.

The implementation has been done and is on its way to being published, however, my own implementation in python is rather slow. I tried to make a version which uses Freud which works reasonably well, but I feel like a proper implementation could be a real boon for Freud.

I would love to give a (open) presentation for the developers and fellow freudians, to present my work and how I think it could be valuable to Freud --- an hour should be fine.

Additional Context

An example of what I mean is given in my Github. The implementation of the math is cheating a bit in its current implementation, but the results for the examples are all correct (I am currently reworking the code to adhere to the new mathematical machinery used to tackle the problem).

An example of a solvent phase (-2) whith multiple lipid components (1--4) in it. One of the lipid components (3) has a solvent component (-1) in its interiour as represented by the graph (the arrows point from container -->containee).

258806872-be5fff63-a967-47c2-a933-a3ecb7dcd5de

Developer

Would someone else please implement this?

BartBruininks avatar May 28 '24 20:05 BartBruininks