Skip to main content

This project aims to provide a simple MDAkit for JIT accelerated Menger curvature calculation

Project description

Menger_Curvature

Latest release Last release tag GitHub commits since latest release (by date) for a branch Documentation Status
Status GH Actions Status codecov
Community License: GPL v2 Powered by MDAnalysis

This project aims to provide a simple MDAkit for JIT accelerated Menger curvature calculation. The idea is to associate a value of curvature to as many residues as possible in a polymer. If one has access to several conformations , the average value of the curvature (LC) and its standard deviation (LF) are valuable information to characterize the local dynamics of the backbone.

Figure 2: Curvature-Flexibility Plot
Range of proteic menger curvature (PMC) values and their associated structural elements. Backbone representations are extracted from the single chain tubulin simulation. Backbone is represented in licorice, Cαs involved in the PMC calculations are in black Van de Waals.

Cite

Please consider citing the BiorXiv preprint at BiorXiv.

Installation

User

With pypi project

The easiest way to install Menger_Curvature is through pip:

pip install menger-curvature

This will install the latest stable release from PyPI.

Developper

Clone the repository and enter it:

git clone https://github.com/EtienneReboul/menger_curvature.git
cd menger_curvature

To build Menger_Curvature from source, we highly recommend using virtual environments. If possible, we strongly recommend that you use Anaconda as your package manager. Below we provide instructions both for conda and for pip.

With conda

Ensure that you have conda installed.

Create a virtual environment and activate it:

conda create --name menger_curvature
conda activate menger_curvature

Install the development and documentation dependencies:

conda env update --name menger_curvature --file devtools/conda-envs/test_env.yaml
conda env update --name menger_curvature --file docs/requirements.yaml

Build this package from source:

pip install -e .

If you want to update your dependencies (which can be risky!), run:

conda update --all

And when you are finished, you can exit the virtual environment with:

conda deactivate

With pip

To install from pipy, run :

pip install menger-curvature 

To build the package from source, run:

pip install .

If you want to create a development environment, install the dependencies required for tests and docs with:

pip install ".[test,doc]"

Quick Start

We expect the calculation to take less than a minute for a trajectory of 441 alpha carbon with 20,000 frames Calculate Menger curvature for the chain A of a tubulin protein trajectory in serial mode:

import MDAnalysis as mda
from menger.analysis.mengercurvature import MengerCurvature
from menger.data import files

# replace by your own filepaths 
topology = files.TUBULIN_CHAIN_A_PDB 
trajectory = files.TUBULIN_CHAIN_A_DCD
u = mda.Universe(topology, trajectory)

# run analysis in serial mode 
menger_analyser = MengerCurvature(
    u,
    select="name CA and chainID A",
    spacing=2
    )
menger_analyser.run()

# retrieve results data
average_curvature = menger_analyser.results.local_curvatures
flexibility = menger_analyser.results.local_flexibilities
menger_curvature = menger_analyser.results.curvature_array

Calculate Menger curvature for the chain A of a tubulin protein trajectory in parallel mode:

import MDAnalysis as mda
from menger.analysis.mengercurvature import MengerCurvature
from menger.data import files

# replace by your own filepaths 
topology = files.TUBULIN_CHAIN_A_PDB 
trajectory = files.TUBULIN_CHAIN_A_DCD
u = mda.Universe(topology, trajectory)

# run analysis in parallel 
menger_analyser = MengerCurvature(
    u,
    select="name CA and chainID A",
    spacing=2,n_workers=4
    )
menger_analyser.run(backend="multiprocessing", n_workers=4)
average_curvature = menger_analyser.results.local_curvatures
flexibility = menger_analyser.results.local_flexibilities
menger_curvature = menger_analyser.results.curvature_array

Tutorial

We provide a more comprehensive tutorial in a jupyter notebook

Code of conduct

Menger_Curvature is bound by a Code of Conduct.

Copyright

The Menger_Curvature source code is hosted at https://github.com/EtienneReboul/menger_curvature and is available under the GNU General Public License, version 2 (see the file LICENSE).

Copyright (c) 2025, LBT

Acknowledgements

Project based on the MDAnalysis Cookiecutter version 0.1. Please cite MDAnalysis when using Menger_Curvature in published work.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

menger_curvature-1.1.0.tar.gz (75.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

menger_curvature-1.1.0-py3-none-any.whl (75.7 MB view details)

Uploaded Python 3

File details

Details for the file menger_curvature-1.1.0.tar.gz.

File metadata

  • Download URL: menger_curvature-1.1.0.tar.gz
  • Upload date:
  • Size: 75.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for menger_curvature-1.1.0.tar.gz
Algorithm Hash digest
SHA256 806b39a21369fa23b2372986e70779399cf98bb9b3a2b0492f816042e3bea627
MD5 5f3f329bdd5ae4226e0ac7548f1166ad
BLAKE2b-256 b87c5aa7c0af2ef237d7cc1b1dcc0aa4f9c3037e4971f7525dfb8961f34ed840

See more details on using hashes here.

File details

Details for the file menger_curvature-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for menger_curvature-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7081b9a82e97ca2642777cb6f625292c459b3dfdf57477686b897a0d232f0e45
MD5 71d428c798c815e2891f24073c1a8c9e
BLAKE2b-256 647b12616da1f49e8a5080cc2c554e5b29d1f02f5eefae180e5471eb35348782

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page