Software for automated MD trajectory analysis
Project description
Highlights
- Perform complex molecular dynamics analyses with intuitive, single-line commands
- Automatically generate publication-quality figures with customizable styling for immediate use
- Seamlessly switch between Python API for advanced workflows and CLI for rapid batch processing
- Scalable workflows that handle everything from quick exploratory analysis to large-scale production runs
Analysis Modules
| Analysis | Description |
|---|---|
rmsd |
Root-Mean-Square Deviation relative to a reference frame |
rmsf |
Per-atom Root-Mean-Square Fluctuation |
rg |
Radius of Gyration for molecular compactness |
hbonds |
Hydrogen bond detection and count using Baker-Hubbard algorithm |
ss |
Secondary Structure assignments using DSSP |
cluster |
Trajectory clustering using KMeans, DBSCAN, and Hierarchical methods |
sasa |
Solvent Accessible Surface Area with total, per-residue, and average per-residue |
dimred |
Dimensionality reduction using PCA, MDS, and t-SNE methods |
Installation
Recommended: Install in a Virtual Environment
We strongly recommend installing FastMDAnalysis in a virtual environment to avoid conflicts with system packages and ensure the fastmda command is available in your PATH.
Using venv (Python's built-in virtual environment):
# Create a virtual environment
python -m venv fastmda_env
# Activate the virtual environment
# On Linux/macOS:
source fastmda_env/bin/activate
# On Windows:
# fastmda_env\Scripts\activate
# Install FastMDAnalysis
pip install fastmdanalysis
# Verify installation
fastmda --version
fastmda analyze --help
Using conda:
# Create a conda environment
conda create -n fastmda_env python=3.9
# Activate the environment
conda activate fastmda_env
# Install FastMDAnalysis
pip install fastmdanalysis
# Verify installation
fastmda --version
fastmda analyze --help
Usage
Command-Line Interface (CLI)
After installation, you can run FastMDAnalysis from the command line using the fastmda command. Global options allow you to specify the trajectory and topology file paths.
Optionally, specify frame selection and atom selection. Frame selection is provided as a tuple (start, stop, stride). Negative indices (e.g., -1 for the last frame) are supported. If no options are provided, the entire trajectory and all atoms are used by default.
Run the analyze orchestrator to execute multiple analyses in one go.
Run all available analyses
fastmda analyze -traj path/to/trajectory -top path/to/topology
Include specific analyses
fastmda analyze -traj traj.dcd -top top.pdb --include rmsd rg
Exclude specific analyses
fastmda analyze -traj traj.dcd -top top.pdb --exclude sasa dimred cluster
Supply options via file (YAML or JSON)
fastmda analyze -traj traj.dcd -top top.pdb --options options.yaml
Create a slide deck from generated figures
fastmda analyze -traj traj.dcd -top top.pdb --options options.yaml --slides
Global flags:
--frames start,stop,stride(e.g.,0,-1,10)--atoms "MDTraj selection"(e.g.,protein and name CA)--output DIR(output directory name)--verbose(prints progress and writes logs under<command>_output/unless--outputis set)
Show help:
fastmda -hfastmda analyze -h
Options file (schema)
Provide per-analysis keyword arguments in a single file. CLI and Python API share the same schema:
# options.yaml
rmsd:
ref: 0
align: true
rg:
by_chain: false
cluster:
methods: [kmeans, hierarchical]
n_clusters: 5
eps: 0.3
min_samples: 8
JSON is also supported. If using YAML, ensure PyYAML is installed.
Slides:
--slidescreatesfastmda_slides_<ddmmyy.HHMM>.pptxin the current working directory.--slides path/to/deck.pptxwrites to an explicit filename.
Single-analysis commands (legacy, still available)
fastmda rmsd -traj traj.dcd -top top.pdb --ref 0 # aliases: --reference-frame, -ref
fastmda rmsf -traj traj.dcd -top top.pdb
fastmda rg -traj traj.dcd -top top.pdb
fastmda ss -traj traj.dcd -top top.pdb
fastmda cluster -traj traj.dcd -top top.pdb --methods kmeans hierarchical --n_clusters 5
Python API
Instantiate a FastMDAnalysis object with your trajectory and topology file paths.
Run the analyze orchestrator to execute all available analyses.
from fastmdanalysis import FastMDAnalysis
from fastmdanalysis.datasets import TrpCage # optional helper
fastmda = FastMDAnalysis(TrpCage.traj, TrpCage.top)
fastmda.analyze()
Include or Exclude specific analyses; specify options, generate slides
fastmda = FastMDAnalysis(TrpCage.traj, TrpCage.top)
result = fastmda.analyze(
include=["rmsd", "rg"], # or exclude=[...]; omit to run all
options={"rmsd": {"ref": 0, "align": True}},
slides=True # or slides="results.pptx"
)
(Optional) Access per-analysis outputs
rmsd_result = result["rmsd"].value # object/type depends on analysis
slides = result.get("slides") # AnalysisResult; .ok and .value (path)
Notes
- Figures are saved during each analysis; slide decks include all figures produced in the run.
- MDTraj may emit benign warnings (e.g., dummy CRYST1 records); they do not affect results.
Output
Output includes data files, figures, logs ...
Documentation
The documentation (with an extensive user guide) is available here.
Contributing
Contributions are welcome. Please submit a Pull Request.
Development Installation
If you want to contribute or modify the code:
# Clone the repository
git clone https://github.com/aai-research-lab/FastMDAnalysis.git
cd FastMDAnalysis
# Create and activate virtual environment
python -m venv fastmda_env
source fastmda_env/bin/activate # On Windows: fastmda_env\Scripts\activate
# Install in development mode with test dependencies
pip install -e ".[test]"
# Verify installation
fastmda --version
fastmda analyze --help
Citation
If you use FastMDAnalysis in your work, please cite:
Adekunle Aina and Derrick Kwan (2025). FastMDAnalysis: Software for Automated Molecular Dynamics Trajectory Analysis. GitHub. https://github.com/aai-research-lab/fastmdanalysis
@software{FastMDAnalysis,
author = {Adekunle Aina and Derrick Kwan},
title = {FastMDAnalysis: Software for Automated Molecular Dynamics Trajectory Analysis},
year = {2025},
publisher = {GitHub},
url = {https://github.com/aai-research-lab/fastmdanalysis}
}
License
FastMDAnalysis is licensed under the MIT license.
Acknowledgements
FastMDAnalysis builds upon excellent open-source libraries to provide its high-performance analysis capabilities and to improve workflow efficiency, accessibility, usability, and reproducibility in molecular dynamics trajectory analysis. We gratefully acknowledge:
MDTrajfor foundational trajectory I/O and analysis modulesNumPyfor efficient numerical computationsscikit-learnfor advanced machine learning algorithmsMatplotlibfor publication-quality visualization
While leveraging these robust tools, FastMDAnalysis streamlines analysis for students, professionals, and researchers, especially those new to molecular dynamics. We thank the scientific Python community for their contributions to the ecosystem.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastmdanalysis-0.0.3.tar.gz.
File metadata
- Download URL: fastmdanalysis-0.0.3.tar.gz
- Upload date:
- Size: 16.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
832ec5bf36d1f1e685d467b286514b95a8fd44a94e92f149b7b0459961ae897b
|
|
| MD5 |
c15008c059169031ed3efe4a43f1bd7d
|
|
| BLAKE2b-256 |
7abc81297d89f0cc7d047474bc415c1a73f2cae8ba56c2d547fec03350f335ad
|
Provenance
The following attestation bundles were made for fastmdanalysis-0.0.3.tar.gz:
Publisher:
release.yml on aai-research-lab/FastMDAnalysis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastmdanalysis-0.0.3.tar.gz -
Subject digest:
832ec5bf36d1f1e685d467b286514b95a8fd44a94e92f149b7b0459961ae897b - Sigstore transparency entry: 647884231
- Sigstore integration time:
-
Permalink:
aai-research-lab/FastMDAnalysis@7b5014860771a1451b709c740d194bc9c1749df5 -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/aai-research-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7b5014860771a1451b709c740d194bc9c1749df5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fastmdanalysis-0.0.3-py3-none-any.whl.
File metadata
- Download URL: fastmdanalysis-0.0.3-py3-none-any.whl
- Upload date:
- Size: 16.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
422c483eea7613a0c71a9f73ddf99c782d84edf902e540f7ae37721705079fd3
|
|
| MD5 |
bfd8ecae67071617e2acea8d0f50779b
|
|
| BLAKE2b-256 |
2fd124612abba0098be00afa15e8cbf16863595261e4efef89946c05671f4868
|
Provenance
The following attestation bundles were made for fastmdanalysis-0.0.3-py3-none-any.whl:
Publisher:
release.yml on aai-research-lab/FastMDAnalysis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastmdanalysis-0.0.3-py3-none-any.whl -
Subject digest:
422c483eea7613a0c71a9f73ddf99c782d84edf902e540f7ae37721705079fd3 - Sigstore transparency entry: 647884246
- Sigstore integration time:
-
Permalink:
aai-research-lab/FastMDAnalysis@7b5014860771a1451b709c740d194bc9c1749df5 -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/aai-research-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7b5014860771a1451b709c740d194bc9c1749df5 -
Trigger Event:
push
-
Statement type: