Commit 31f09353 authored by Jason Swails's avatar Jason Swails
Browse files

Add a couple unittests for CHARMM files. Good thing, too, because they helped

pick up some bugs that were not caught in my initial test following the port
from ParmEd.

All 4 tests pass right now, although no periodic systems are being tested.
Currently CHARMM, XPLOR, and VMD tests are all being run (for the same ala-3
system).

Disable implicit solvent tests, since there is no robust radii assignment
routine yet (the radii are stored in the Amber topology file).  I will port my
assignment routine from ParmEd here shortly and then re-enable the GB tests.
parent 4087eae3
......@@ -13,7 +13,7 @@ from simtk.openmm.app.charmm.topologyobjects import (AtomType, BondType,
UreyBradleyType, NoUreyBradley)
from simtk.openmm.app.charmm.exceptions import CharmmFileError
from simtk.openmm.app.element import Element, get_by_symbol
from simtk.unit import daltons
import simtk.unit as u
import warnings
class ParameterSet(object):
......@@ -512,7 +512,7 @@ def element_by_mass(mass):
for key in Element._elements_by_atomic_number:
element = Element._elements_by_atomic_number[key]
massdiff = abs(element.mass.value_in_unit(daltons) - mass)
massdiff = abs(element.mass.value_in_unit(u.daltons) - mass)
if massdiff < diff:
best_guess = element
diff = massdiff
......
......@@ -112,6 +112,7 @@ class ProteinStructure(object):
self.group_list = groups
self.title = title
self.flags = flags
self.box_vectors = None
@staticmethod
def _convert(string, type, message):
......@@ -728,7 +729,7 @@ class ProteinStructure(object):
self.positions = positions
def set_box(self, box):
def set_box(self, lengths, angles=None):
"""
Sets the periodic box boundary conditions.
......@@ -743,15 +744,16 @@ class ProteinStructure(object):
The box here is copied via slicing, so changing the box that was
passed in will have no effect after set_box is called.
"""
if box is None:
self.box = None
elif len(box) == 6:
self.box = list(box[:])
elif len(box) == 3:
self.box = list(box[:]) + [90.0, 90.0, 90.0]
else:
raise ValueError('set_box requires 3 box lengths, 3 box lengths '
'and 3 angles, or None for no box')
if len(lengths) != 3:
raise ValueError('set_box requires 3 box lengths')
if angles is not None and len(angles) != 3:
raise ValueError('set_box requires 3 box angles')
if angles is None:
angles = [90.0, 90.0, 90.0] * u.degrees
self.box_vectors = _box_vectors_from_lengths_angles(
lengths[0], lengths[1], lengths[2],
angles[0], angles[1], angles[2],
)
# If we already have a _topology instance, then we have possibly changed
# the existence of box information (whether or not this is a periodic
# system), so delete any cached reference to a topology so it's
......@@ -792,8 +794,8 @@ class ProteinStructure(object):
topology.addBond(atoms[bond.atom1.idx], atoms[bond.atom2.idx])
# Add the periodic box if there is one
if hasattr(self, 'box') and self.box is not None:
topology.setUnitCellDimensions(self.box[:3] * u.angstroms)
if self.box_vectors is not None:
topology.setUnitCellDimensions(self.box_lengths)
return topology
......@@ -1372,28 +1374,13 @@ class ProteinStructure(object):
for a in self.atom_list]) * (u.angstroms/u.picosecond)
return self._velocities
@property
def box_vectors(self):
""" Return tuple of box vectors """
if hasattr(self, 'rst7'):
box = [x*u.angstrom for x in self.rst7.box[:3]]
ang = [self.rst7.box[3], self.rst7.box[4], self.rst7.box[5]]
return _box_vectors_from_lengths_angles(box[0], box[1], box[2],
ang[0], ang[1], ang[2])
else:
box = [x*u.angstrom for x in self.parm_data['BOX_DIMENSIONS'][1:]]
ang = [self.parm_data['BOX_DIMENSIONS'][0]] * 3
return _box_vectors_from_lengths_angles(box[0], box[1], box[2],
ang[0], ang[1], ang[2])
@property
def box_lengths(self):
""" Return tuple of 3 units """
if hasattr(self, 'rst7'):
box = [x*u.angstrom for x in self.rst7.box[:3]]
else:
box = [x*u.angstrom for x in self.parm_data['BOX_DIMENSIONS'][1:]]
return tuple(box)
if self.box_vectors is not None:
return (self.box_vectors[0][0], self.box_vectors[0][1],
self.box_vectors[0][2])
return None
def _box_vectors_from_lengths_angles(a, b, c, alpha, beta, gamma):
"""
......
......@@ -8,6 +8,7 @@ Date: April 9, 2014
"""
from simtk.openmm.app.charmm.exceptions import (SplitResidueWarning, BondError,
ResidueError, CmapError, MissingParameter)
import simtk.unit as u
import warnings
TINY = 1e-8
......@@ -61,7 +62,7 @@ class AtomType(object):
else:
self.name = name
self.number = int(number)
self.mass = mass
self.mass = mass * u.daltons
self.atomic_number = atomic_number
# We have no LJ parameters as of yet
self.epsilon = self.rmin = self.epsilon_14 = self.rmin_14 = None
......@@ -179,7 +180,7 @@ class Atom(object):
self.attype = attype
self.type = None
self.charge = charge
self.mass = mass
self.mass = mass * u.daltons
self.idx = -1
self.props = props
self.system = system
......
import unittest
from validateConstraints import *
from simtk.openmm.app import *
from simtk.openmm import *
from simtk.unit import *
import simtk.openmm.app.element as elem
class TestCharmmFiles(unittest.TestCase):
"""Test the GromacsTopFile.createSystem() method."""
def setUp(self):
"""Set up the tests by loading the input files."""
# alanine tripeptide; no waters
self.psf_c = CharmmPSF.load_from_psf('systems/ala_ala_ala.psf')
self.psf_x = CharmmPSF.load_from_psf('systems/ala_ala_ala.xpsf')
self.psf_v = CharmmPSF.load_from_psf('systems/ala_ala_ala.vpsf')
params = CharmmParameterSet.load_set(
tfile='systems/charmm22.rtf',
pfile='systems/charmm22.par',
).condense()
self.pdb = PDBFile('systems/ala_ala_ala.pdb')
# Load parameters
self.psf_c.load_parameters(params)
self.psf_x.load_parameters(params)
self.psf_v.load_parameters(params)
def test_NonbondedMethod(self):
"""Test both non-periodic methods for the systems"""
methodMap = {NoCutoff:NonbondedForce.NoCutoff,
CutoffNonPeriodic:NonbondedForce.CutoffNonPeriodic}
for top in (self.psf_c, self.psf_x, self.psf_v):
for method in methodMap:
system = top.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 top in (self.psf_c, self.psf_x, self.psf_v):
for method in [CutoffNonPeriodic]:
system = top.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_RemoveCMMotion(self):
"""Test both options (True and False) for the removeCMMotion parameter."""
for b in [True, False]:
system = self.psf_c.createSystem(removeCMMotion=b)
self.assertEqual(any(isinstance(f, CMMotionRemover) for f in system.getForces()), b)
# def test_ImplicitSolvent(self):
# """Test implicit solvent using the implicitSolvent parameter.
# """
# system = self.psf_v.createSystem(implicitSolvent=OBC2)
# self.assertTrue(any(isinstance(f, CustomGBForce) for f in system.getForces()))
# def test_ImplicitSolventParameters(self):
# """Test that solventDielectric and soluteDielectric are passed correctly.
# """
# system = self.psf_x.createSystem(implicitSolvent=GBn,
# solventDielectric=50.0,
# soluteDielectric = 0.9)
# found_matching_solvent_dielectric=False
# found_matching_solute_dielectric=False
# for force in system.getForces():
# if isinstance(force, CustomGBForce):
# 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)
def test_HydrogenMass(self):
"""Test that altering the mass of hydrogens works correctly."""
topology = self.psf_v.topology
hydrogenMass = 4*amu
system1 = self.psf_v.createSystem()
system2 = self.psf_v.createSystem(hydrogenMass=hydrogenMass)
for atom in topology.atoms():
if atom.element == elem.hydrogen:
self.assertNotEqual(hydrogenMass, system1.getParticleMass(atom.index))
self.assertEqual(hydrogenMass, system2.getParticleMass(atom.index))
totalMass1 = sum([system1.getParticleMass(i) for i in range(system1.getNumParticles())]).value_in_unit(amu)
totalMass2 = sum([system2.getParticleMass(i) for i in range(system2.getNumParticles())]).value_in_unit(amu)
self.assertAlmostEqual(totalMass1, totalMass2)
if __name__ == '__main__':
unittest.main()
REMARK original generated coordinate pdb file
ATOM 1 N ALA X 1 0.024 -0.103 -0.101 1.00 0.00 P1 N
ATOM 2 HT1 ALA X 1 0.027 -1.132 -0.239 1.00 0.00 P1 H
ATOM 3 HT2 ALA X 1 -0.805 0.163 0.471 1.00 0.00 P1 H
ATOM 4 HT3 ALA X 1 -0.059 0.384 -1.019 1.00 0.00 P1 H
ATOM 5 CA ALA X 1 1.247 0.375 0.636 1.00 0.00 P1 C
ATOM 6 HA ALA X 1 0.814 0.861 1.495 1.00 0.00 P1 H
ATOM 7 CB ALA X 1 2.057 -0.772 1.289 1.00 0.00 P1 C
ATOM 8 HB1 ALA X 1 3.136 -0.752 1.032 1.00 0.00 P1 H
ATOM 9 HB2 ALA X 1 1.990 -0.641 2.395 1.00 0.00 P1 H
ATOM 10 HB3 ALA X 1 1.656 -1.782 1.063 1.00 0.00 P1 H
ATOM 11 C ALA X 1 1.956 1.579 0.036 1.00 0.00 P1 C
ATOM 12 O ALA X 1 1.219 2.525 -0.201 1.00 0.00 P1 O
ATOM 13 N ALA X 2 3.289 1.631 -0.202 1.00 0.00 P1 N
ATOM 14 HN ALA X 2 3.939 0.868 -0.174 1.00 0.00 P1 H
ATOM 15 CA ALA X 2 3.990 2.909 -0.215 1.00 0.00 P1 C
ATOM 16 HA ALA X 2 3.742 3.440 0.695 1.00 0.00 P1 H
ATOM 17 CB ALA X 2 3.662 3.802 -1.434 1.00 0.00 P1 C
ATOM 18 HB1 ALA X 2 4.192 4.778 -1.358 1.00 0.00 P1 H
ATOM 19 HB2 ALA X 2 3.956 3.311 -2.382 1.00 0.00 P1 H
ATOM 20 HB3 ALA X 2 2.577 4.027 -1.467 1.00 0.00 P1 H
ATOM 21 C ALA X 2 5.487 2.654 -0.128 1.00 0.00 P1 C
ATOM 22 O ALA X 2 5.889 1.489 -0.137 1.00 0.00 P1 O
ATOM 23 C ALA X 3 8.018 5.323 0.136 1.00 0.00 P1 C
ATOM 24 OT1 ALA X 3 7.032 6.119 0.127 1.00 0.00 P1 O
ATOM 25 OT2 ALA X 3 9.219 5.692 0.188 1.00 0.00 P1 O
ATOM 26 N ALA X 3 6.275 3.733 -0.037 1.00 0.00 P1 N
ATOM 27 HN ALA X 3 5.963 4.691 -0.028 1.00 0.00 P1 H
ATOM 28 CA ALA X 3 7.707 3.802 0.068 1.00 0.00 P1 C
ATOM 29 HA ALA X 3 8.160 3.418 -0.833 1.00 0.00 P1 H
ATOM 30 CB ALA X 3 8.233 3.093 1.333 1.00 0.00 P1 C
ATOM 31 HB1 ALA X 3 9.342 3.149 1.356 1.00 0.00 P1 H
ATOM 32 HB2 ALA X 3 7.835 3.593 2.240 1.00 0.00 P1 H
ATOM 33 HB3 ALA X 3 7.923 2.030 1.332 1.00 0.00 P1 H
END
PSF CMAP CHEQ
2 !NTITLE
**
* DATE: 8/ 5/ 9 14:44:19 CREATED BY USER: mjw
33 !NATOM
1 AAL 1 ALA N 56 -0.300000 14.0070 0 0.00000 -0.301140E-02
2 AAL 1 ALA HT1 2 0.330000 1.00800 0 0.00000 -0.301140E-02
3 AAL 1 ALA HT2 2 0.330000 1.00800 0 0.00000 -0.301140E-02
4 AAL 1 ALA HT3 2 0.330000 1.00800 0 0.00000 -0.301140E-02
5 AAL 1 ALA CA 22 0.210000 12.0110 0 0.00000 -0.301140E-02
6 AAL 1 ALA HA 6 0.100000 1.00800 0 0.00000 -0.301140E-02
7 AAL 1 ALA CB 24 -0.270000 12.0110 0 0.00000 -0.301140E-02
8 AAL 1 ALA HB1 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
9 AAL 1 ALA HB2 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
10 AAL 1 ALA HB3 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
11 AAL 1 ALA C 20 0.510000 12.0110 0 0.00000 -0.301140E-02
12 AAL 1 ALA O 70 -0.510000 15.9990 0 0.00000 -0.301140E-02
13 AAL 2 ALA N 54 -0.470000 14.0070 0 0.00000 -0.301140E-02
14 AAL 2 ALA HN 1 0.310000 1.00800 0 0.00000 -0.301140E-02
15 AAL 2 ALA CA 22 0.700000E-01 12.0110 0 0.00000 -0.301140E-02
16 AAL 2 ALA HA 6 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
17 AAL 2 ALA CB 24 -0.270000 12.0110 0 0.00000 -0.301140E-02
18 AAL 2 ALA HB1 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
19 AAL 2 ALA HB2 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
20 AAL 2 ALA HB3 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
21 AAL 2 ALA C 20 0.510000 12.0110 0 0.00000 -0.301140E-02
22 AAL 2 ALA O 70 -0.510000 15.9990 0 0.00000 -0.301140E-02
23 AAL 3 ALA N 54 -0.470000 14.0070 0 0.00000 -0.301140E-02
24 AAL 3 ALA HN 1 0.310000 1.00800 0 0.00000 -0.301140E-02
25 AAL 3 ALA CA 22 0.700000E-01 12.0110 0 0.00000 -0.301140E-02
26 AAL 3 ALA HA 6 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
27 AAL 3 ALA CB 24 -0.270000 12.0110 0 0.00000 -0.301140E-02
28 AAL 3 ALA HB1 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
29 AAL 3 ALA HB2 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
30 AAL 3 ALA HB3 3 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
31 AAL 3 ALA C 32 0.340000 12.0110 0 0.00000 -0.301140E-02
32 AAL 3 ALA OT1 72 -0.670000 15.9990 0 0.00000 -0.301140E-02
33 AAL 3 ALA OT2 72 -0.670000 15.9990 0 0.00000 -0.301140E-02
32 !NBOND: bonds
2 1 3 1 4 1 7 5
1 5 11 5 11 13 5 6
7 8 7 9 7 10 12 11
17 15 13 14 13 15 21 15
21 23 15 16 17 18 17 19
17 20 22 21 27 25 23 24
23 25 31 25 25 26 27 28
27 29 27 30 31 33 31 32
57 !NTHETA: angles
2 1 3 2 1 4 2 1 5
3 1 4 3 1 5 4 1 5
1 5 6 1 5 7 1 5 11
6 5 7 6 5 11 7 5 11
5 7 8 5 7 9 5 7 10
8 7 9 8 7 10 9 7 10
5 11 12 5 11 13 12 11 13
11 13 14 11 13 15 14 13 15
13 15 16 13 15 17 13 15 21
16 15 17 16 15 21 17 15 21
15 17 18 15 17 19 15 17 20
18 17 19 18 17 20 19 17 20
15 21 22 15 21 23 22 21 23
21 23 24 21 23 25 24 23 25
23 25 26 23 25 27 23 25 31
26 25 27 26 25 31 27 25 31
25 27 28 25 27 29 25 27 30
28 27 29 28 27 30 29 27 30
25 31 32 25 31 33 32 31 33
74 !NPHI: dihedrals
1 5 7 8 1 5 7 9
1 5 7 10 1 5 11 12
1 5 11 13 2 1 5 6
2 1 5 7 2 1 5 11
3 1 5 6 3 1 5 7
3 1 5 11 4 1 5 6
4 1 5 7 4 1 5 11
5 11 13 14 5 11 13 15
6 5 7 8 6 5 7 9
6 5 7 10 6 5 11 12
6 5 11 13 7 5 11 12
7 5 11 13 8 7 5 11
9 7 5 11 10 7 5 11
11 13 15 16 11 13 15 17
11 13 15 21 12 11 13 14
12 11 13 15 13 15 17 18
13 15 17 19 13 15 17 20
13 15 21 22 13 15 21 23
14 13 15 16 14 13 15 17
14 13 15 21 15 21 23 24
15 21 23 25 16 15 17 18
16 15 17 19 16 15 17 20
16 15 21 22 16 15 21 23
17 15 21 22 17 15 21 23
18 17 15 21 19 17 15 21
20 17 15 21 21 23 25 26
21 23 25 27 21 23 25 31
22 21 23 24 22 21 23 25
23 25 27 28 23 25 27 29
23 25 27 30 23 25 31 32
23 25 31 33 24 23 25 26
24 23 25 27 24 23 25 31
26 25 27 28 26 25 27 29
26 25 27 30 26 25 31 32
26 25 31 33 27 25 31 32
27 25 31 33 28 27 25 31
29 27 25 31 30 27 25 31
5 !NIMPHI: impropers
11 5 13 12 13 11 15 14
21 15 23 22 23 21 25 24
31 25 33 32
5 !NDON: donors
1 2 1 3 1 4 13 14
23 24
4 !NACC: acceptors
12 11 22 21 32 31 33 31
0 !NNB
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0
9 0 !NGRP NST2
0 2 0 6 1 0 10 1 0
12 1 0 16 1 0 20 1 0
22 1 0 26 1 0 30 2 0
1 !MOLNT
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1
0 0 !NUMLP NUMLPH
1 !NCRTERM: cross-terms
11 13 15 21 13 15 21 23
PSF CMAP
6 !NTITLE
REMARKS original generated structure x-plor psf file
REMARKS 2 patches were applied to the molecule.
REMARKS topology ala_ala_ala_autopsf-temp.top
REMARKS segment P1 { first NTER; last CTER; auto angles dihedrals }
REMARKS patch NTER P1:1
REMARKS patch CTER P1:3
33 !NATOM
1 P1 1 ALA N NH3 -0.300000 14.0070 0
2 P1 1 ALA HT1 HC 0.330000 1.0080 0
3 P1 1 ALA HT2 HC 0.330000 1.0080 0
4 P1 1 ALA HT3 HC 0.330000 1.0080 0
5 P1 1 ALA CA CT1 0.210000 12.0110 0
6 P1 1 ALA HA HB 0.100000 1.0080 0
7 P1 1 ALA CB CT3 -0.270000 12.0110 0
8 P1 1 ALA HB1 HA 0.090000 1.0080 0
9 P1 1 ALA HB2 HA 0.090000 1.0080 0
10 P1 1 ALA HB3 HA 0.090000 1.0080 0
11 P1 1 ALA C C 0.510000 12.0110 0
12 P1 1 ALA O O -0.510000 15.9990 0
13 P1 2 ALA N NH1 -0.470000 14.0070 0
14 P1 2 ALA HN H 0.310000 1.0080 0
15 P1 2 ALA CA CT1 0.070000 12.0110 0
16 P1 2 ALA HA HB 0.090000 1.0080 0
17 P1 2 ALA CB CT3 -0.270000 12.0110 0
18 P1 2 ALA HB1 HA 0.090000 1.0080 0
19 P1 2 ALA HB2 HA 0.090000 1.0080 0
20 P1 2 ALA HB3 HA 0.090000 1.0080 0
21 P1 2 ALA C C 0.510000 12.0110 0
22 P1 2 ALA O O -0.510000 15.9990 0
23 P1 3 ALA C CC 0.340000 12.0110 0
24 P1 3 ALA OT1 OC -0.670000 15.9990 0
25 P1 3 ALA OT2 OC -0.670000 15.9990 0
26 P1 3 ALA N NH1 -0.470000 14.0070 0
27 P1 3 ALA HN H 0.310000 1.0080 0
28 P1 3 ALA CA CT1 0.070000 12.0110 0
29 P1 3 ALA HA HB 0.090000 1.0080 0
30 P1 3 ALA CB CT3 -0.270000 12.0110 0
31 P1 3 ALA HB1 HA 0.090000 1.0080 0
32 P1 3 ALA HB2 HA 0.090000 1.0080 0
33 P1 3 ALA HB3 HA 0.090000 1.0080 0
32 !NBOND: bonds
1 5 2 1 3 1 4 1
5 6 7 5 7 8 7 9
7 10 11 5 11 13 12 11
13 14 13 15 15 16 17 15
17 18 17 19 17 20 21 15
21 26 22 21 23 25 23 24
23 28 26 27 26 28 28 29
30 28 30 31 30 32 30 33
57 !NTHETA: angles
1 5 6 1 5 11 2 1 5
2 1 4 2 1 3 3 1 5
3 1 4 4 1 5 5 11 12
5 11 13 5 7 10 5 7 9
5 7 8 7 5 6 7 5 11
7 5 1 8 7 10 8 7 9
9 7 10 11 5 6 13 15 16
13 15 21 13 11 12 14 13 11
14 13 15 15 21 22 15 21 26
15 17 20 15 17 19 15 17 18
15 13 11 17 15 16 17 15 21
17 15 13 18 17 20 18 17 19
19 17 20 21 15 16 23 28 29
24 23 28 25 23 28 25 23 24
26 28 29 26 28 23 26 21 22
27 26 21 27 26 28 28 30 33
28 30 32 28 30 31 28 26 21
30 28 29 30 28 23 30 28 26
31 30 33 31 30 32 32 30 33
74 !NPHI: dihedrals
1 5 7 8 1 5 7 9
1 5 7 10 1 5 11 13
1 5 11 12 2 1 5 7
2 1 5 11 2 1 5 6
3 1 5 7 3 1 5 11
3 1 5 6 4 1 5 7
4 1 5 11 4 1 5 6
5 11 13 14 5 11 13 15
6 5 7 8 6 5 7 9
6 5 7 10 6 5 11 13
6 5 11 12 7 5 11 13
7 5 11 12 8 7 5 11
9 7 5 11 10 7 5 11
11 13 15 17 11 13 15 21
11 13 15 16 12 11 13 14
12 11 13 15 13 15 17 18
13 15 17 19 13 15 17 20
13 15 21 26 13 15 21 22
14 13 15 17 14 13 15 21
14 13 15 16 15 21 26 27
15 21 26 28 16 15 17 18
16 15 17 19 16 15 17 20
16 15 21 26 16 15 21 22
17 15 21 26 17 15 21 22
18 17 15 21 19 17 15 21
20 17 15 21 21 26 28 30
21 26 28 23 21 26 28 29
22 21 26 27 22 21 26 28
23 28 30 31 23 28 30 32
23 28 30 33 23 28 26 27
24 23 28 30 24 23 28 26
24 23 28 29 25 23 28 30
25 23 28 26 25 23 28 29
26 28 30 31 26 28 30 32
26 28 30 33 27 26 28 30
27 26 28 29 29 28 30 31
29 28 30 32 29 28 30 33
5 !NIMPHI: impropers
11 5 13 12 13 11 15 14
21 15 26 22 23 28 25 24
26 21 28 27
0 !NDON: donors
0 !NACC: acceptors
0 !NNB
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0
1 0 !NGRP
0 0 0
1 !NCRTERM: cross-terms
11 13 15 21 13 15 21 26
PSF CMAP CHEQ
2 !NTITLE
**
* DATE: 3/ 8/11 16:15:19 CREATED BY USER: crowley
33 !NATOM
1 AAL 1 ALA N NH3 -0.300000 14.0070 0 0.00000 -0.301140E-02
2 AAL 1 ALA HT1 HC 0.330000 1.00800 0 0.00000 -0.301140E-02
3 AAL 1 ALA HT2 HC 0.330000 1.00800 0 0.00000 -0.301140E-02
4 AAL 1 ALA HT3 HC 0.330000 1.00800 0 0.00000 -0.301140E-02
5 AAL 1 ALA CA CT1 0.210000 12.0110 0 0.00000 -0.301140E-02
6 AAL 1 ALA HA HB 0.100000 1.00800 0 0.00000 -0.301140E-02
7 AAL 1 ALA CB CT3 -0.270000 12.0110 0 0.00000 -0.301140E-02
8 AAL 1 ALA HB1 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
9 AAL 1 ALA HB2 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
10 AAL 1 ALA HB3 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
11 AAL 1 ALA C C 0.510000 12.0110 0 0.00000 -0.301140E-02
12 AAL 1 ALA O O -0.510000 15.9990 0 0.00000 -0.301140E-02
13 AAL 2 ALA N NH1 -0.470000 14.0070 0 0.00000 -0.301140E-02
14 AAL 2 ALA HN H 0.310000 1.00800 0 0.00000 -0.301140E-02
15 AAL 2 ALA CA CT1 0.700000E-01 12.0110 0 0.00000 -0.301140E-02
16 AAL 2 ALA HA HB 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
17 AAL 2 ALA CB CT3 -0.270000 12.0110 0 0.00000 -0.301140E-02
18 AAL 2 ALA HB1 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
19 AAL 2 ALA HB2 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
20 AAL 2 ALA HB3 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
21 AAL 2 ALA C C 0.510000 12.0110 0 0.00000 -0.301140E-02
22 AAL 2 ALA O O -0.510000 15.9990 0 0.00000 -0.301140E-02
23 AAL 3 ALA N NH1 -0.470000 14.0070 0 0.00000 -0.301140E-02
24 AAL 3 ALA HN H 0.310000 1.00800 0 0.00000 -0.301140E-02
25 AAL 3 ALA CA CT1 0.700000E-01 12.0110 0 0.00000 -0.301140E-02
26 AAL 3 ALA HA HB 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
27 AAL 3 ALA CB CT3 -0.270000 12.0110 0 0.00000 -0.301140E-02
28 AAL 3 ALA HB1 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
29 AAL 3 ALA HB2 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
30 AAL 3 ALA HB3 HA 0.900000E-01 1.00800 0 0.00000 -0.301140E-02
31 AAL 3 ALA C CC 0.340000 12.0110 0 0.00000 -0.301140E-02
32 AAL 3 ALA OT1 OC -0.670000 15.9990 0 0.00000 -0.301140E-02
33 AAL 3 ALA OT2 OC -0.670000 15.9990 0 0.00000 -0.301140E-02
32 !NBOND: bonds
2 1 3 1 4 1 7 5
1 5 11 5 11 13 5 6
7 8 7 9 7 10 12 11
17 15 13 14 13 15 21 15
21 23 15 16 17 18 17 19
17 20 22 21 27 25 23 24
23 25 31 25 25 26 27 28
27 29 27 30 31 33 31 32
57 !NTHETA: angles
2 1 3 2 1 4 2 1 5
3 1 4 3 1 5 4 1 5
1 5 6 1 5 7 1 5 11
6 5 7 6 5 11 7 5 11
5 7 8 5 7 9 5 7 10
8 7 9 8 7 10 9 7 10
5 11 12 5 11 13 12 11 13
11 13 14 11 13 15 14 13 15
13 15 16 13 15 17 13 15 21
16 15 17 16 15 21 17 15 21
15 17 18 15 17 19 15 17 20
18 17 19 18 17 20 19 17 20
15 21 22 15 21 23 22 21 23
21 23 24 21 23 25 24 23 25
23 25 26 23 25 27 23 25 31
26 25 27 26 25 31 27 25 31
25 27 28 25 27 29 25 27 30
28 27 29 28 27 30 29 27 30
25 31 32 25 31 33 32 31 33
74 !NPHI: dihedrals
1 5 7 8 1 5 7 9
1 5 7 10 1 5 11 12
1 5 11 13 2 1 5 6
2 1 5 7 2 1 5 11
3 1 5 6 3 1 5 7
3 1 5 11 4 1 5 6
4 1 5 7 4 1 5 11
5 11 13 14 5 11 13 15
6 5 7 8 6 5 7 9
6 5 7 10 6 5 11 12
6 5 11 13 7 5 11 12
7 5 11 13 8 7 5 11
9 7 5 11 10 7 5 11
11 13 15 16 11 13 15 17
11 13 15 21 12 11 13 14
12 11 13 15 13 15 17 18
13 15 17 19 13 15 17 20
13 15 21 22 13 15 21 23
14 13 15 16 14 13 15 17
14 13 15 21 15 21 23 24
15 21 23 25 16 15 17 18
16 15 17 19 16 15 17 20
16 15 21 22 16 15 21 23
17 15 21 22 17 15 21 23
18 17 15 21 19 17 15 21
20 17 15 21 21 23 25 26
21 23 25 27 21 23 25 31
22 21 23 24 22 21 23 25
23 25 27 28 23 25 27 29
23 25 27 30 23 25 31 32
23 25 31 33 24 23 25 26
24 23 25 27 24 23 25 31
26 25 27 28 26 25 27 29
26 25 27 30 26 25 31 32
26 25 31 33 27 25 31 32
27 25 31 33 28 27 25 31
29 27 25 31 30 27 25 31
5 !NIMPHI: impropers
11 5 13 12 13 11 15 14
21 15 23 22 23 21 25 24
31 25 33 32
5 !NDON: donors
1 2 1 3 1 4 13 14
23 24
4 !NACC: acceptors
12 11 22 21 32 31 33 31
0 !NNB
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0
9 0 !NGRP NST2
0 2 0 6 1 0 10 1 0
12 1 0 16 1 0 20 1 0
22 1 0 26 1 0 30 2 0
1 !MOLNT
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1
0 0 !NUMLP NUMLPH
1 !NCRTERM: cross-terms
11 13 15 21 13 15 21 23
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