This paper1 identifies cryptic allosteric sites by building MSMs from 100+ µs simulations of ß-lactamase, IL-2, and RNase H in the absence of ligand.

Can we identify these allosteric sites from equilibrium monte carlo sampling?

References

  1. Equilibrium fluctuations of a single folded protein reveal a multitude of potential cryptic allosteric sites, Bowman and Geissler, 2012, http://www.pnas.org/content/109/29/11681.long

In [1]:
from simtk.openmm.app import *
from simtk.openmm import *
from simtk.unit import *
from sys import stdout

In [2]:
pdb = PDBFile('input.pdb')

In [3]:
#pdb = PDBFile('1F21.pdb')

In [4]:
#forcefield.


Out[4]:
<module 'simtk.openmm.app.forcefield' from '/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/forcefield.pyc'>

In [4]:
modeller = Modeller(pdb.topology,pdb.positions)
modeller.deleteWater()
modeller.addHydrogens();

In [5]:
system = forcefield.createSystem(modeller.topology,nonbondedMethod=PME)


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-4d4f50174f48> in <module>()
----> 1 system = forcefield.createSystem(modeller.topology,nonbondedMethod=PME)

AttributeError: 'module' object has no attribute 'createSystem'

In [ ]:
forcefield.c

In [ ]:


In [9]:
prmtop = AmberPrmtopFile('input.prmtop')
inpcrd = AmberInpcrdFile('input.inpcrd')
system = prmtop.createSystem(nonbondedMethod=PME,
nonbondedCutoff=1*nanometer, constraints=HBonds)
integrator = LangevinIntegrator(300*kelvin, 1/picosecond,0.002*picoseconds)
simulation = Simulation(prmtop.topology, system, integrator)
simulation.context.setPositions(inpcrd.positions)
simulation.minimizeEnergy()
simulation.reporters.append(PDBReporter('output.pdb', 1000))
simulation.reporters.append(StateDataReporter(stdout, 1000, step=True, potentialEnergy=True, temperature=True))
simulation.step(10000)


---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-9-a1b6bf7dc7d1> in <module>()
----> 1 prmtop = AmberPrmtopFile('input.prmtop')
      2 inpcrd = AmberInpcrdFile('input.inpcrd')
      3 system = prmtop.createSystem(nonbondedMethod=PME,
      4 nonbondedCutoff=1*nanometer, constraints=HBonds)
      5 integrator = LangevinIntegrator(300*kelvin, 1/picosecond,0.002*picoseconds)

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/amberprmtopfile.pyc in __init__(self, file)
     80         # Load the prmtop file
     81 
---> 82         prmtop = amber_file_parser.PrmtopLoader(file)
     83         self._prmtop = prmtop
     84 

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/internal/amber_file_parser.pyc in __init__(self, inFilename)
    120         self._has_nbfix_terms = False
    121 
--> 122         fIn=open(inFilename)
    123         for line in fIn:
    124             if line.startswith('%VERSION'):

IOError: [Errno 2] No such file or directory: 'input.prmtop'

In [5]:
forcefield = ForceField('amoeba2009.xml', 'amoeba2009_gk.xml')

In [7]:
system=forcefield.createSystem(pdb.topology,
                               nonbondedMethod=NoCutoff,
                               soluteDielectric=2.0,
                               solventDielectric=80.0)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-f15bfbf03153> in <module>()
      2                                nonbondedMethod=NoCutoff,
      3                                soluteDielectric=2.0,
----> 4                                solventDielectric=80.0)

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/forcefield.pyc in createSystem(self, topology, nonbondedMethod, nonbondedCutoff, constraints, rigidWater, removeCMMotion, hydrogenMass, **args)
    377                             break
    378                 if matches is None:
--> 379                     raise ValueError('No template found for residue %d (%s).  %s' % (res.index+1, res.name, _findMatchErrors(self, res)))
    380                 matchAtoms = dict(zip(matches, res.atoms()))
    381                 for atom, match in zip(res.atoms(), matches):

ValueError: No template found for residue 1 (LYS).  The set of atoms is similar to LYD, but it is missing 12 hydrogen atoms.

In [7]:
from __future__ import print_function
from simtk.openmm import app
import simtk.openmm as mm
from simtk import unit
from sys import stdout

#pdb = app.PDBFile('input.pdb')
pdb = PDBFile('1F21.pdb')
modeller = Modeller(pdb.topology,pdb.positions)
modeller.addHydrogens()
modeller.deleteWater()

pdb = modeller

forcefield = app.ForceField('amber99sbildn.xml', 'amber99_obc.xml')

system = forcefield.createSystem(pdb.topology,constraints=app.HBonds)
integrator = mm.LangevinIntegrator(300*unit.kelvin, 1.0/unit.picoseconds, 
    2.0*unit.femtoseconds)
