Beispiel #1
0
def Pickle(RepInd, Prefix):
    ''' pickles sim-style traj objects from each replica traj'''
    # filenames
    print 'Pickling Replica %d' % RepInd
    TrajFile = Prefix + '.lammpstrj'
    LogFile = Prefix + 'lammps.log'
    myTrajFn = TrajFile + '.%d.gz' % RepInd
    myLogFn = LogFile + '.%d' % RepInd
    pickleTraj(myTrajFn, LogFile=myLogFn, LogFileToken='#run production')
    return
Beispiel #2
0
def main(TrajFile, trajtype, fftype = 'wca', N_mon = 25, N_poly = 1, N_water = 1700, savedir = os.getcwd()):

    Trj = pickleTraj(os.path.abspath(TrajFile))
    
    # Computing
    for measure in Measures:
        if measure == 'pmf_Rg_R_EE' or isComputed(savedir, measure, trajtype):    continue  
        print 'Computing %s for %s...' % (measure, trajtype)
        data = compute(trj = Trj, trajtype = trajtype, measure = measure, nmon = N_mon, npoly = N_poly, nwater = N_water)
        prefix = getFilePrefix(basedir = savedir, data_name = measure, data_type = 'measure', trajtype = trajtype)
        writeToFile(prefix, data)
    
    # Making histograms    
    for measure in Measures:
        if isBinned(savedir, measure, trajtype):  continue
        print 'Binning %s...' % measure
        hist_prefix = getFilePrefix(basedir = savedir, data_name = measure, data_type = 'hist', trajtype = trajtype)
        
        if measure != 'pmf_Rg_R_EE':
            compute_prefix = getFilePrefix(basedir = savedir, data_name = measure, data_type = 'measure', trajtype = trajtype)
            data = readFromFile(compute_prefix)
            hist = makeHist1D(data)
            writeToFile(hist_prefix, hist)
        
        if measure == 'pmf_Rg_R_EE':
            Rg_prefix = getFilePrefix(basedir = savedir, data_name = 'Rg', data_type = 'measure', trajtype = trajtype)
            R_EE_prefix = getFilePrefix(savedir, data_name = 'R_EE', data_type = 'measure', trajtype = trajtype)
            
            Rg = readFromFile(Rg_prefix); R_EE = readFromFile(R_EE_prefix)
            hist = makeHist2D(Rg, R_EE, fftype = fftype)
            writeToFile(hist_prefix, hist)
Beispiel #3
0
 def Update(self, TrajFn=None, Temp=None):
     # updates the compute object if traj or temp is changed
     # if native pdb is changed then better create another instance
     if not Temp is None: self.Temp = Temp
     if not TrajFn is None:
         self.TrajFn = os.path.abspath(TrajFn)
         self.Trj = pickleTraj(self.TrajFn)
         self.FrameRange = range(0, len(self.Trj), StepFreq)
         self.NFrames = len(self.FrameRange)
Beispiel #4
0
def parseTraj(lammpstraj):
	monomer_atomname = '3'
	Trj = pickleTraj(lammpstraj)
	boxlen = Trj.FrameData["BoxL"]
	mappedatoms = []
	for (i, AtomName) in enumerate(Trj.AtomNames):
		if AtomName == monomer_atomname:
			mappedatoms.append(i)
	return (Trj, boxlen, mappedatoms)
Beispiel #5
0
def __prepHeadVars():
	global Trj, BoxL, AtomNames, AtomTypes, NB, NW
	Trj = pickleTraj(Traj)
	BoxL = np.array(Trj.FrameData['BoxL'])
	AtomNames = Trj.AtomNames
	if AtomNames2Types: AtomTypes = __AtomName2Type(AtomNames)
	else: AtomTypes = Trj.AtomTypes
	if isMappedTrj: 
		NB = len(np.where(AtomTypes == 1)[0])
		NW = len(np.where(AtomTypes == 2)[0])
	else:
		NB = len(np.where(AtomTypes < 13)[0])
		NW = len(np.where(AtomTypes == 13)[0])
