Team:EPF-Lausanne/Modeling/RunSimulation
From 2009.igem.org
Contents |
How to run a complete simulation
Theory
The .pdb is generated from X-ray diffraction crystallography. This process requires a crystal of the protein, which occurs only at low temperature (~5°K). Taking this in consideration, we have to go through different steps to bring our protein to lab conditions.
Initial minimization
We start with a few minimization rounds, to reach a minmimum in the sense of potential energy.
Heating
When the protein is stable, we have to add heat (kinetic energy) to reach a higher temperature (~300°K). We have to take a special care not to add heat too fast, which would result in protein burst and explosion of our system.
First NPT
This is a relaxation step, with the number of atoms N, the pressure P and the temperature T all kept constant (NPT step). This is a kind of homogenization of the distribution of atoms inside our box.
NVT
This is also a relaxation step, with atom number, volume and temperature constant.
Second NPT
Now we perform another relaxation NPT to reach lab conditions.
Final NPT
This is the final NPT, which last much longer and gives us the ouput of the simulation.
.conf file
===Simulation parameters For the Constant Pressure Control (so during the variable volume period):
- useGroupPressure yes ; # needed for rigidBonds
- useFlexibleCell no # no for water box, yes for membrane
- useConstantArea no # idem
Initial minimization
This is quite easy to achieve, as NAMD has a specific keyword to run a simulation:
- minimize #number of minimization steps
In more details:
- run one step to get into scripting mode
- minimize 0
- turn off until later
- langevinPiston off
- Minimization
- reinitvels 5 #reinitialization of all velocities
- minimize 100 #no need to run
- output min
Heating
We tried different protocol, but this one is the best:
- reassignTemp $temp_step ;# starting temp
- reassignIncr $temp_step ;# temp increment
- reassignHold 300 ;# final temp
- reassignFreq 100 ;# num timesteps to temp incr.
For this first step, we wanted a continous growing of temperature, so we used: (here for example from 5 to 30K)
- for {set i 5} {$i < 30} {incr i 5} {
- set temperature $i
- langevinTemp $temperature
- run 30
- }
- output heat