FastMDXplora
Molecular dynamics from a PDB code to a finished study — in one command.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| fastmdxplora-2.6.0.tar.gz | 7.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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