Beispiel #6
0
 def __init_Srel(self, p, Sys, AATraj, cfg=None):
     ''' set Sys, Trj and Map for a single traj'''
     self.NTraj = 1
     self.p = p
     self.cfg = cfg if not cfg is None else self.p.cfg
     self.Sys = Sys
     self.Allp = [self.p]
     self.AllSys = [self.Sys]
     self.AATraj = AATraj
     # pickle supplied Traj
     self.Trj = pickleTraj(self.AATraj)
     # 1-1 map (since supplied traj will be already mapped)
     Map = sim.atommap.PosMap()
     for (i, a) in enumerate(self.Sys.Atom):
         Map += [sim.atommap.AtomMap(Atoms1=i, Atom2=a)]
     self.Map = Map
Beispiel #7
0
 def __init__(self, NativePdb, TrajFn=None, Temp=None, Prefix='compute'):
     # parse out-prefix
     self.Prefix = os.path.abspath(Prefix)
     self.OutPrefix = self.Prefix.split('/')[-1]
     self.OutDir = os.path.dirname(self.Prefix)
     # parse traj
     if not TrajFn is None:
         self.TrajFn = os.path.abspath(TrajFn)
         self.Trj = pickleTraj(self.TrajFn)
         self.FrameRange = range(0, len(self.Trj), StepFreq)
         self.NFrames = len(self.FrameRange)
     # record temp
     if not Temp is None:
         self.Temp = Temp
     # cg protein objects for native and predicted
     self.pNative = ProteinNCOS(NativePdb)
     self.p = ProteinNCOS(NativePdb)
Beispiel #8
0
def makeSys(LDCut = 7.8, NMethane = 25, NWater = 1700):
    print 'Making system'
    atomtypeM = sim.chem.AtomType('M', Mass = 16.0427, Charge = 0.0)
    atomtypeW = sim.chem.AtomType('W', Mass = 18.0, Charge = 0.0)
    moltypeM = sim.chem.MolType('M', [atomtypeM])
    moltypeW = sim.chem.MolType('W', [atomtypeW])
    world = sim.chem.World([moltypeM, moltypeW], Dim = 3, Units = sim.units.AtomicUnits)
    Sys = sim.system.System(world, Name = Prefix)
    for i in range(NWater): Sys += moltypeW.New()
    for i in range(NMethane): Sys += moltypeM.New()

    Filter_MM = sim.atomselect.PolyFilter([atomtypeM, atomtypeM]) 
    Filter_MW = sim.atomselect.PolyFilter([atomtypeM, atomtypeW])
    Filter_WW = sim.atomselect.PolyFilter([atomtypeW, atomtypeW])
    Filter_MW_LD = sim.atomselect.PolyFilter([atomtypeM, atomtypeW], Ordered = True)
    Delta = 1.2

    Pspline_MM = sim.potential.PairSpline(Sys, Filter = Filter_MM, Cut = 10.0, NKnot = 30, Label = "SP_MM")
    Pspline_MW = sim.potential.PairSpline(Sys, Filter = Filter_MW, Cut = 10.0, NKnot = 30, Label = "SP_MW")
    Pspline_WW = sim.potential.PairSpline(Sys, Filter = Filter_WW, Cut = 10.0, NKnot = 30, Label = "SP_WW")
    Plocaldensity_MW = sim.potential.LocalDensity(Sys, Filter = Filter_MW_LD, Cut = LDCut, LowerCut = LDCut - Delta, NKnot = 30, RhoMin = 0., RhoMax = NMethane, Label = "LD")

    if fixWW:
        WWSPKnots = eval(file(os.path.expanduser('~/c25ld/c25_single_site_water/water_spce/spce_ff.dat')).read())
        Pspline_WW.SetParam(Knots = WWSPKnots)

    Sys.ForceField.extend([Pspline_MM, Pspline_MW, Pspline_WW, Plocaldensity_MW])
    for P in Sys.ForceField: P.Arg.SetupHist(NBin = 1000, ReportNBin = 100)
    #Sys.ForceField.SetSplineTreatment(NonbondEneSlope = 50., BondEneSlope = 10., AngleEneSlope = 60.)
    for Pspline in [Pspline_MM, Pspline_MW, Pspline_WW]: Pspline.EneSlopeInner = None

    Sys.Load()

    Trj = pickleTraj(LammpsTraj)
    Sys.BoxL = Trj.FrameData['BoxL']
    Sys.TempSet = 298.0
    sim.system.init.positions.CubicLatticeFill(Sys, Random = 0.1)
    sim.system.init.velocities.Canonical(Sys, Temp = 298.0)

    Int = Sys.Int
    for Method in Int.Methods:
        if hasattr(Method, 'TimeStep'): Method.TimeStep = 3.e-3

    return Sys
