Perform a simulation with a C-alpha Structure-Based Model using OpenSMOG

This tutorial should take between 5 to 15 minutes to complete.

Input files for this tutorial can be found here

The first step is to import the OpenSMOG module

[ ]:
from OpenSMOG import SBM

SBM class sets the parameters for the simulation:

name="2ci2" Sets the name of each simulation (this name is used as prefix for the outputs). time_step=0.0005 (reduced time unit) Sets the time step used in integration. collision_rate=1.0 (reduced inverse-time unit) Sets the collision rate for the Langevin integrator. r_cutoff=3.0 (nanometers) Sets the non-bonded cutoff. temperature=0.5 (reduced temperature unit) Sets the temperature in the simulation.

sbm_CA is an arbitrarily chosen variable name for the SBM object

[ ]:
sbm_CA = SBM(name='2ci2', time_step=0.0005, collision_rate=1.0, r_cutoff=3.0, temperature=0.5)

There are three hardware platform options to run the simulations:

platform="cuda" platform="HIP" platform="opencl" platform="cpu"

if cuda, opencl or HIP is choosen the GPUindex can be defined as “0”. If two GPUs are used, one may give “0,1”

[ ]:
sbm_CA.setup_openmm(platform='cuda',GPUindex='default')

Sets the directory name where to save the simulation outputs

[ ]:
sbm_CA.saveFolder('output_2ci2_CA')

Load the gro, top and xml files into the sbm_CA object

[ ]:
sbm_CA_grofile = 'SMOG2_CA_CI2/2ci2.CA.gro'
sbm_CA_topfile = 'SMOG2_CA_CI2/2ci2.CA.top'
sbm_CA_xmlfile = 'SMOG2_CA_CI2/2ci2.CA.xml'

sbm_CA.loadSystem(Grofile=sbm_CA_grofile, Topfile=sbm_CA_topfile, Xmlfile=sbm_CA_xmlfile)

This function returns the name of each contact potential that is being used in the current model. In this example, only a Lennard-Jones-style 10-12 potential is being applied.

The simulation context is created with all information given in the previous steps.

[ ]:
sbm_CA.createSimulation()

Create the reporters that will save the simulation data in an output folder.

trajectory=True Save the trajectory in .dcd format. energies=True Save the energy in text format separated by a comma. interval=10**3 The interval (in steps) at which the trajectory and energies are saved.

[ ]:
sbm_CA.createReporters(trajectory=True, energies=True, energy_components=True, interval=10**3)

The run function receives the following parameters:

nsteps=10**6 Number of steps to be performed in the simulation. report=True Show the simulation details (Progress (%), Step and Time Remaining) interval=10**3 The step interval to show the details

[ ]:
sbm_CA.run(nsteps=10**6, report=True, interval=10**3)

The output files are located in the output folder