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 Common errors
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 Warnings
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, ...`
Install
conda install -c conda-forge prody Imports
- parsePDB wrong
import prody; prody.parsePDB()correctfrom prody import parsePDB - ANM wrong
from prody.proteins import ANMcorrectfrom prody import ANM - calcRMSD wrong
from prody.measure import calcRMSDcorrectfrom prody import calcRMSD
Quickstart
from prody import *
from prody import parsePDB, ANM, calcModes
pdb = parsePDB('1ake')
anm = ANM('example')
anm.buildHessian(pdb)
modes = calcModes(anm)
print(modes[:3])