Perform a simulation with an All-Atom Structure-Based Model using OpenSMOG¶
This tutorial should take between 5 to 15 minutes of reading and performing simulations.
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.002 (reduced time unit) Sets the time step used in integration.
collision_rate=1.0 (reduced inverse-time unit) Sets the collision rate in the Langevin integrator.
r_cutoff=1.2 (nanometers) Sets the non-bonded cutoff.
temperature=0.5 (reduced temperature unit) Sets the temperature for the simulation.
sbm_AA is an arbitrarily chosen variable name for the SBM object
sbm_AA = SBM(name='2ci2', time_step=0.002, collision_rate=1.0, r_cutoff=1.2, temperature=0.5)
There are three hardware platform options to run the simulations:
if cuda, opencl or HIP is choosen the GPUindex can be define as “0”. If two GPUs are used, one may give “0,1”
Sets the directory name where the output files are saved
Load the gro, top and xml files into the sbm_AA object
sbm_AA_grofile = 'SMOG2_AA_CI2/2ci2.AA.gro' sbm_AA_topfile = 'SMOG2_AA_CI2/2ci2.AA.top' sbm_AA_xmlfile = 'SMOG2_AA_CI2/2ci2.AA.xml' sbm_AA.loadSystem(Grofile=sbm_AA_grofile, Topfile=sbm_AA_topfile, Xmlfile=sbm_AA_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 6-12 potential is being applied.
The simulation context is created with all information given in the previous steps.
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_AA.createReporters(trajectory=True, energies=True, energy_components=True, interval=10**3)
run function receives the following parameters:
nsteps=10**6 Number of steps to perform in the simulation.
report=True Shows the simulation details (Progress (%), Step and Time Remaining)
interval=10**3 The step interval to show the details
sbm_AA.run(nsteps=10**6, report=True, interval=10**3)
The output files are located in the output folder