All workflows

Molecular dynamics

AMBER Protein MD Setup

Set up and run a full protein MD simulation with AmberTools, sander and cpptraj. Horus routes the AMBER stages to Docker and keeps the biobb Python stages in a native conda environment.

AMBERAmberToolssandercpptrajLEaPBioExcel biobb

What this workflow does

This workflow runs a complete molecular dynamics setup for hen egg-white lysozyme (PDB 1AKI). It uses the AMBER toolchain end to end. It mirrors the GROMACS MD setup workflow, but every simulation stage calls sander.

The workflow starts from the raw PDB file. It prepares the structure with pdb4amber. It builds a topology with LEaP. It then minimizes the hydrogens in vacuo and minimizes the whole system in vacuo.

The workflow converts the minimized structure back to PDB with ambpdb. LEaP then builds a solvent box and adds ions to neutralize the charge. A second minimization relaxes the solvated system.

The system then heats from 0 K to 300 K. NVT equilibration fixes the temperature. NPT equilibration fixes the pressure and the density. A free production MD run follows.

cpptraj closes the workflow. It computes the RMSd against the first frame, the RMSd against the experimental structure, and the radius of gyration. A final cpptraj stage images the trajectory and strips the solvent.

The compute problem

An AMBER MD setup has twenty stages. Two of them dominate the wall time. The NPT equilibration and the free production run consume almost all of the compute. Every other stage finishes in seconds.

The stages also split by tool family. The fetch stage, the structure utility stages and the cpptraj analysis stages are cheap Python or light C. The sander stages are heavy numerical code that wants many cores or a GPU.

The biobb_amber package has no osx-arm64 conda build. On Apple Silicon, no sander stage and no LEaP stage installs natively. This blocks the whole setup on a developer laptop.

How Horus solves it

Horus provisions the conda environment for the pure-Python biobb packages. That covers biobb_io, biobb_structure_utils, biobb_chemistry and biobb_analysis. It routes every AMBER stage to the quay.io/biocontainers/biobb_amber image.

You get a working setup on a Mac without a native AMBER build. Docker pulls the image on the first run. The container is Linux amd64 and runs under emulation.

The value appears when the run gets serious. Change the executor: field on sander_npt and sander_free. Point both at an SSH host or an HPC scheduler with a GPU. Leave the LEaP stages and the cpptraj stages local. The runtime.command string stays the same in all three cases.

Horus moves the topology and the coordinate files across each boundary. It brings the trajectory back. You write no scp command and no submit script.

The alternative is a hand-managed split. You build a topology on one machine, copy it to a cluster, write a batch script per sander stage, and copy the trajectory back for analysis. Every parameter change repeats that loop.

Pipeline

fetch_pdb              Download 1AKI structure from PDB
   │
pdb4amber              Prepare PDB for AMBER (pdb4amber)
   │
gen_top                Create protein system topology (leap)
   │
sander_h_min ──► process_h_min   Minimize hydrogens in vacuo (sander)
   │
sander_n_min ──► process_n_min   Minimize system in vacuo (sander)
   │
amber_to_pdb            Convert minimized structure to PDB (ambpdb)
   │
leap_solvate             Create solvent box and solvate system (leap)
   │
leap_add_ions             Neutralize and add ions (leap)
   │
sander_min ──► process_min       Energy minimize the solvated system (sander)
   │
sander_heat ──► process_heat     Heat the system 0 → 300 K (sander)
   │
sander_nvt ──► process_nvt       NVT equilibration (sander)
   │
sander_npt ──► process_npt       NPT equilibration (sander)
   │
sander_free              Free production MD simulation (sander)
   │
cpptraj_rms_first / cpptraj_rms_exp / cpptraj_rgyr   RMSd and radius of gyration analysis (cpptraj)
   │
cpptraj_image            Image trajectory and strip solvent (cpptraj)

Inputs and outputs

Inputs

This workflow has no file inputs. It fetches 1AKI from the RCSB PDB at run time.

Outputs land in results/:

  • 1aki.pdb, structure.pdb4amber.pdb: the fetched and prepared structures.
  • structure.leap.top, structure.leap.crd: the protein system topology.
  • structure.solv.*, structure.ions.*: the solvated and neutralized system.
  • sander.min.*, sander.heat.*, sander.nvt.*, sander.npt.*: the outputs and the energy, temperature and pressure traces of each stage.
  • sander.free.*: the free production MD trajectory.
  • 1aki_rms_first.dat, 1aki_rms_exp.dat, 1aki_rgyr.dat: the analysis series.
  • 1aki_imaged_traj.trr: the imaged, solvent-stripped trajectory.

Each configs/sander_*.yaml file holds the restraints, the time step, the temperature, the pressure and the length of one stage. The configs/leap_*.yaml files hold the force field, the box geometry and the ion concentration.

Run the workflow

Install the horus-runtime one time:

uv sync

If you do not have uv, install it first:

curl -LsSf https://astral.sh/uv/install.sh | sh

You can also install the packages with pip:

pip install horus-runtime horus-environments

Then run the workflow:

uv run horus run workflow.yaml

References

Run this workflow

The workflow is open source. Clone the pantheon repository and run it with the horus-runtime engine. To run it on managed compute without a cluster of your own, join the Temple Compute OS waitlist.