Example #1
0
    def report(self, sim, state):
        """Generate a report.

        Parameters
        ----------
        sim : :class:`app.Simulation`
            The Simulation to generate a report for
        state : :class:`mm.State`
            The current state of the simulation
        """
        global VELUNIT
        crds = state.getPositions().value_in_unit(u.angstrom)
        if self.rst7 is None:
            self.uses_pbc = sim.topology.getUnitCellDimensions() is not None
            self.atom = len(crds)
            # First time written
            self.rst7 = Rst7(
                natom=self.atom,
                title='Restart file written by ParmEd with OpenMM')
        self.rst7.time = state.getTime().value_in_unit(u.picosecond)
        flatcrd = [0.0 for i in xrange(self.atom * 3)]
        for i in xrange(self.atom):
            i3 = i * 3
            flatcrd[i3], flatcrd[i3 + 1], flatcrd[i3 + 2] = crds[i]
        self.rst7.coordinates = flatcrd

        if self.write_velocities:
            vels = state.getVelocities().value_in_unit(VELUNIT)
            flatvel = [0.0 for i in xrange(self.atom * 3)]
            for i in xrange(self.atom):
                i3 = i * 3
                flatvel[i3], flatvel[i3 + 1], flatvel[i3 + 2] = vels[i]
            self.rst7.vels = flatvel

        if self.uses_pbc:
            boxvecs = state.getPeriodicBoxVectors()
            lengths, angles = box_vectors_to_lengths_and_angles(*boxvecs)
            lengths = lengths.value_in_unit(u.angstrom)
            angles = angles.value_in_unit(u.degree)
            self.rst7.box = [
                lengths[0], lengths[1], lengths[2], angles[0], angles[1],
                angles[2]
            ]

        if self.write_multiple:
            fname = self.fname + '.%d' % sim.currentStep
        else:
            fname = self.fname

        self.rst7.write(fname, self.netcdf)
Example #2
0
def get_U_invU(asu_rst7_file_name):
  rst7 = Rst7.open(asu_rst7_file_name)
  UCbox = rst7.box
  U, invU = raf.CompXfrm(UCbox)
  return U, invU, UCbox
Example #3
0
#! /usr/bin/env python

import sander
from chemistry.amber.readparm import AmberParm, Rst7
import numpy as np

pdb = '3stl'
parm = AmberParm('4amber_%s.prmtop' % pdb)  #topo
rst = Rst7.open('4amber_%s.rst7' % pdb)  #box
sander.setup(parm, rst.coordinates, rst.box, sander.pme_input())
ene, frc = sander.energy_forces()
print ene.tot
print max(frc)

import code
code.interact(local=dict(globals(), **locals()))
sander.cleanup()
#! /usr/bin/env python

import sander
from chemistry.amber.readparm import AmberParm, Rst7
import numpy as np

pdb ='3stl'
parm = AmberParm('4amber_%s.prmtop' %pdb)  #topo
rst = Rst7.open('4amber_%s.rst7' %pdb)     #box
sander.setup(parm, rst.coordinates, rst.box, sander.pme_input())
ene, frc = sander.energy_forces()
print ene.tot
print max(frc)

import code; code.interact(local=dict(globals(), **locals()))
sander.cleanup()

Example #5
0
def get_U_invU(asu_rst7_file_name):
    rst7 = Rst7.open(asu_rst7_file_name)
    UCbox = rst7.box
    U, invU = raf.CompXfrm(UCbox)
    return U, invU, UCbox
#! /usr/bin/env python

import sander
from chemistry.amber.readparm import AmberParm, Rst7
from chemistry.structure import Structure, read_PDB, write_PDB
import numpy as np


parm = AmberParm('4amber_1cby.prmtop')
pdb = read_PDB('new.pdb')
rst = Rst7.open('4amber_1cby.rst7')
xyz = pdb.pdbxyz[0]
sander.setup(parm,xyz, rst.box, sander.pme_input())

sander.set_positions(xyz)
ene, frc = sander.energy_forces()

#~ import code; code.interact(local=dict(globals(), **locals()))
sander.cleanup()