BioSimSpace.Protocol

This package provides functionality for defining protocols for molecular simulation.

The _protocol.py module provides a Protocol base class, containing properties common to all protocol types. Classes for specific protocols are defined in their own module files, e.g. _minimisation.py.

Protocols are used by modules within the BioSimSpace.Process package to define what type of simulation to run. The information contained in the protocol object is used to create the input and configuration files needed to run a particular process.

Each Protocol allows a limited number of high-level configuration options for features that are common across all software packages. To get details, run, e.g.:

import BioSimSpace as BSS

# Print help for the minimisation protocol.
help(BSS.Protocol.Minimisation)

# Print help for the equilibration protocol.
help(BSS.Protocol.Equilibration)

# Print help for the production protocol.
help(BSS.Protocol.Production)

Users wishing to run a custom protocol can either edit the auto-generated configuration (see here for a short tutorial) or create a BioSimSpace.Protocol.Custom object:

import BioSimSpace as BSS

# Create a custom protocol using a configuration file as input.
protocol = BSS.Protocol.Custom("my-config.txt")

# Create a custom protocol using a list of configuration strings.
my_config = ["some-parameter = some-value", "some-other-parameter = some-other-value"]
protocol = BSS.Protocol.Custom(my_config)

When using BioSimspace.Driver to automatically configure and return a process, BioSimSpace will determine the appropriate Process object from the signature of the custom protocol. For example, if it corresponds to a NAMD configuration file, then BioSimspace will return a BioSimSpace.Process.Namd object. If you wish to a custom protocol when using BioSimspace.Process directly, then you should ensure that the configuration is of the correct format, i.e. generated from an AMBER configuration file if using BioSimSpace.Process.AMBER.

Because custom protocols are tied to a specific format then nodes that use them are not guaranteed to be interoperable.