Beispiel #9
0
 def __init_MultiSrel(self, p, Sys, AATraj, cfg=None):
     '''set Sys, Trj and Map for extended ensemble optimization'''
     self.NTraj = len(AATraj)
     self.p = p if isinstance(p, list) else [p] * self.NTraj
     if cfg is None:
         self.cfg = [x.cfg for x in self.p]
     else:
         self.cfg = cfg if isinstance(cfg, list) else [cfg] * self.NTraj
     self.Sys = Sys if isinstance(Sys, list) else [Sys] * self.NTraj
     self.Allp = self.p
     self.AllSys = self.Sys
     self.AATraj = AATraj
     # list of pickled Trj objects
     self.Trj = [pickleTraj(Traj) for Traj in self.AATraj]
     # list of 1-1 maps (since all supplied trajs will be already mapped)
     Map = [sim.atommap.PosMap() for i in range(self.NTraj)
            ]  # need to create separate PosMap instances
     for i in range(self.NTraj):
         for (j, a) in enumerate(self.Sys[i].Atom):
             Map[i] += [sim.atommap.AtomMap(Atoms1=j, Atom2=a)]
     self.Map = Map
Beispiel #10
0
def runSrel(Sys):
    Trj = pickleTraj(LammpsTraj, Verbose = True)
    Map = sim.atommap.PosMap()
    for (i, a) in enumerate(Sys.Atom): Map += [sim.atommap.AtomMap(Atoms1 = i, Atom2 = a)] #1:1 mapping since using a mapped traj
    
    Int = Sys.Int
    Int.Method = Int.Methods.VVIntegrate
    Int.Method.Thermostat = Int.Method.ThermostatLangevin
    Int.Method.LangevinGamma = 0.01
    Sys.TempSet = 298.0

    Pspline_MM = Sys.ForceField[0] ; Pspline_MW = Sys.ForceField[1] ; Pspline_WW = Sys.ForceField[2]
    Plocaldensity = Sys.ForceField[-1] 
    PairPotentialList = [Pspline_MM, Pspline_MW] if fixWW else [Pspline_MM, Pspline_MW, Pspline_WW]
    print "Resetting all potentials to base case"
    for Pspline in PairPotentialList: Pspline.SetParam(Knots = 0.)
    Plocaldensity.SetParam(Knots = 0.)
    for p in Sys.ForceField: p.FreezeParam()

    print Sys.ForceField.ParamString()
  
    Opt = sim.srel.OptimizeTrajLammpsClass(Sys, Map, Traj = Trj, SaveLoadArgData = True, FilePrefix = Prefix, Verbose = True)
    sim.srel.optimizetraj.PlotFmt = 'svg'
    Opt.MinReweightFrac = 0.2
    Opt.TempFileDir = os.getcwd()
    
    opt_cases = ['SP', 'SPLD']
    for i, case in enumerate(opt_cases):
        Opt.Reset()
        Opt.FilePrefix = Prefix + '_' + case
        print "\n\nOptimizing for the case: ", case
        if case == "SP":
            for Pspline in PairPotentialList: Pspline.UnfreezeParam()
        if case == "SPLD":
            Plocaldensity.UnfreezeParam()
            
        Sys.ForceField.Update()
        Opt.RunConjugateGradient(StepsEquil = 10000000, StepsProd = 20000000, StepsStride = 500) 
