BioSimSpace.Process#

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 BioSimSpace.MD.run 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.

Processes write input and output to a working directory, which can be specified using the work_dir keyword argument. If nothing is specifed, then a temporary working directory will be used, which is bound to the lifetime of the process.

Functions#

engines()

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.

Plumed(work_dir)

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. a free energy simulation at multiple lambda values.

Examples

Print the list of supported molecular dynamics engines.

import BioSimSpace as BSS

print(BSS.Process.engines())

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.
files = BSS.IO.expand(BSS.tutorialUrl(), ["ala.top", "ala.crd"], ".bz2")
system = BSS.IO.readMolecules(files)

# 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.
process.start()

# Wait for the process to finish.
process.wait()

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