Skip to main content

FastMDXplora

Molecular dynamics from a PDB code to a finished study — in one command.

DOI PyPI conda-forge PyPI Downloads Python License: MIT

Tests codecov Docs

Quick start · Agent · Cite


fastmdx explore --system 181L
setup  →  simulation  →  analysis  →  report

Four characters of PDB ID as input. FastMDXplora fetches T4 lysozyme, parameterises the benzene bound in its cavity, runs the dynamics, analyses the trajectory, works out which residues hold the ligand in place, and writes the whole study up as a PDF.

Or configure the whole MD study in the GUI:

fastmdx gui

Install

conda create -n fastmdxplora -c conda-forge fastmdxplora
conda activate fastmdxplora

fastmdx info lists every backend and how to get anything missing:

fastmdx info

What you can study

A protein on its own Fold, flexibility, secondary structure, native contacts, conformational clustering — from a PDB code. Fluctuations can be set against the crystal's own B-factors, and backbone order parameters against what NMR relaxation measures.
A protein with a ligand The ligand is found, its chemistry resolved, its protonation determined in the binding site. Eight interaction types against published criteria tell you what holds it, not just what it touches.
A membrane protein Embedded in one of seven bilayers, oriented by a fit checked against OPM, with pressure coupling that suits a lipid system and the bilayer's area, thickness and chain order analysed.
Free energy along a coordinate Umbrella sampling, metadynamics and steered MD from a named collective variable — nine of them, one or two at a time — without writing PLUMED input. Each says what its output is and is not: a surface if the bias converged, a pathway and the work along it, a potential of mean force if the windows overlap.
A trajectory from another engine Skip the simulation and analyse what you already have — GROMACS .xtc and .trr, Amber .nc, NAMD and CHARMM .dcd, LAMMPS .lammpstrj, or .pdb, .cif and .h5 that carry their own topology.
Many systems at once Mutants against wild type — named as L99A, and checked against the residue actually there — a sweep across a setting, runs pinned one per GPU, and a comparison report across all of them. Where the members differ only by seed, the spread of their means is set against the error each run claimed for itself.

It refuses rather than guesses. An ambiguous ligand charge, a protein backwards in its membrane, a free-energy surface that never converged — each stops the run and is named, not papered over. Biased averages are corrected to equilibrium where the bias allows and labelled where it does not. Every step explains itself and cites the paper worth reading. What comes out, you can defend; what you cannot is marked.

The config is the study

A FastMDXplora config is the whole description of a molecular dynamics study: the system, how it is prepared, how it is simulated, how it is analysed, and how it is written up. Capture that, and the four phases — setup, simulation, analysis, report — run themselves.

systems:
  - system: 181L
simulation:
  duration_ns: 100

That is a complete study. Everything unnamed takes a documented default, and every run writes resolved_config.yml — the file, the command line and the API arguments merged — so the exact study can be run again by anyone holding that one file.

Three ways to build a config, and each of them also runs all four phases:

The GUI fastmdx gui. A form generated from the schema, so every setting is reachable. Worth using even for a command-line or Python workflow: build the study where the options are visible and explained, then take the file away.
The CLI fastmdx explore --config study.yml, or fastmdx config for a commented template, or a flag for any setting.
The Python API FastMDXplora(config="study.yml").explore(), or the same blocks passed as options.

None of these is the primary interface and none is a subset of another — form, flags and API are generated from one declaration — and a study designed in the GUI on a laptop runs unchanged on a cluster, because what travels is the config.

And a fourth, in place of a person. The FastMDXplora Agent writes a config from a sentence, and is reachable through all three of the above:

fastmdx agent "simulate trypsin with benzamidine bound at pH 6.5 for 100 ns"

It gets no special treatment. What it writes goes through exactly the same validator, by the same code, with the same refusals, as a config typed by hand — and a proposal that did not validate carries no config at all.

An AI app that speaks the Model Context Protocol reaches the same checks with fastmdx mcp: the AI app's model writes a study and the same validator judges it, it reads and compares studies, and it starts one only from a checked file, with your go-ahead.

The manifest is the result

What a config is to a study, manifest.json is to its result: every phase that ran, every artifact it produced, every setting it used, and the exact software stack it ran on — including which package versions were loaded, because those decide numbers. A run directory is readable by somebody who was not there.

Documentation

Start here — Install · Your first study · How FastMDXplora works

The Config — The FastMDXplora Config · Config reference · Selections · Examples

Writing a Config — GUI · CLI · API · Agent · From your AI app

Going further — Restraints, membranes, enhanced sampling · Production and GPUs · Running elsewhere

Results — The FastMDXplora Manifest · Reading the results · The analyses · Protein-ligand interactions · Refusals

For developers — Developing FastMDXplora · How it is validated

Citation

Aina, A.; Kwan, D. FastMDAnalysis: Software for Automated Analysis of Molecular Dynamics Trajectories. J. Comput. Chem. 2026, 47, e70350. DOI: 10.1002/jcc.70350

@article{aina2026fastmd,
  author  = {Aina, Adekunle and Kwan, Derrick},
  title   = {FastMDAnalysis: Software for Automated Analysis of Molecular Dynamics Trajectories},
  journal = {Journal of Computational Chemistry},
  volume  = {47},
  number  = {8},
  pages   = {e70350},
  year    = {2026},
  doi     = {10.1002/jcc.70350},
}

Contributing

Contributions welcome: see CONTRIBUTING.md. Each contributor signs the Contributor License Agreement once. FastMDXplora follows the Contributor Covenant.

License

FastMDXplora is released under the MIT License. See LICENSE.


Built in the AAI Research Lab on MDTraj, OpenMM, PDBFixer, OpenFF, RDKit, NumPy, SciPy, scikit-learn, Matplotlib and Mol*.

© Copyright 2026, Adekunle Aina, Derrick Kwan, and FastMDXplora contributors.

Metadata

Release files for fastmdxplora 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastmdxplora 2.6.0
File Size Uploaded
fastmdxplora-2.6.0.tar.gz 7.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastmdxplora 2.6.0
File Interpreter ABI Platform
fastmdxplora-2.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.5 MB

Release files / fastmdxplora-2.6.0.tar.gz

Download URL fastmdxplora-2.6.0.tar.gz
Size 7.2 MB
Tags Source
SHA-256 checksum
How to use checksums
2ede30a16bf7bc7b4e05f68a9404f752678ea751c0bf7714d28eec2419608352
BLAKE2b-256 checksum
How to use checksums
cb0ccb776f77de55eb25a5ba774bdadf537b5db08e97723a9deab7c7a79f9c58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / fastmdxplora-2.6.0-py3-none-any.whl

Download URL fastmdxplora-2.6.0-py3-none-any.whl
Size 4.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f9a431ee2ac836ec13d895ec5ad4c912f00ed6aaea36921cb567f22919293d79
BLAKE2b-256 checksum
How to use checksums
4f3651c846393b5ea33211a0887d8b972fc5cc5a5594dc931ecef466400d9d14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.6.0 This release

2 release files

2.5.8

2 release files

2.5.7

2 release files

2.5.6

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page