Beispiel #11
0
#write output headers
LDCuts = np.arange(4.5, 10.0, 0.1)
datalog = '%s_dSreldrc.dat' % datalog_prefix
if not os.path.isfile(datalog) or RefreshLogs:
    of = open(datalog, 'w')
    of.write('#LDCut \t dSreldrc\n')
    of.close()

#various indexing schemes
TrjIter = {'AA': [0, -1, 10], 'CG': [0, -1, 10]}

# compile fortcode
fcompile()
from dSreldrc_fortlib import getdudrc
Trj_AA = pickleTraj(LammpsTraj)
BoxL = Trj_AA.FrameData['BoxL'][0]

#begin looping over different LD cutoffs
for i, LDCut in enumerate(LDCuts):
	
	print '\n\nLDCut = %g\n' % LDCut
	
	#calculate coefficients
	(coeff, dcoeff) = alg.calcCoeff(LDCut = LDCut, Delta = 1.2)

	#get AA and CG trj
	Trj_CG = pickleTraj(base_fmt['cg_trj'] % (fftype, i))
	
	#get Spline Coeffs for CG forcefield
	ffield_CG = base_fmt['cg_ff'] % (fftype, i)
Beispiel #12
0
#!/usr/bin/env python

import os, pickle, sys
import numpy as np
import sim
import pickleTraj

LammpsTrajIn = os.path.abspath(sys.argv[1])
LammpsTrajOut = os.path.abspath(sys.argv[2])

Trj = pickleTraj(LammpsTrajIn)
BoxL = Trj.FrameData['BoxL']
monomer_atomname = '3'

mappedatoms = []
for (i,AtomType) in enumerate(Trj.AtomTypes):
    if AtomType == int(monomer_atomname):
        mappedatoms.append(i)
    
Map = sim.atommap.PosMap()
for (i,j) in enumerate(mappedatoms):
    Map += [sim.atommap.AtomMap(Atoms1 = j, Atom2 = i, Atom2Name = monomer_atomname)]

AtomNames = [monomer_atomname] * len(mappedatoms)
MappedTrj = sim.traj.Mapped(Trj, Map, AtomNames = AtomNames)
sim.traj.Convert(MappedTrj, sim.traj.LammpsWrite, LammpsTrajOut, Verbose = True)
pickleTraj(LammpsTrajOut)
Beispiel #13
0
#input files
base_fmt = {'cg_ff': ff_fmtstring, 'cg_trj': md_fmtstring}

#output arrays
LDCuts = np.arange(4.5, 10.0, 0.1)
delta_Srel = {'Bennett': np.zeros([len(LDCuts), NBlocks], np.float64), 'Fep' : np.zeros([len(LDCuts), NBlocks], np.float64)}
datalog = {'Bennett': '%s_Srel_Bennett.dat' % datalog_prefix, 'Fep': '%s_Srel_Fep.dat' % datalog_prefix }

#various indexing schemes
poly_dict = SysData['poly_dict']
serial_index = {'AA': (0, poly_dict['N_mon']*poly_dict['N_poly']), 
                'CG': (0, poly_dict['N_mon']*poly_dict['N_poly'])} #always using a mapped traj

#extract all necessary AA data
Trj_AA = pickleTraj(LammpsTraj)
BoxL = Trj_AA.FrameData['BoxL']

