Skip to main content

Software for automated MD trajectory analysis

Project description

FastMDAnalysis Banner

Tests Docs Documentation PyPI Python License


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 --output is set)

Show help:

  • fastmda -h
  • fastmda 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:

  • --slides creates fastmda_slides_<ddmmyy.HHMM>.pptx in the current working directory.
  • --slides path/to/deck.pptx writes 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:

  • MDTraj for foundational trajectory I/O and analysis modules
  • NumPy for efficient numerical computations
  • scikit-learn for advanced machine learning algorithms
  • Matplotlib for 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

fastmdanalysis-0.0.3.tar.gz (16.4 MB view details)

Uploaded Source

Built Distribution

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

fastmdanalysis-0.0.3-py3-none-any.whl (16.4 MB view details)

Uploaded Python 3

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

Hashes for fastmdanalysis-0.0.3.tar.gz
Algorithm Hash digest
SHA256 832ec5bf36d1f1e685d467b286514b95a8fd44a94e92f149b7b0459961ae897b
MD5 c15008c059169031ed3efe4a43f1bd7d
BLAKE2b-256 7abc81297d89f0cc7d047474bc415c1a73f2cae8ba56c2d547fec03350f335ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastmdanalysis-0.0.3.tar.gz:

Publisher: release.yml on aai-research-lab/FastMDAnalysis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for fastmdanalysis-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 422c483eea7613a0c71a9f73ddf99c782d84edf902e540f7ae37721705079fd3
MD5 bfd8ecae67071617e2acea8d0f50779b
BLAKE2b-256 2fd124612abba0098be00afa15e8cbf16863595261e4efef89946c05671f4868

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastmdanalysis-0.0.3-py3-none-any.whl:

Publisher: release.yml on aai-research-lab/FastMDAnalysis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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