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.2.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.2-py3-none-any.whl (16.4 MB view details)

Uploaded Python 3

File details

Details for the file fastmdanalysis-0.0.2.tar.gz.

File metadata

  • Download URL: fastmdanalysis-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 415603f2d99c77e2e8ed456b87a12a45c53cc551fa0874219276d1ae1fede323
MD5 38e49eaceb8dacfa966eba0274cb4f1c
BLAKE2b-256 197fb79a6e2724feb7dee6e6f1c8af5505063a1cffd6324c1cafd4f6e79b832d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastmdanalysis-0.0.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: fastmdanalysis-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c04edbdb54039f368c7aee3095a074212681427df4c2f52bb27d05034518d7e
MD5 d471a6e5671ea12c90417e7250b89db1
BLAKE2b-256 08bda8a9b4e2651ec57ad4d99d21841be6974ec6c3c080982508ff70076921c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastmdanalysis-0.0.2-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