integrator.setConstraintTolerance(0.00001)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-cfead1cb634f> in <module>()
     15 forcefield = app.ForceField('amber99sbildn.xml', 'amber99_obc.xml')
     16 
---> 17 system = forcefield.createSystem(pdb.topology,constraints=app.HBonds)
     18 integrator = mm.LangevinIntegrator(300*unit.kelvin, 1.0/unit.picoseconds, 
     19     2.0*unit.femtoseconds)

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/forcefield.pyc in createSystem(self, topology, nonbondedMethod, nonbondedCutoff, constraints, rigidWater, removeCMMotion, hydrogenMass, **args)
    377                             break
    378                 if matches is None:
--> 379                     raise ValueError('No template found for residue %d (%s).  %s' % (res.index+1, res.name, _findMatchErrors(self, res)))
    380                 matchAtoms = dict(zip(matches, res.atoms()))
    381                 for atom, match in zip(res.atoms(), matches):

ValueError: No template found for residue 152 (GLU).  The set of atoms matches GLU, but the bonds are different.  Perhaps the chain is missing a terminal group?

In [6]:
platform = mm.Platform.getPlatformByName('CUDA')
properties = {'CudaPrecision': 'mixed'}
simulation = app.Simulation(pdb.topology, system, integrator, platform, 
    properties)
simulation.context.setPositions(pdb.positions)

print('Minimizing...')
simulation.minimizeEnergy()

simulation.context.setVelocitiesToTemperature(300*unit.kelvin)
print('Equilibrating...')
simulation.step(100)

simulation.reporters.append(app.DCDReporter('trajectory.dcd', 1000))
simulation.reporters.append(app.StateDataReporter(stdout, 1000, step=True, 
    potentialEnergy=True, temperature=True, progress=True, remainingTime=True, 
    speed=True, totalSteps=1000, separator='\t'))

print('Running Production...')
simulation.step(1000)
print('Done!')


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-2516f2eee945> in <module>()
----> 1 platform = mm.Platform.getPlatformByName('CUDA')
      2 properties = {'CudaPrecision': 'mixed'}
      3 simulation = app.Simulation(pdb.topology, system, integrator, platform, 
      4     properties)
      5 simulation.context.setPositions(pdb.positions)

NameError: name 'mm' is not defined

In [20]:
pdb = PDBFile('1F21.pdb')

import pdbfixer
pdbfixer.


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-20-11c8e54a5790> in <module>()
      2 
      3 
----> 4 import pdbfixer

ImportError: No module named pdbfixer

In [22]:
import mdtraj


---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-22-9bc28847c95c> in <module>()
----> 1 import mdtraj

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/__init__.py in <module>()
     51 from mdtraj._lprmsd import lprmsd
     52 from mdtraj.core.topology import Topology
---> 53 from mdtraj.geometry import *
     54 from mdtraj.core.trajectory import *
     55 from mdtraj.nmr import *

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/__init__.py in <module>()
     48 from mdtraj.geometry.thermodynamic_properties import *
     49 from mdtraj.geometry.rdf import *
---> 50 from mdtraj.geometry.order import *
     51 

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/order.py in <module>()
     23 from __future__ import print_function, division
     24 
---> 25 from pkg_resources import parse_version
     26 
     27 import numpy as np

IOError: zipimport: can not open file /Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg

In [21]:
import os
import mdtraj
import mdtraj.reporters

from simtk import unit
import simtk.openmm as mm
from simtk.openmm import app

import mdtraj.testing
pdb = mdtraj.load(mdtraj.testing.get_fn('native.pdb'))
topology = pdb.topology.to_openmm()

forcefield = app.ForceField('amber99sbildn.xml', 'amber99_obc.xml')
system = forcefield.createSystem(topology, nonbondedMethod=app.CutoffNonPeriodic)
integrator = mm.LangevinIntegrator(330*unit.kelvin, 1.0/unit.picoseconds, 2.0*unit.femtoseconds)
simulation = app.Simulation(topology, system, integrator)

simulation.context.setPositions(pdb.xyz[0])
simulation.context.setVelocitiesToTemperature(330*unit.kelvin)


---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-21-54128a5023ef> in <module>()
      1 import os
----> 2 import mdtraj
      3 import mdtraj.reporters
      4 
      5 from simtk import unit

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/__init__.pyc in <module>()
     51 from mdtraj._lprmsd import lprmsd
     52 from mdtraj.core.topology import Topology
---> 53 from mdtraj.geometry import *
     54 from mdtraj.core.trajectory import *
     55 from mdtraj.nmr import *

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/__init__.py in <module>()
     48 from mdtraj.geometry.thermodynamic_properties import *
     49 from mdtraj.geometry.rdf import *
---> 50 from mdtraj.geometry.order import *
     51 

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/order.py in <module>()
     23 from __future__ import print_function, division
     24 
---> 25 from pkg_resources import parse_version
     26 
     27 import numpy as np

IOError: zipimport: can not open file /Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg

In [ ]: