MDAnalysis / UGM2023

Materials for the 2023 MDAnalysis User Group Meeting
Other
3 stars 10 forks source link

[MDAKit / Hackathon] Voronoi Tessellation #31

Open IAlibay opened 11 months ago

IAlibay commented 11 months ago

Overview

A Voronoi diagram is the division of a space into regions around a set of seed points such that each point in a given region is closer to that seed point than any other. Voronoi tessellations can be used in various density and spatial analysis, e.g. for characterizing membranes or interaction surfaces/binding sites.

Voronoi tessellation and related algorithms (e.g. Delaunay triangulation) have been implemented in scipy (https://docs.scipy.org/doc/scipy/reference/spatial.html#delaunay-triangulation-convex-hulls-and-voronoi-diagrams).

richardjgowers commented 11 months ago

https://math.lbl.gov/voro++/ does PBC so is probably better in the longer term. Alternatively you'd have to use the "augment coordinates" approach to get PBC-like behaviour.

tylerjereddy commented 11 months ago

There is a ticket open to add PBC support in SciPy: https://github.com/scipy/scipy/issues/11858. It probably needs a champion though. For "planar" membranes if you really need PBC and there's another tool you want to wrap I suppose that could make sense.

For virus/vesicle systems, I don't see much benefit to PBC since you can just center the virus in the unit cell and it will be self-contained, so I'd just use SciPy indeed via https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.SphericalVoronoi.html