def testAddCharmmPsf(self): """ Test adding CHARMM PSF file to ParmList """ parms = ParmList() ala3 = CharmmPsfFile(get_fn('ala3_solv.psf')) aaa = CharmmPsfFile(get_fn('ala_ala_ala.psf')) xaaa = CharmmPsfFile(get_fn('ala_ala_ala.psf.xplor')) aaaa = CharmmPsfFile(get_fn('ala_ala_ala_autopsf.psf')) parms.add_parm(ala3) parms.add_parm(aaa) parms.add_parm(xaaa) parms.add_parm(aaaa) # Check indexing self.assertIs(parms[0], ala3) self.assertIs(parms[1], aaa) self.assertIs(parms[2], xaaa) self.assertIs(parms[3], aaaa) # Test name indexing self.assertIs(parms[get_fn('ala3_solv.psf')], ala3) self.assertIs(parms[get_fn('ala_ala_ala.psf')], aaa) self.assertIs(parms[get_fn('ala_ala_ala.psf.xplor')], xaaa) self.assertIs(parms[get_fn('ala_ala_ala_autopsf.psf')], aaaa) # Check that the last parm added is active self.assertIs(parms.parm, parms[-1]) # Set a new active topology parms.set_new_active(0) self.assertIs(parms.parm, ala3) parms.set_new_active(get_fn('ala_ala_ala.psf')) self.assertIs(parms.parm, aaa)
def parse(filename): """ Read a CHARMM- or XPLOR-style PSF file Parameters ---------- filename : str Name of the file to parse Returns ------- psf_file : :class:`CharmmPsfFile` The PSF file instance with all information loaded """ return CharmmPsfFile(filename)
from chemistry import unit as u from copy import copy from math import sqrt import unittest import warnings import utils get_fn = utils.get_fn skipIf = utils.skipIf # Suppress warning output from bad psf file... sigh. warnings.filterwarnings('ignore', category=CharmmPSFWarning) if has_openmm: # System charmm_gas = CharmmPsfFile(get_fn('ala_ala_ala.psf')) charmm_gas_crds = PDBFile(get_fn('ala_ala_ala.pdb')) charmm_solv = CharmmPsfFile(get_fn('dhfr_cmap_pbc.psf')) charmm_solv_crds = CharmmCrdFile(get_fn('dhfr_min_charmm.crd')) charmm_nbfix = CharmmPsfFile(get_fn('ala3_solv.psf')) charmm_nbfix_crds = CharmmCrdFile(get_fn('ala3_solv.crd')) # Parameter sets param22 = CharmmParameterSet(get_fn('top_all22_prot.inp'), get_fn('par_all22_prot.inp')) param36 = CharmmParameterSet(get_fn('par_all36_prot.prm'), get_fn('toppar_water_ions.str')) # Make sure all precisions are double for i in range(mm.Platform.getNumPlatforms()): plat = mm.Platform.getPlatform(i)
import sys # OpenMM Imports import simtk.openmm as mm import simtk.openmm.app as app # ParmEd Imports from chemistry.charmm import CharmmPsfFile, CharmmCrdFile, CharmmParameterSet from chemistry.openmm.reporters import StateDataReporter from chemistry import unit as u # Load the CHARMM files print('Loading CHARMM files...') params = CharmmParameterSet('toppar/par_all36_prot.prm', 'toppar/toppar_water_ions.str') ala2_solv = CharmmPsfFile('ala2_charmmgui.psf') ala2_crds = CharmmCrdFile('ala2_charmmgui.crd') # NOTE NOTE # The parameter set we used here is the CHARMM 36 force field, but this is # strictly an example. It is important that you use the most accurate (typically # most up-to-date) force fields for your own simulation. See the CHARMM # parameter web page for updates: # http://mackerell.umaryland.edu/CHARMM_ff_params.html # END NOTE # Compute the box dimensions from the coordinates and set the box lengths (only # orthorhombic boxes are currently supported in OpenMM) coords = ala2_crds.positions min_crds = [coords[0][0], coords[0][1], coords[0][2]] max_crds = [coords[0][0], coords[0][1], coords[0][2]]
import sys # OpenMM Imports import simtk.openmm as mm import simtk.openmm.app as app # ParmEd Imports from chemistry.charmm import CharmmPsfFile, CharmmCrdFile, CharmmParameterSet from chemistry.openmm import StateDataReporter from chemistry import unit as u # Load the CHARMM files print('Loading CHARMM files...') params = CharmmParameterSet('toppar/par_all36_prot.prm') ala5_gas = CharmmPsfFile('ala5_autopsf.psf') ala5_crds = app.PDBFile('ala5_autopsf.pdb') # NOTE NOTE # The parameter set we used here is the CHARMM 36 force field, but this is # strictly an example. It is important that you use the most accurate (typically # most up-to-date) force fields for your own simulation. See the CHARMM # parameter web page for updates: # http://mackerell.umaryland.edu/CHARMM_ff_params.html # END NOTE # Create the OpenMM system print('Creating OpenMM System') system = ala5_gas.createSystem(params, nonbondedMethod=app.NoCutoff, constraints=app.HBonds, implicitSolvent=app.HCT, implicitSolventSaltConc=0.1*u.moles/u.liter,
import sys # OpenMM Imports import simtk.openmm as mm import simtk.openmm.app as app # ParmEd Imports from chemistry.charmm import CharmmPsfFile, CharmmCrdFile, CharmmParameterSet from chemistry.amber.openmmreporters import StateDataReporter from chemistry import unit as u # Load the CHARMM files print('Loading CHARMM files...') params = CharmmParameterSet('toppar/par_all36_prot.prm', 'toppar/toppar_water_ions.str') ala2_solv = CharmmPsfFile('ala2_charmmgui.psf') ala2_crds = CharmmCrdFile('ala2_charmmgui.crd') # NOTE NOTE # The parameter set we used here is the CHARMM 36 force field, but this is # strictly an example. It is important that you use the most accurate (typically # most up-to-date) force fields for your own simulation. See the CHARMM # parameter web page for updates: # http://mackerell.umaryland.edu/CHARMM_ff_params.html # END NOTE # Compute the box dimensions from the coordinates and set the box lengths (only # orthorhombic boxes are currently supported in OpenMM) coords = ala2_crds.positions min_crds = [coords[0][0], coords[0][1], coords[0][2]] max_crds = [coords[0][0], coords[0][1], coords[0][2]]
import sys # OpenMM Imports import simtk.openmm as mm import simtk.openmm.app as app # ParmEd Imports from chemistry.charmm import CharmmPsfFile, CharmmCrdFile, CharmmParameterSet from chemistry.openmm import StateDataReporter from chemistry import unit as u # Load the CHARMM files print('Loading CHARMM files...') params = CharmmParameterSet('toppar/par_all36_prot.prm') ala5_gas = CharmmPsfFile('ala5_autopsf.psf') ala5_crds = app.PDBFile('ala5_autopsf.pdb') # NOTE NOTE # The parameter set we used here is the CHARMM 36 force field, but this is # strictly an example. It is important that you use the most accurate (typically # most up-to-date) force fields for your own simulation. See the CHARMM # parameter web page for updates: # http://mackerell.umaryland.edu/CHARMM_ff_params.html # END NOTE # Create the OpenMM system print('Creating OpenMM System') system = ala5_gas.createSystem( params, nonbondedMethod=app.NoCutoff,