ProDy: Protein Dynamics Analysis

raw JSON →
2.6.1 verified Mon Apr 27 auth: no python

ProDy is an open-source Python package for protein dynamics analysis, including structure analysis, normal mode analysis (ANM, GNM, PCA), sequence analysis, trajectory parsing, and protein-ligand interactions. Current version 2.6.1 supports Python >=3.10, NumPy 2, and Python 3.12. Releases occur roughly every few months with bug fixes and new features.

pip install prody
error ModuleNotFoundError: No module named 'prody'
cause ProDy not installed or installed in wrong environment.
fix
Run pip install prody in the correct Python environment.
error ImportError: numpy.core.multiarray failed to import
cause NumPy version incompatible with ProDy (e.g., NumPy 2 with ProDy <2.6.0).
fix
Upgrade ProDy: pip install --upgrade prody or downgrade NumPy: pip install 'numpy<2'
error AttributeError: module 'prody' has no attribute 'parsePDB'
cause ProDy not imported correctly (e.g., `import prody` instead of `from prody import parsePDB`).
fix
Use from prody import parsePDB or import prody; pdb = prody.parsePDB(...)
error ValueError: 4-letter PDB ID is not supported
cause ProDy <2.6.0 does not support extended PDB IDs (4-letter codes).
fix
Upgrade to ProDy >=2.6.0: pip install --upgrade prody
breaking Python 3.11 or earlier and Python 3.13+ are not supported; requires Python >=3.10 and <3.13.
fix Use Python 3.10-3.12. Check with `python --version`.
breaking NumPy 2 support introduced in v2.6.0; earlier versions may fail with NumPy 2.
fix Upgrade ProDy to v2.6.0+ or pin NumPy <2.
deprecated The `imp.find_module` workaround in apps is removed; use `importlib`.
fix If using custom scripts that relied on `prody.apps`, update to avoid deprecated module loading.
gotcha ProDy uses a global logger that may override your logging level. Call `prody.LOGGER.setLevel(logging.WARNING)` to suppress verbose output.
fix Add `import logging; prody.LOGGER.setLevel(logging.WARNING)` at the start of your script.
gotcha Wildcard import `from prody import *` pollutes namespace with many internal symbols; prefer explicit imports.
fix Use explicit imports: `from prody import parsePDB, ANM, ...`
conda install -c conda-forge prody

Parse a PDB, build ANM Hessian, and compute normal modes.

from prody import *
from prody import parsePDB, ANM, calcModes
pdb = parsePDB('1ake')
anm = ANM('example')
anm.buildHessian(pdb)
modes = calcModes(anm)
print(modes[:3])