Commit 01e5d92a authored by peastman's avatar peastman
Browse files

Merge pull request #90 from peastman/master

Moved Python app layer tests into the main source tree
parents 52c444c5 d1d74008
import unittest
from validateConstraints import *
from simtk.openmm.app import *
from simtk.openmm import *
from simtk.unit import *
class TestAmberPrmtopFile(unittest.TestCase):
"""Test the AmberPrmtopFile.createSystem() method."""
def setUp(self):
"""Set up the tests by loading the input files."""
# alanine dipeptide with explicit water
self.prmtop1 = AmberPrmtopFile('systems/alanine-dipeptide-explicit.prmtop')
# alanine dipeptide with implicit water
self.prmtop2 = AmberPrmtopFile('systems/alanine-dipeptide-implicit.prmtop')
def test_NonbondedMethod(self):
"""Test all five options for the nonbondedMethod parameter."""
methodMap = {NoCutoff:NonbondedForce.NoCutoff,
CutoffNonPeriodic:NonbondedForce.CutoffNonPeriodic,
CutoffPeriodic:NonbondedForce.CutoffPeriodic,
Ewald:NonbondedForce.Ewald, PME: NonbondedForce.PME}
for method in methodMap:
system = self.prmtop1.createSystem(nonbondedMethod=method)
forces = system.getForces()
self.assertTrue(any(isinstance(f, NonbondedForce) and
f.getNonbondedMethod()==methodMap[method]
for f in forces))
def test_Cutoff(self):
"""Test to make sure the nonbondedCutoff parameter is passed correctly."""
for method in [CutoffNonPeriodic, CutoffPeriodic, Ewald, PME]:
system = self.prmtop1.createSystem(nonbondedMethod=method,
nonbondedCutoff=2*nanometer,
constraints=HBonds)
cutoff_distance = 0.0*nanometer
cutoff_check = 2.0*nanometer
for force in system.getForces():
if isinstance(force, NonbondedForce):
cutoff_distance = force.getCutoffDistance()
self.assertEqual(cutoff_distance, cutoff_check)
def test_EwaldErrorTolerance(self):
"""Test to make sure the ewaldErrorTolerance parameter is passed correctly."""
for method in [Ewald, PME]:
system = self.prmtop1.createSystem(nonbondedMethod=method,
ewaldErrorTolerance=1e-6,
constraints=HBonds)
tolerance = 0
tolerance_check = 1e-6
for force in system.getForces():
if isinstance(force, NonbondedForce):
tolerance = force.getEwaldErrorTolerance()
self.assertEqual(tolerance, tolerance_check)
def test_RemoveCMMotion(self):
"""Test both options (True and False) for the removeCMMotion parameter."""
for b in [True, False]:
system = self.prmtop1.createSystem(removeCMMotion=b)
forces = system.getForces()
self.assertEqual(any(isinstance(f, CMMotionRemover) for f in forces), b)
def test_RigidWaterAndConstraints(self):
"""Test all eight options for the constraints and rigidWater parameters."""
topology = self.prmtop1.topology
for constraints_value in [None, HBonds, AllBonds, HAngles]:
for rigidWater_value in [True, False]:
system = self.prmtop1.createSystem(constraints=constraints_value,
rigidWater=rigidWater_value)
validateConstraints(self, topology, system,
constraints_value, rigidWater_value)
def test_ImplicitSolvent(self):
"""Test the four types of implicit solvents using the implicitSolvent
parameter.
"""
for implicitSolvent_value in [HCT, OBC1, OBC2, GBn]:
system = self.prmtop2.createSystem(implicitSolvent=implicitSolvent_value)
forces = system.getForces()
if implicitSolvent_value in set([HCT, OBC1, GBn]):
force_type = CustomGBForce
else:
force_type = GBSAOBCForce
self.assertTrue(any(isinstance(f, force_type) for f in forces))
def test_ImplicitSolventParameters(self):
"""Test that solventDielectric and soluteDielectric are passed correctly
for the different types of implicit solvent.
"""
for implicitSolvent_value in [HCT, OBC1, OBC2, GBn]:
system = self.prmtop2.createSystem(implicitSolvent=implicitSolvent_value,
solventDielectric=50.0,
soluteDielectric = 0.9)
found_matching_solvent_dielectric=False
found_matching_solute_dielectric=False
if implicitSolvent_value in set([HCT, OBC1, GBn]):
for force in system.getForces():
if isinstance(force, CustomGBForce):
for j in range(force.getNumGlobalParameters()):
if (force.getGlobalParameterName(j) == 'solventDielectric' and
force.getGlobalParameterDefaultValue(j) == 50.0):
found_matching_solvent_dielectric = True
if (force.getGlobalParameterName(j) == 'soluteDielectric' and
force.getGlobalParameterDefaultValue(j) == 0.9):
found_matching_solute_dielectric = True
if isinstance(force, NonbondedForce):
self.assertEqual(force.getReactionFieldDielectric(), 1.0)
self.assertTrue(found_matching_solvent_dielectric and
found_matching_solute_dielectric)
else:
for force in system.getForces():
if isinstance(force, GBSAOBCForce):
if force.getSolventDielectric() == 50.0:
found_matching_solvent_dielectric = True
if force.getSoluteDielectric() == 0.9:
found_matching_solute_dielectric = True
if isinstance(force, NonbondedForce):
self.assertEqual(force.getReactionFieldDielectric(), 1.0)
self.assertTrue(found_matching_solvent_dielectric and
found_matching_solute_dielectric)
if __name__ == '__main__':
unittest.main()
import unittest
from validateConstraints import *
from simtk.openmm.app import *
from simtk.openmm import *
from simtk.unit import *
class TestForceField(unittest.TestCase):
"""Test the ForceField.createSystem() method."""
def setUp(self):
"""Set up the tests by loading the input pdb files and force field
xml files.
"""
# alanine dipeptide with explicit water
self.pdb1 = PDBFile('systems/alanine-dipeptide-explicit.pdb')
self.forcefield1 = ForceField('amber99sb.xml', 'tip3p.xml')
self.topology1 = self.pdb1.topology
self.topology1.setUnitCellDimensions(Vec3(2, 2, 2))
self.pdb2 = PDBFile('systems/alanine-dipeptide-implicit.pdb')
self.forcefield2 = ForceField('amber99sb.xml', 'amber99_obc.xml')
def test_NonbondedMethod(self):
"""Test all five options for the nonbondedMethod parameter."""
methodMap = {NoCutoff:NonbondedForce.NoCutoff,
CutoffNonPeriodic:NonbondedForce.CutoffNonPeriodic,
CutoffPeriodic:NonbondedForce.CutoffPeriodic,
Ewald:NonbondedForce.Ewald, PME: NonbondedForce.PME}
for method in methodMap:
system = self.forcefield1.createSystem(self.pdb1.topology,
nonbondedMethod=method)
forces = system.getForces()
self.assertTrue(any(isinstance(f, NonbondedForce) and
f.getNonbondedMethod()==methodMap[method]
for f in forces))
def test_Cutoff(self):
"""Test to make sure the nonbondedCutoff parameter is passed correctly."""
for method in [CutoffNonPeriodic, CutoffPeriodic, Ewald, PME]:
system = self.forcefield1.createSystem(self.pdb1.topology,
nonbondedMethod=method,
nonbondedCutoff=2*nanometer,
constraints=HBonds)
cutoff_distance = 0.0*nanometer
cutoff_check = 2.0*nanometer
for force in system.getForces():
if isinstance(force, NonbondedForce):
cutoff_distance = force.getCutoffDistance()
self.assertEqual(cutoff_distance, cutoff_check)
def test_RemoveCMMotion(self):
"""Test both options (True and False) for the removeCMMotion parameter."""
for b in [True, False]:
system = self.forcefield1.createSystem(self.pdb1.topology,removeCMMotion=b)
forces = system.getForces()
self.assertEqual(any(isinstance(f, CMMotionRemover) for f in forces), b)
def test_RigidWaterAndConstraints(self):
"""Test all eight options for the constraints and rigidWater parameters."""
topology = self.pdb1.topology
for constraints_value in [None, HBonds, AllBonds, HAngles]:
for rigidWater_value in [True, False]:
system = self.forcefield1.createSystem(topology,
constraints=constraints_value,
rigidWater=rigidWater_value)
validateConstraints(self, topology, system,
constraints_value, rigidWater_value)
def test_ImplicitSolvent(self):
"""Test the four types of implicit solvents using the implicitSolvent
parameter.
"""
topology = self.pdb2.topology
system = self.forcefield2.createSystem(topology)
forces = system.getForces()
self.assertTrue(any(isinstance(f, GBSAOBCForce) for f in forces))
def test_ImplicitSolventParameters(self):
"""Test that solventDielectric and soluteDielectric are passed correctly
for the different types of implicit solvent.
"""
topology = self.pdb2.topology
system = self.forcefield2.createSystem(topology, solventDielectric=50.0,
soluteDielectric=0.9)
found_matching_solvent_dielectric=False
found_matching_solute_dielectric=False
for force in system.getForces():
if isinstance(force, GBSAOBCForce):
if force.getSolventDielectric() == 50.0:
found_matching_solvent_dielectric = True
if force.getSoluteDielectric() == 0.9:
found_matching_solute_dielectric = True
if isinstance(force, NonbondedForce):
self.assertEqual(force.getReactionFieldDielectric(), 1.0)
self.assertTrue(found_matching_solvent_dielectric and
found_matching_solute_dielectric)
if __name__ == '__main__':
unittest.main()
import unittest
from validateConstraints import *
from simtk.openmm.app import *
from simtk.openmm import *
from simtk.unit import *
class TestGromacsTopFile(unittest.TestCase):
"""Test the GromacsTopFile.createSystem() method."""
def setUp(self):
"""Set up the tests by loading the input files."""
# alanine dipeptide with explicit water
self.top1 = GromacsTopFile('systems/explicit.top', unitCellDimensions=Vec3(6.223, 6.223, 6.223)*nanometers)
# alanine dipeptide with implicit water
self.top2 = GromacsTopFile('systems/implicit.top')
def test_NonbondedMethod(self):
"""Test all five options for the nonbondedMethod parameter."""
methodMap = {NoCutoff:NonbondedForce.NoCutoff,
CutoffNonPeriodic:NonbondedForce.CutoffNonPeriodic,
CutoffPeriodic:NonbondedForce.CutoffPeriodic,
Ewald:NonbondedForce.Ewald, PME: NonbondedForce.PME}
for method in methodMap:
system = self.top1.createSystem(nonbondedMethod=method)
forces = system.getForces()
self.assertTrue(any(isinstance(f, NonbondedForce) and
f.getNonbondedMethod()==methodMap[method]
for f in forces))
def test_Cutoff(self):
"""Test to make sure the nonbondedCutoff parameter is passed correctly."""
for method in [CutoffNonPeriodic, CutoffPeriodic, Ewald, PME]:
system = self.top1.createSystem(nonbondedMethod=method,
nonbondedCutoff=2*nanometer,
constraints=HBonds)
cutoff_distance = 0.0*nanometer
cutoff_check = 2.0*nanometer
for force in system.getForces():
if isinstance(force, NonbondedForce):
cutoff_distance = force.getCutoffDistance()
self.assertEqual(cutoff_distance, cutoff_check)
def test_EwaldErrorTolerance(self):
"""Test to make sure the ewaldErrorTolerance parameter is passed correctly."""
for method in [Ewald, PME]:
system = self.top1.createSystem(nonbondedMethod=method,
ewaldErrorTolerance=1e-6,
constraints=HBonds)
tolerance = 0
tolerance_check = 1e-6
for force in system.getForces():
if isinstance(force, NonbondedForce):
tolerance = force.getEwaldErrorTolerance()
self.assertEqual(tolerance, tolerance_check)
def test_RemoveCMMotion(self):
"""Test both options (True and False) for the removeCMMotion parameter."""
for b in [True, False]:
system = self.top1.createSystem(removeCMMotion=b)
self.assertEqual(any(isinstance(f, CMMotionRemover) for f in system.getForces()), b)
def test_RigidWaterAndConstraints(self):
"""Test all eight options for the constraints and rigidWater parameters."""
topology = self.top1.topology
for constraints_value in [None, HBonds, AllBonds, HAngles]:
for rigidWater_value in [True, False]:
system = self.top1.createSystem(constraints=constraints_value,
rigidWater=rigidWater_value)
validateConstraints(self, topology, system,
constraints_value, rigidWater_value)
def test_ImplicitSolvent(self):
"""Test implicit solvent using the implicitSolvent parameter.
"""
system = self.top2.createSystem(implicitSolvent=OBC2)
self.assertTrue(any(isinstance(f, GBSAOBCForce) for f in system.getForces()))
def test_ImplicitSolventParameters(self):
"""Test that solventDielectric and soluteDielectric are passed correctly.
"""
system = self.top2.createSystem(implicitSolvent=OBC2,
solventDielectric=50.0,
soluteDielectric = 0.9)
found_matching_solvent_dielectric=False
found_matching_solute_dielectric=False
for force in system.getForces():
if isinstance(force, GBSAOBCForce):
if force.getSolventDielectric() == 50.0:
found_matching_solvent_dielectric = True
if force.getSoluteDielectric() == 0.9:
found_matching_solute_dielectric = True
if isinstance(force, NonbondedForce):
self.assertEqual(force.getReactionFieldDielectric(), 1.0)
self.assertTrue(found_matching_solvent_dielectric and
found_matching_solute_dielectric)
if __name__ == '__main__':
unittest.main()
This diff is collapsed.
import unittest
import numpy as np
from simtk.openmm import app
import simtk.openmm as mm
from simtk import unit
class TestNumpyCompatibility(unittest.TestCase):
def setUp(self):
prmtop = app.AmberPrmtopFile('systems/water-box-216.prmtop')
system = prmtop.createSystem(nonbondedMethod=app.PME,
nonbondedCutoff=0.9*unit.nanometers,
constraints=app.HBonds, rigidWater=True,
ewaldErrorTolerance=0.0005)
integrator = mm.LangevinIntegrator(300*unit.kelvin, 1.0/unit.picoseconds,
2.0*unit.femtoseconds)
self.simulation = app.Simulation(prmtop.topology, system, integrator,
mm.Platform.getPlatformByName('Reference'))
def test_setPositions(self):
n_particles = self.simulation.context.getSystem().getNumParticles()
input = np.random.randn(n_particles, 3)
self.simulation.context.setPositions(input)
output = self.simulation.context.getState(getPositions=True).getPositions(asNumpy=True)
np.testing.assert_array_almost_equal(input, output)
def test_setPositions_units(self):
n_particles = self.simulation.context.getSystem().getNumParticles()
input = unit.Quantity(np.random.randn(n_particles, 3), unit.angstroms)
self.simulation.context.setPositions(input)
output = self.simulation.context.getState(getPositions=True).getPositions(asNumpy=True)
np.testing.assert_array_almost_equal(input.value_in_unit(unit.nanometers), output.value_in_unit(unit.nanometers))
def test_setVelocities(self):
n_particles = self.simulation.context.getSystem().getNumParticles()
input = np.random.randn(n_particles, 3)
self.simulation.context.setVelocities(input)
output = self.simulation.context.getState(getVelocities=True).getVelocities(asNumpy=True)
np.testing.assert_array_almost_equal(input, output)
def test_setVelocities_units(self):
n_particles = self.simulation.context.getSystem().getNumParticles()
input = unit.Quantity(np.random.randn(n_particles, 3), unit.angstroms / unit.femtoseconds)
self.simulation.context.setVelocities(input)
output = self.simulation.context.getState(getVelocities=True).getVelocities(asNumpy=True)
np.testing.assert_array_almost_equal(input.value_in_unit(unit.angstroms / unit.femtoseconds),
output.value_in_unit(unit.angstroms / unit.femtoseconds))
def test_tabulatedFunction(self):
f = mm.CustomNonbondedForce('g(r)')
r = np.linspace(0,10)
g_of_r = np.sin(r)
indx = f.addFunction('g', g_of_r, np.min(r), np.max(r))
name, g_of_r_out, min_r_out, max_r_out = f.getFunctionParameters(indx)
np.testing.assert_array_almost_equal(g_of_r, np.asarray(g_of_r_out))
assert min_r_out == np.min(r)
assert max_r_out == np.max(r)
def test_CMAP(self):
f = mm.CMAPTorsionForce()
energy = np.random.randn(10*10)
f.addMap(10, energy)
size, energy_out = f.getMapParameters(0)
assert size == 10
np.testing.assert_array_almost_equal(energy, np.asarray(energy_out))
if __name__ == '__main__':
unittest.main()
This diff is collapsed.
This diff is collapsed.
REMARK ACE
ATOM 1 1HH3 ACE 1 2.000 1.000 -0.000
ATOM 2 CH3 ACE 1 2.000 2.090 0.000
ATOM 3 2HH3 ACE 1 1.486 2.454 0.890
ATOM 4 3HH3 ACE 1 1.486 2.454 -0.890
ATOM 5 C ACE 1 3.427 2.641 -0.000
ATOM 6 O ACE 1 4.391 1.877 -0.000
ATOM 7 N ALA 2 3.555 3.970 -0.000
ATOM 8 H ALA 2 2.733 4.556 -0.000
ATOM 9 CA ALA 2 4.853 4.614 -0.000
ATOM 10 HA ALA 2 5.408 4.316 0.890
ATOM 11 CB ALA 2 5.661 4.221 -1.232
ATOM 12 1HB ALA 2 5.123 4.521 -2.131
ATOM 13 2HB ALA 2 6.630 4.719 -1.206
ATOM 14 3HB ALA 2 5.809 3.141 -1.241
ATOM 15 C ALA 2 4.713 6.129 0.000
ATOM 16 O ALA 2 3.601 6.653 0.000
ATOM 17 N NME 3 5.846 6.835 0.000
ATOM 18 H NME 3 6.737 6.359 -0.000
ATOM 19 CH3 NME 3 5.846 8.284 0.000
ATOM 20 1HH3 NME 3 4.819 8.648 0.000
ATOM 21 2HH3 NME 3 6.360 8.648 0.890
ATOM 22 3HH3 NME 3 6.360 8.648 -0.890
TER
END
%VERSION VERSION_STAMP = V0001.000 DATE = 12/02/09 14:15:18
%FLAG TITLE
%FORMAT(20a4)
ACE
%FLAG POINTERS
%FORMAT(10I8)
22 7 12 9 25 11 35 17 0 0
99 3 9 11 17 8 16 13 7 0
0 0 0 0 0 0 0 0 10 0
0
%FLAG ATOM_NAME
%FORMAT(20a4)
HH31CH3 HH32HH33C O N H CA HA CB HB1 HB2 HB3 C O N H CH3 HH31
HH32HH33
%FLAG CHARGE
%FORMAT(5E16.8)
2.04636429E+00 -6.67300626E+00 2.04636429E+00 2.04636429E+00 1.08823576E+01
-1.03484442E+01 -7.57501011E+00 4.95464337E+00 6.14091510E-01 1.49969529E+00
-3.32556975E+00 1.09880469E+00 1.09880469E+00 1.09880469E+00 1.08841798E+01
-1.03484442E+01 -7.57501011E+00 4.95464337E+00 -2.71512270E+00 1.77849648E+00
1.77849648E+00 1.77849648E+00
%FLAG MASS
%FORMAT(5E16.8)
1.00800000E+00 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.20100000E+01
1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00
1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.20100000E+01
1.60000000E+01 1.40100000E+01 1.00800000E+00 1.20100000E+01 1.00800000E+00
1.00800000E+00 1.00800000E+00
%FLAG ATOM_TYPE_INDEX
%FORMAT(10I8)
1 2 1 1 3 4 5 6 2 7
2 1 1 1 3 4 5 6 2 7
7 7
%FLAG NUMBER_EXCLUDED_ATOMS
%FORMAT(10I8)
6 7 4 3 7 3 10 4 10 7
6 3 2 1 7 3 5 4 3 2
1 1
%FLAG NONBONDED_PARM_INDEX
%FORMAT(10I8)
1 2 4 7 11 16 22 2 3 5
8 12 17 23 4 5 6 9 13 18
24 7 8 9 10 14 19 25 11 12
13 14 15 20 26 16 17 18 19 20
21 27 22 23 24 25 26 27 28
%FLAG RESIDUE_LABEL
%FORMAT(20a4)
ACE ALA NME
%FLAG RESIDUE_POINTER
%FORMAT(10I8)
1 7 17
%FLAG BOND_FORCE_CONSTANT
%FORMAT(5E16.8)
5.70000000E+02 4.90000000E+02 3.40000000E+02 3.17000000E+02 3.40000000E+02
3.10000000E+02 4.34000000E+02 3.37000000E+02
%FLAG BOND_EQUIL_VALUE
%FORMAT(5E16.8)
1.22900000E+00 1.33500000E+00 1.09000000E+00 1.52200000E+00 1.09000000E+00
1.52600000E+00 1.01000000E+00 1.44900000E+00
%FLAG ANGLE_FORCE_CONSTANT
%FORMAT(5E16.8)
8.00000000E+01 3.00000000E+01 5.00000000E+01 5.00000000E+01 3.50000000E+01
8.00000000E+01 7.00000000E+01 6.30000000E+01 5.00000000E+01 5.00000000E+01
5.00000000E+01 3.00000000E+01 5.00000000E+01 8.00000000E+01 6.30000000E+01
3.50000000E+01
%FLAG ANGLE_EQUIL_VALUE
%FORMAT(5E16.8)
2.14501057E+00 2.09439600E+00 2.12755727E+00 1.91113635E+00 1.91113635E+00
2.10137732E+00 2.03505478E+00 1.93906163E+00 1.91113635E+00 1.91113635E+00
1.91113635E+00 2.06018753E+00 1.91113635E+00 1.91462701E+00 1.92160833E+00
1.91113635E+00
%FLAG DIHEDRAL_FORCE_CONSTANT
%FORMAT(5E16.8)
2.00000000E+00 2.50000000E+00 0.00000000E+00 5.30000000E-01 1.50000000E-01
5.00000000E-01 8.50000000E-01 3.00000000E-01 1.55555556E-01 7.00000000E-02
1.00000000E-01 1.05000000E+01 1.00000000E+00
%FLAG DIHEDRAL_PERIODICITY
%FORMAT(5E16.8)
1.00000000E+00 2.00000000E+00 2.00000000E+00 1.00000000E+00 3.00000000E+00
4.00000000E+00 1.00000000E+00 2.00000000E+00 3.00000000E+00 2.00000000E+00
4.00000000E+00 2.00000000E+00 2.00000000E+00
%FLAG DIHEDRAL_PHASE
%FORMAT(5E16.8)
0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 3.14159400E+00
3.14159400E+00 0.00000000E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 3.14159400E+00 3.14159400E+00
%FLAG SOLTY
%FORMAT(5E16.8)
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00
%FLAG LENNARD_JONES_ACOEF
%FORMAT(5E16.8)
7.51607703E+03 9.71708117E+04 1.04308023E+06 8.61541883E+04 9.24822270E+05
8.19971662E+05 5.44261042E+04 6.47841731E+05 5.74393458E+05 3.79876399E+05
8.96776989E+04 9.95480466E+05 8.82619071E+05 6.06829342E+05 9.44293233E+05
1.07193646E+02 2.56678134E+03 2.27577561E+03 1.02595236E+03 2.12601181E+03
1.39982777E-01 4.98586848E+03 6.78771368E+04 6.01816484E+04 3.69471530E+04
6.20665997E+04 5.94667300E+01 3.25969625E+03
%FLAG LENNARD_JONES_BCOEF
%FORMAT(5E16.8)
2.17257828E+01 1.26919150E+02 6.75612247E+02 1.12529845E+02 5.99015525E+02
5.31102864E+02 1.11805549E+02 6.26720080E+02 5.55666448E+02 5.64885984E+02
1.36131731E+02 7.36907417E+02 6.53361429E+02 6.77220874E+02 8.01323529E+02
2.59456373E+00 2.06278363E+01 1.82891803E+01 1.53505284E+01 2.09604198E+01
9.37598976E-02 1.76949863E+01 1.06076943E+02 9.40505980E+01 9.21192136E+01
1.13252061E+02 1.93248820E+00 1.43076527E+01
%FLAG BONDS_INC_HYDROGEN
%FORMAT(10I8)
3 6 3 3 9 3 0 3 3 30
33 3 30 36 3 30 39 3 24 27
5 18 21 7 54 57 5 54 60 5
54 63 5 48 51 7
%FLAG BONDS_WITHOUT_HYDROGEN
%FORMAT(10I8)
12 15 1 12 18 2 3 12 4 42
45 1 42 48 2 24 30 6 24 42
4 18 24 8 48 54 8
%FLAG ANGLES_INC_HYDROGEN
%FORMAT(10I8)
12 18 21 2 9 3 12 4 6 3
9 5 6 3 12 4 0 3 6 5
0 3 9 5 0 3 12 4 42 48
51 2 36 30 39 5 33 30 36 5
33 30 39 5 27 24 30 9 27 24
42 10 24 30 33 11 24 30 36 11
24 30 39 11 21 18 24 12 18 24
27 13 60 54 63 16 57 54 60 16
57 54 63 16 51 48 54 12 48 54
57 13 48 54 60 13 48 54 63 13
%FLAG ANGLES_WITHOUT_HYDROGEN
%FORMAT(10I8)
15 12 18 1 12 18 24 3 3 12
15 6 3 12 18 7 45 42 48 1
42 48 54 3 30 24 42 8 24 42
45 6 24 42 48 7 18 24 30 14
18 24 42 15
%FLAG DIHEDRALS_INC_HYDROGEN
%FORMAT(10I8)
15 12 18 21 1 15 12 -18 21 2
12 18 24 27 3 9 3 12 15 3
9 3 12 18 3 6 3 12 15 3
6 3 12 18 3 3 12 18 21 2
0 3 12 15 3 0 3 12 18 3
45 42 48 51 1 45 42 -48 51 2
42 48 54 57 3 42 48 54 60 3
42 48 54 63 3 39 30 24 42 9
36 30 24 42 9 33 30 24 42 9
27 24 30 33 9 27 24 30 36 9
27 24 30 39 9 27 24 42 45 3
27 24 42 48 3 24 42 48 51 2
21 18 24 27 3 21 18 24 30 3
21 18 24 42 3 18 24 30 33 9
18 24 30 36 9 18 24 30 39 9
51 48 54 57 3 51 48 54 60 3
51 48 54 63 3 12 24 -18 -21 13
42 54 -48 -51 13
%FLAG DIHEDRALS_WITHOUT_HYDROGEN
%FORMAT(10I8)
15 12 18 24 2 12 18 24 30 4
12 18 -24 30 5 12 18 -24 30 6
12 18 24 42 7 12 18 -24 42 8
3 12 18 24 2 45 42 48 54 2
30 24 42 45 3 30 24 42 48 10
30 24 -42 48 11 24 42 48 54 2
18 24 42 45 3 18 24 42 48 7
18 24 -42 48 8 3 18 -12 -15 12
24 48 -42 -45 12
%FLAG EXCLUDED_ATOMS_LIST
%FORMAT(10I8)
2 3 4 5 6 7 3 4 5 6
7 8 9 4 5 6 7 5 6 7
6 7 8 9 10 11 15 7 8 9
8 9 10 11 12 13 14 15 16 17
9 10 11 15 10 11 12 13 14 15
16 17 18 19 11 12 13 14 15 16
17 12 13 14 15 16 17 13 14 15
14 15 15 16 17 18 19 20 21 22
17 18 19 18 19 20 21 22 19 20
21 22 20 21 22 21 22 22 0
%FLAG HBOND_ACOEF
%FORMAT(5E16.8)
%FLAG HBOND_BCOEF
%FORMAT(5E16.8)
%FLAG HBCUT
%FORMAT(5E16.8)
%FLAG AMBER_ATOM_TYPE
%FORMAT(20a4)
HC CT HC HC C O N H CT H1 CT HC HC HC C O N H CT H1
H1 H1
%FLAG TREE_CHAIN_CLASSIFICATION
%FORMAT(20a4)
M M E E M E M E M E 3 E E E M E M E M E
E E
%FLAG JOIN_ARRAY
%FORMAT(10I8)
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0
%FLAG IROTAT
%FORMAT(10I8)
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0
%FLAG RADIUS_SET
%FORMAT(1a80)
H(N)-modified Bondi radii (mbondi2)
%FLAG RADII
%FORMAT(5E16.8)
1.20000000E+00 1.70000000E+00 1.20000000E+00 1.20000000E+00 1.70000000E+00
1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.20000000E+00
1.70000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.70000000E+00
1.50000000E+00 1.55000000E+00 1.30000000E+00 1.70000000E+00 1.20000000E+00
1.20000000E+00 1.20000000E+00
%FLAG SCREEN
%FORMAT(5E16.8)
8.50000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01
8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01
7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 7.20000000E-01
8.50000000E-01 7.90000000E-01 8.50000000E-01 7.20000000E-01 8.50000000E-01
8.50000000E-01 8.50000000E-01
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment