Welcome to MembraneCurvature’s Documentation

Minimum MDAnalysis version: 2.4.0

Last updated: Jun 23, 2026

The MDAnalysis MembraneCurvature tool module calculates the Gaussian and mean curvature from Molecular Dynamics (MD) simulations.

_images/PM_Membrane_EBO.png

MembraneCurvature derives 2D curvature profiles of a surface of reference. To suit the needs of your system, we offer flexible atom selection that will enable you to use the most convenient AtomGroup to extract curvature from your MD simulations!

This is an example on how to use MembraneCurvature:

import MDAnalysis as mda
from membrane_curvature.base import MembraneCurvature

u = mda.Universe(coordinates, trajectory)
mc = MembraneCurvature(u).run()

surface = mc.results.average_z_surface
mean_curvature = mc.results.average_mean
gaussian_curvature = mc.results.average_gaussian

You can find more details on how to use MembraneCurvature in the Usage page.

Features

MembraneCurvature allows you to:

  • Derive 2D surface profiles from MD simulations using an atom selection as reference with two different methods: binning or Fourier.

    • With optional brick-wall FFT filter on averaged surface maps (binning method only).

  • Calculate the mean and Gaussian curvatures of the derived surfaces.

  • Get per-frame or averaged results for surface, mean and Gaussian curvature.

Why MembraneCurvature?

MembraneCurvature is a user-friendly, actively-maintained, well-documented tool in Python 3 to derive 2D maps of membrane curvature from MD Simulations, using the most recent version of MDAnalysis Are you interested in calculating mean and Gaussian curvature from MD simulations? This tool is for you!

Installation

MembraneCurvature is available via pip, conda, and uv. Please refer to the Installation section in the Getting Started page for detailed installation instructions.

License

Source code included in this project is available under the GNU Public License v3 from github.com/MDAnalysis/membrane_curvature.

Indices and tables