The Process package contains tools for running different simulation protocols with a range of external molecular dynamics packages. Process objects are instantiated with a molecular System and a Protocol, i.e. they are used to apply a protocol to a system of molecules.

Process objects can be automatically generated by the function, which will choose the most appropriate molecular dynamics driver based on the software available on the host, the available hardware, the molecular system, and protocol.

At a minimum, derived Process classes should override the base class start, getSystem, and getTrajectory methods to start the process, and to get the latest molecular system or trajectory from the running process.



Return a list of the supported Molecular Dynamics engines.

createProcess(system, protocol, engine, **kwargs)

Create a simulation process.

MD driver classes

Amber(system, protocol[, exe, name, …])

A class for running simulations using AMBER.

Gromacs(system, protocol[, exe, name, …])

A class for running simulations using GROMACS.

Namd(system, protocol[, exe, name, …])

A class for running simulations using NAMD.

OpenMM(system, protocol[, exe, name, …])

A class for running simulations using OpenMM.


A class for interfacing with PLUMED.

Somd(system, protocol[, exe, name, …])

A class for running simulations using SOMD.

Multi process simulation tools

ProcessRunner(processes[, name, work_dir])

A class for managing and running multiple simulation processes, e.g.


Print the list of supported molecular dynamics engines.

import BioSimSpace as BSS


Create a process to apply a minimisation protocol to a molecular system using the AMBER package. Execute the process and get the minimised molecular system.

import BioSimSpace as BSS

# Load a molecular system from file.
system = BSS.IO.readMolecules(BSS.IO.glob("amber/ala/*"))

# Create a minimisation protocol with 1000 steps.
protocol = BSS.Protocol.Minimisation(steps=1000)

# Create a process object to run the simulation with AMBER.
process = BSS.Process.Amber(system, protocol)

# Start the process in the background.

# Wait for the process to finish.

# Get the minimised molecular system.
minimised = process.getSystem()