powersasa
powersasa is a Rust crate for solvent-accessible surface area (SASA) and molecular volume computation based on a 3D weighted power diagram (Laguerre/Voronoi) formulation.
Implemented algorithm
This crate implements the Power-SASA method as described in the original paper:
- Atoms are modeled as spheres (typically van der Waals radius + probe radius).
- A weighted power diagram is built for the atom set
- per-atom exposed spherical contours are reconstructed from local diagram topology.
- Contour integrals are used to compute:
- per-atom and total SASA
- per-atom and total volume
Provenance
The Rust code is an LLM-assisted translation (GPT-5.2-Codex) of the legacy C++ implementation. Originally C++ code was taken from SIMONA packege. Now this code is open sourced and available on GitHub, so original restrictive licence do not apply. Original C++ code (stored in legacy/initial) was first heavily refactored with Codex to get rid of the pointer-based logic. The final C++ code is stored in legacy/current Then the code was converted to Rust.
LLM translation preserved the original logic as much as possible, so all credits to the implementation of the algorithm should still be attibuted to original authors.
Project layout
src/: Rust implementationtests/: integration tests and golden test datalegacy/: C++ history and reference snapshots
License
LGPLv3 (see LICENSE).