#begin looping over different LD cutoffs
for i, LDCut in enumerate(LDCuts[0:-1]):
    
    print '\n\nLDCUTs = (%g, %g)\n' % (LDCuts[i], LDCuts[i+1])
  
    #extract all necessary CG data
    sumfile1 = base_fmt['cg_ff'] % (fftype, i); sumfile2 = base_fmt['cg_ff'] % (fftype, (i+1))
    trajfile1 = base_fmt['cg_trj'] % (fftype, i) ; trajfile2 = base_fmt['cg_trj'] % (fftype, (i+1))
    ParamString1 = parse_potential.parseParamString(sumfile1); ParamString2 = parse_potential.parseParamString(sumfile2)
    Trj_CG_1 = pickleTraj(trajfile1); Trj_CG_2 = pickleTraj(trajfile2)
    
    #create systems with forcefields of LDCuts i and i+1
    Sys1 = alg.makeSys(LDCut = LDCuts[i], Delta = Delta, BoxL = BoxL, fftype = fftype, Prefix = 'bennettsys1',
TrajFn = FMT['TRAJ'] % (TrajPrefix, TempSet)

# fancy intro
print 'ANALYSING MULTI-PROTEIN FOR %s at %3.2f K' % (Prefix, TempSet)
print '----------------------------------------------------------------'

# set up Compute object
print 'Creating Compute object'
calc = cg.Compute(NativePdb = NativePdb, TrajFn = TrajFn, Temp = TempSet, Prefix = OutPrefix, hasPseudoGLY = hasPseudoGLY)

# cluster the room temp traj
print 'Clustering trajectory'
calc.Cluster()

# top-cluster contact analysis
Trj = pickleTraj(TrajFn)
BoxL = Trj.FrameData['BoxL']
ClustPdb = FMT['CLUSTPDB'] % (calc.Prefix, calc.Temp)
p = cg.ProteinNCOS(ClustPdb, Model = 1)

# top cluster contact map
print 'Calculating contact map for top cluster'
cmap, cdist = p.GetResContacts(BoxL = BoxL)
picklename = FMT['RESCONTACTS'] % (calc.Prefix + '_topclust', calc.Temp)
with open(picklename, 'w') as of: pickle.dump(cmap, of)

# top cluster dihedrals
print 'Calculating dihedral angles for top cluster'
Phi, Psi = p.GetPhiPsi(BoxL = BoxL)
picklename = FMT['RAMA'] % (calc.Prefix + '_topclust', calc.Temp)
with open(picklename, 'w') as of: pickle.dump((Phi, Psi), of)
Beispiel #15
0
if isPolymer:
    NStep = NStep_polymer
else:
    NStep = NStep_methane

#system parameters
SysData = alg.makeSysData(isPolymer = isPolymer, hasLJ = hasLJ, N_mon = N_mon, N_water = N_water)
TempSet = 298.0
Delta = 1.2

#CG forcefield parameters
cg_ff_file = cgffPrefix + '_sum.txt'
paramstring = pp.parseParamString(cg_ff_file)

#boxlength extracted from AA traj
BoxL = pickleTraj(LammpsTraj).FrameData['BoxL']

#create the system object
Sys = alg.makeSys(LDCut = LDCut, SysData = SysData, fftype = fftype, BoxL = BoxL, Prefix = Prefix, paramstring = paramstring, Delta = 1.2)

#initialize system
sim.system.init.positions.CubicLattice(Sys, Random = 0.1)
sim.system.init.velocities.Canonical(Sys, Temp = TempSet)

##different MD steps
Int = Sys.Int

#energy minimization
print 'Minimizing energy...'
Int.Method = Int.Methods.VVQuench
Int.Run(NStep['Min'])
cfg = cg.config.Config()
cfg.AtomS['GLY'] = cg.const.AtomS_GLY
p = cg.topo.ProteinNCOS(Pdb=pdbfile, cfg=cfg, Prefix='protg_test')
ret = cg.parsestruct.ParsePdb(p)

c_nonnative = ret['c_nonnative']
x, y = zip(*c_nonnative)
resnums = list(x) + list(y)
resnums = list(set(resnums))
SInds_nonnative = p.GetSInds(ResNums=resnums)

d_nonnative_pdb = ret['d_nonnative']
d_ss_nonnative_pdb = ret['d_ss_nonnative']

trj = pickleTraj(trajfile)
NFrames = len(trj)
if not os.path.isfile('protg_traj_nonnative_ss.txt'):
    d_ss_nonnative_traj = np.zeros([NFrames, len(c_nonnative)])
    pb = sim.utility.ProgressBar(
        Text='Calculating s-s distances for non-native contacts...',
        Steps=NFrames * len(c_nonnative))
    count = 0
    for n in range(NFrames):
        Pos = trj[n]
        for k, (i, j) in enumerate(c_nonnative):
            si = SInds_nonnative[i]
            sj = SInds_nonnative[j]
            d_si_sj = Pos[sj] - Pos[si]
            d = np.sqrt(np.sum(d_si_sj * d_si_sj))
            d_ss_nonnative_traj[n, k] = d
Beispiel #17
0
	if reftable[i,0] == float(conc):
		NB = reftable[i,1]
		NW = reftable[i,2]
		BoxL = reftable[i,3]

# parse filenames
xyzTrj_original = os.path.join(srcDir, 'conc_%s' % conc, 'CG_trajectory_%s.xyz' % conc)
xyzTrj = os.path.join(tarDir, 'NB%dNW%d' % (NB,NW), 'CG_trajectory_%s.xyz' % conc)
LammpsTrj = os.path.join(tarDir, 'NB%dNW%d' % (NB,NW), 'NB%dNW%d_prod.lammpstrj' % (NB, NW))
TCLFile = os.path.join(tarDir, 'NB%dNW%d' % (NB, NW), 'conv_xyz.tcl')

# copy traj to required location and unzip it
if not os.path.isdir(os.path.join(tarDir, 'NB%dNW%d' % (NB, NW))): os.mkdir(os.path.join(tarDir, 'NB%dNW%d' % (NB, NW)))
os.system('cp %s %s' % (xyzTrj_original, xyzTrj))

# run vmd
VMDExec = '/home/cask0/home/tsanyal/software/tanmoy_vmd/vmd'
VMDParams = {'xyz' : xyzTrj.split('/')[-1], 'lammpstrj': LammpsTrj.split('/')[-1], 'boxl': BoxL}
file(TCLFile, 'w').write(tclscript % VMDParams)
os.chdir(os.path.join(tarDir, 'NB%dNW%d' % (NB, NW)))
os.system('%s -dispdev text -e %s' % (VMDExec, TCLFile))
os.system('gzip %s' % LammpsTrj)
os.chdir(curr_dir)

# pickle final traj
pickleTraj(LammpsTrj+'.gz', Verbose = True)


if DelTempFiles: 
	[os.remove(x) for x in [TCLFile, xyzTrj]]
Beispiel #18
0
# test system of 5 benzene and 10 waters
cg.doMinimize = False
cg.NB = 5 
cg.NW = 10
cg.LammpsTraj = '/home/cask0/home/tsanyal/benwat/data/gromacs/NB50NW450/NB50NW450_prod.lammpstrj.gz'
cg.Prefix = 'matchEne'

# local density potential params
cg.LDCutBW = 7.5  # can change to BB, WW, BW etc to experiment
cg.LD_Delta = 1.2
cg.RhoMin = 0
cg.RhoMax = cg.NB
testLDKnots = 2 * (1 - 0.3 * np.linspace(0, cg.NB, cg.NLDKnots))

# box length
LammpsTrj = pickleTraj(cg.LammpsTraj, Verbose = True)
cg.BoxL = LammpsTrj.FrameData['BoxL']

print 'Making system...'
Sys = cg.makeSys()
sumfile = '/home/cask0/home/tsanyal/benwat/data/cgff/NB50NW450_init/NB50NW450_SP_sum.txt' # load in converged pair splines or 0 pair potential from NB50NW450 and test LD Knots
SP_BB = Sys.ForceField[0] ; SP_WW = Sys.ForceField[1] ; SP_BW = Sys.ForceField[2]
LD = Sys.ForceField[-1]
for P in [SP_BB, SP_WW, SP_BW]: P.SetParam(Knots = [0.] * cg.NSPKnots) #P.SetParam(**pp.parseParam(sumfile, P.Name))
LD.SetParam(Knots = testLDKnots)
Sys.ForceField.Update()
Sys.TempSet = 300.0
sim.system.init.positions.CubicLatticeFill(Sys, Random = 0.1)
sim.system.init.velocities.Canonical(Sys, Temp = 298.0)
Int = Sys.Int
Sys.Measures.VerboseOutput(StepFreq = 100)
Beispiel #19
0
TrjName = GromacsTrj.split('/')[-1]
LammpsData = os.path.join(TrjDir, 'temp.data')
LammpsTrj = GromacsTrj.split('.')[0] + '_unmapped.lammpstrj'
TCLFile = os.path.join(TrjDir, 'conv_trj.tcl')

# run vmd
VMDExec = '/home/cask0/home/tsanyal/software/tanmoy_vmd/vmd'
VMDParams = {'gro' : GromacsStruct, 'xtc': GromacsTrj,'lammpstrj': LammpsTrj}
file(TCLFile, 'w').write(tclscript % VMDParams)
os.system('%s -dispdev text -e %s' % (VMDExec, TCLFile))
os.system('gzip %s' % LammpsTrj)

# map traj using sim
LammpsTrjIn = LammpsTrj + '.gz'
LammpsTrjOut = GromacsTrj.split('.')[0] + '.lammpstrj.gz'
Trj = pickleTraj(LammpsTrjIn, Verbose = False)
BoxL = Trj.FrameData['BoxL']
Map = sim.atommap.PosMap()
# vmd created lammpstraj places all benzene atoms at the beginning in (C1,H1,C2,H2,...) sequence
MassList_B = [12.011, 1.008] * 6
for i in range(0, NB):  Map += [sim.atommap.AtomMap(Atoms1 = range(i*12, (i+1)*12), Atom2 = i, Mass1 = MassList_B)]
for i in range(0, NW):  Map += [sim.atommap.AtomMap(Atoms1 = NB*12 + i, Atom2 = NB+i)]
AtomTypes = [1]*NB + [2]*NW
MappedTrj = sim.traj.Mapped(Trj, Map, AtomNames = AtomTypes, BoxL = BoxL)
sim.traj.Convert(MappedTrj, sim.traj.LammpsWrite, LammpsTrjOut, Verbose = True)            

# pickle final traj
pickleTraj(LammpsTrjOut, Verbose = True)


if DelTempFiles: os.remove(TCLFile)
traj = os.path.abspath(sys.argv[1])
fftype = sys.argv[2]
nmethanes = int(sys.argv[3])
prefix = sys.argv[4]
savedir = sys.argv[5]

## check if computation needs to be done
if not os.path.isdir(os.path.join(savedir, 'measure')): os.mkdir(os.path.join(savedir, 'measure'))
if not os.path.isdir(os.path.join(savedir, 'hist')): os.mkdir(os.path.join(savedir, 'hist'))
measurepickleName = os.path.join(savedir, 'measure', prefix + '.pickle')
histpickleName = os.path.join(savedir, 'hist', prefix + '.pickle')
if os.path.isfile(histpickleName):
    quit()

## pickle trajectory
trj = pickleTraj(traj)

## frame-selector
start = 0; stop = len(trj); freq = 10
frame_range = range(start,stop,freq)
nframes = len(frame_range)

## Initialise trajectory reader and read parameters
boxl = trj.FrameData['BoxL']

## make bins
bin_centers = range(0, nmethanes+1)
bin_vals = np.zeros([nframes, nmethanes+1], np.float64)
bin_val_final = np.zeros(nmethanes+1)

## frame stepping
Beispiel #21
0
#/usr/bin/env python
import os, sys
import numpy as np
import pickleTraj

sys.path.append('../')
import cgmodel

cgmodel.doMinimize = False
cgmodel.NB = 50 ; cgmodel.NW = 450
cgmodel.LDCutBW = 7.8
cgmodel.LammpsTraj = '/home/cask0/home/tsanyal/benwat/data/gromacs/NB50NW450/NB50NW450_npt.lammpstrj.gz'
cgmodel.Prefix = 'test'

trj = pickleTraj(cgmodel.LammpsTraj, Verbose = True)
cgmodel.BoxL = trj.FrameData['BoxL']
Sys = cgmodel.makeSys()
cgmodel.runSrel(Sys = Sys)

Beispiel #22
0
#!/usr/bin/env python

import sim
import sys
import pickleTraj

LammpsTrjIn = sys.argv[1]
LammpsTrjOut = sys.argv[2]
N_mon = int(sys.argv[3])
N_water = int(sys.argv[4])

Trj = pickleTraj(LammpsTrjIn, Verbose = False)
BoxL = Trj.FrameData['BoxL']

Map = sim.atommap.PosMap()
for i in range(0, N_water): Map += [sim.atommap.AtomMap(Atoms1 = i*3+2, Atom2= i)]
for i in range(0, N_mon):   Map += [sim.atommap.AtomMap(Atoms1 = 3*N_water + i, Atom2 = N_water + i)]

AtomTypes = [1]*N_water + [2]*N_mon
MappedTrj = sim.traj.Mapped(Trj, Map, AtomNames = AtomTypes)
sim.traj.Convert(MappedTrj, sim.traj.LammpsWrite, LammpsTrjOut, Verbose = True)       
Beispiel #23
0
sys.path.append('/home/cask0/home/tsanyal/benwat')
import cgmodel as cg

#TODO: populate these lists with distinct values for the different lammpstraj
# or with same value (need to enquire with Scott)
LDCutBB = []
LDCutBW = []
Temp = 300

cg.TempSet = Temp
cg.LammpsTraj = LammpsTraj
cg.Prefix = 'NB%dNW%d_multi' % (NB, NW)
cg.LDCutBB = LDCutBB
cg.LDCutBW = LDCutBW

trj = pickleTraj(LammpsTraj, Verbose = True)
cg.BoxL = trj.FrameData['BoxL']
Sys = cg.makeSys()

TrajList = []
NMol = 500
NBList = [50,100,150,200,250,300,350,400,450,500]
NWList = [] ; [NWList.append(500-x) for x in NBList]
for i, NB in enumerate(NBList):
	NW = NWList[i]
	Traj = os.path.join('/home/cask0/home/tsanyal/benwat/data/gromacs/NB%dNW%d/NB%dNW%d_prod.lammpstrj.gz'
							% (NB, NW))
	
	TrajList.append(Traj)

cg.MultiLammpsTraj = TrajList
Beispiel #24
0
#check if already computed
LogFileName = '/home/cask0/home/tsanyal/c25ld/nov15_runs_new_rc/geom_prop/energy_logs/%s_energy.pickle' % Prefix
#if os.path.isfile(LogFileName): exit()

#system parameters
SysData = alg.makeSysData(isPolymer = isPolymer, hasLJ = hasLJ, N_mon = N_mon, N_water = N_water)
TempSet = 298.0
Delta = 1.2

#CG forcefield parameters
cg_ff_file = cgffPrefix + '_sum.txt'
paramstring = pp.parseParamString(cg_ff_file)

#boxlength extracted from AA traj
Trj = pickleTraj(LammpsTraj)
BoxL = Trj.FrameData['BoxL']

#create the system object
Sys = alg.makeSys(LDCut = LDCut, SysData = SysData, fftype = fftype, BoxL = BoxL, Prefix = Prefix, paramstring = paramstring, Delta = 1.2)
Sys.TempSet = TempSet
Int = Sys.Int
Int.Method = Int.Methods.VVIntegrate
Int.Method.Thermostat = Int.Method.ThermostatLangevin
Int.Method.LangevinGamma = 0.01

#if calcAtomEne and DEBUG: Sys_test = copy.deepcopy(Sys)

# Extract potential objects
Plj = None; Pspline = None ; Plocaldensity = None
if hasLJ: