コード例 #1
0
# PRINT INITIAL STRING I0
print "\nI0: ",
print z
#io.plotVector(prop[0][0],stringgraph,z, rangex=[-numpy.pi, numpy.pi], rangey=[-numpy.pi, numpy.pi])

dt = 1.0
for iter in range(0, numsteps):  # NUMBER OF FTSM ITERATIONS
    for p in range(0, numpoints):  # LOOPING OVER POINTS
        if (iter >= 10000 and iter <= 100000):
            kappa += (100. - 40.) / 90000.

        if (p != 0 or iter != 0):
            FTSM.setConstraint(PHI,
                               PSI,
                               phi=z[p][0],
                               psi=z[p][1],
                               kappa=kappa,
                               forcefield=ff)

        # UPDATE FREE SPACE
        # USE FIRST SYSTEM TO GET M
        # USE SECOND SYSTEM TO OBTAIN PHI AND PSI DIFFERENCES
        # FROM TARGETS
        zp0 = z[p][0]
        z[p][0] -= (kappa / gamma) * dt * (FTSM.M(x[p], PHI, PHI) *
                                           (z[p][0] - y[p].dihedral(PHI)) +
                                           FTSM.M(x[p], PHI, PSI) *
                                           (z[p][1] - y[p].dihedral(PSI)))
        z[p][1] -= (kappa / gamma) * dt * (FTSM.M(x[p], PSI, PHI) *
                                           (zp0 - y[p].dihedral(PHI)) +
                                           FTSM.M(x[p], PSI, PSI) *
コード例 #2
0
    'switching': 'C2'
}

ff.params['CoulombDiElec'] = {
    'algorithm': 'Cutoff',
    'switching': 'Cn',
    'switchon': 10,
    'cutoff': 12,
    'order': 2
}

for ii in range(0, numgridsquares):
    for jj in range(0, numgridsquares):
        print "BOX: ", ii, jj
        if (ii != 0):
            FTSM.setConstraint(PHI, PSI, midpts[ii][jj][0], midpts[ii][jj][1],
                               kappa, ff)
        elif (jj != 0):
            FTSM.setConstraint(PHI, PSI, midpts[ii][jj][0], midpts[ii][jj][1],
                               kappa, ff)

        pts = ii * numgridsquares + jj

        for i in range(0, 20):
            myProp.propagate(scheme="LangevinImpulse",
                             steps=100,
                             dt=1.0,
                             forcefield=ff,
                             params={
                                 'temp': 300,
                                 'gamma': 91
                             })
コード例 #3
0
ファイル: FTSM_ALA_SOLV.py プロジェクト: badi/protomol-mirror
#stringgraph=io.newGraph('Phi', 'Psi')

# PRINT INITIAL STRING I0
print "\nI0: ",
print z
#io.plotVector(prop[0][0],stringgraph,z, rangex=[-numpy.pi, numpy.pi], rangey=[-numpy.pi, numpy.pi])


dt = 1.0
for iter in range(0, numsteps): # NUMBER OF FTSM ITERATIONS
    for p in range(0, numpoints): # LOOPING OVER POINTS
        if (iter >= 10000 and iter <= 100000):
            kappa += (100.-40.)/90000.

        if (p != 0 or iter != 0):
           FTSM.setConstraint(PHI, PSI, phi=z[p][0], psi=z[p][1], kappa=kappa, forcefield=ff)
        
        # UPDATE FREE SPACE
        # USE FIRST SYSTEM TO GET M
        # USE SECOND SYSTEM TO OBTAIN PHI AND PSI DIFFERENCES
        # FROM TARGETS
        zp0 = z[p][0]
        z[p][0] -= (kappa/gamma)*dt*(FTSM.M(x[p], PHI, PHI)*(z[p][0]-y[p].dihedral(PHI)) + FTSM.M(x[p], PHI, PSI)*(z[p][1] - y[p].dihedral(PSI)))
        z[p][1] -= (kappa/gamma)*dt*(FTSM.M(x[p], PSI, PHI)*(zp0-y[p].dihedral(PHI)) + FTSM.M(x[p], PSI, PSI)*(z[p][1] - y[p].dihedral(PSI)))
        
        
        # UPDATE CARTESIAN
        prop[p][0].propagate(scheme="velocityscale", steps=1, dt=dt, forcefield=ff, params={'T0':300})

        prop[p][1].propagate(scheme="velocityscale", steps=1, dt=dt, forcefield=ff, params={'T0':300})
コード例 #4
0
sys.exit(0)
ff.params['HarmonicDihedral'] = {'kbias':[kappa, kappa],
                                 'dihedralnum':[PHI-1, PSI-1],
                                 'angle':[z_p[0], z_p[1]]}


dt = 1.0
kappaincr = (1000.-40.)/100000.
for iter in range(0, 2000): # NUMBER OF FTSM ITERATIONS
    #for workpt in range(0, numpoints): # LOOPING OVER POINTS
        if (iter >= 10001 and iter <= 110000):
            kappa += kappaincr


        if (iter != 0):
           FTSM.setConstraint(PHI, PSI, phi=z_p[0], psi=z_p[1], kappa=kappa, forcefield=ff)       
        # UPDATE FREE SPACE
        # USE FIRST SYSTEM TO GET M
        # USE SECOND SYSTEM TO OBTAIN PHI AND PSI DIFFERENCES
        # FROM TARGETS
        zp0 = z_p[0]
	z_p[0] -= (kappa/gamma)*dt*(FTSM.M(x, PHI, PHI)*(z_p[0]-y.angle(PHI)) + FTSM.M(x, PHI, PSI)*(z_p[1] - y.angle(PSI)))
        z_p[1] -= (kappa/gamma)*dt*(FTSM.M(x, PSI, PHI)*(zp0-y.angle(PHI)) + FTSM.M(x, PSI, PSI)*(z_p[1] - y.angle(PSI)))
        
        # UPDATE CARTESIAN
        # Dr. Izaguirre: I have checked and this constraint
        # is correct.  The energy is harmonic, but the force (the gradient)
        # is not harmonic.  In fact it is exactly what is in the paper.        
        prop[0].propagate(scheme="velocityscale", steps=1, dt=dt, forcefield=ff, params={'T0':300})
        prop[1].propagate(scheme="velocityscale", steps=1, dt=dt, forcefield=ff, params={'T0':300})
コード例 #5
0
                             'cutoff':12,
                             'switchon':10,
                             'switching':'C2'}

ff.params['CoulombDiElec'] = {'algorithm':'Cutoff',
                              'switching':'Cn',
                              'switchon':10,
                              'cutoff':12,
                              'order':2}


for ii in range(0,numgridsquares):
    for jj in range(0,numgridsquares):
        print "BOX: ", ii, jj
        if (ii !=0):
            FTSM.setConstraint(PHI, PSI, midpts[ii][jj][0],midpts[ii][jj][1],kappa,ff)
        elif (jj != 0) :
            FTSM.setConstraint(PHI, PSI, midpts[ii][jj][0],midpts[ii][jj][1],kappa,ff)

        pts = ii*numgridsquares + jj

        for i in range(0,20):
            myProp.propagate(scheme="LangevinImpulse",steps=100,dt=1.0,forcefield=ff,params={'temp':300,'gamma':91})
            
        FTSM.setConstraint(PHI, PSI, midpts[ii][jj][0],midpts[ii][jj][1],kappa1,ff)

        #Equilibrate at this point for a bit
        myProp.propagate(scheme="LangevinImpulse",steps=50,dt=1.0,forcefield=ff,params={'temp':300,'gamma':91})
        
        ef = outdir+'/sampleatrc.energies.'+str(ii)+'.'+str(jj)
        df = outdir+'/sampleatrc.'+str(ii)+'.'+str(jj)+'.dcd'
コード例 #6
0
#converged = False
#d = 40000
#initial = copy(z)

convergedPhis = []
convergedPsis = []
matlabfile = open("formatlab.txt", "w")

for iter in range(0, numsteps): # NUMBER OF FTSM ITERATIONS
    for p in range(0, numpoints): # LOOPING OVER POINTS

        if (iter >= 15000):# and iter <= 100000):
            kappa += (100.-40.)/90000.

        if (p != 0 or iter != 0):
           FTSM.setConstraint(PHI, PSI, phi=z[p][0], psi=z[p][1], kappa=kappa, forcefield=ff)
        
        # UPDATE FREE SPACE
        # USE FIRST SYSTEM TO GET M
        # USE SECOND SYSTEM TO OBTAIN PHI AND PSI DIFFERENCES
        # FROM TARGETS
        zp0 = z[p][0]
        z[p][0] -= (kappa/gamma)*dt*(FTSM.M(x[p], PHI, PHI)*(z[p][0]-y[p].dihedral(PHI)) + FTSM.M(x[p], PHI, PSI)*(z[p][1] - y[p].dihedral(PSI)))
        z[p][1] -= (kappa/gamma)*dt*(FTSM.M(x[p], PSI, PHI)*(zp0-y[p].dihedral(PHI)) + FTSM.M(x[p], PSI, PSI)*(z[p][1] - y[p].dihedral(PSI)))
        # My own function which sets phi and psi for individual force objects
        # Saves performance since I only change 'angle', I don't want to define
        # all new force objects by changing params.
        #if (iter != 0 or p != 0):
        #  FTSM.setConstraint(phi=z[p][0], psi=z[p][1], kappa=kappa, forcefield=ff)
        
        # UPDATE CARTESIAN
コード例 #7
0
io.plotVector(proparray[0][0],stringgraph,S, rangex=[-numpy.pi, 0], rangey=[-100*numpy.pi/180, numpy.pi])
# SET THE STATE BACK TO THE ORIGINAL PDB
#io.readPDBPos(physarray[0][0], "examples/alanSolStates/alanC7axial_wb5_min_eq.pdb")



dt = 1.0
for iter in range(0, 100000): # NUMBER OF FTSM ITERATIONS
    for workpt in range(0, numpoints): # LOOPING OVER POINTS
        if (iter >= 10000 and iter <= 100000):
            kappa += (100.-40.)/90000.
        # UPDATE FREE SPACE
        # USE FIRST SYSTEM TO GET M
        # USE SECOND SYSTEM TO OBTAIN PHI AND PSI DIFFERENCES
        # FROM TARGETS
        M = FTSM.M(physarray[workpt][0], PHI_DIHEDRAL, PSI_DIHEDRAL)
        #print "DIFFERENCE: ", S[workpt][0]-physarray[workpt][1].phi(PHI_DIHEDRAL), " " , S[workpt][1]-physarray[workpt][1].phi(PSI_DIHEDRAL)
        S[workpt][0] -= (kappa/gamma)*M*dt*(S[workpt][0]-physarray[workpt][1].phi(PHI_DIHEDRAL))
        S[workpt][1] -= (kappa/gamma)*M*dt*(S[workpt][1]-physarray[workpt][1].phi(PSI_DIHEDRAL))
        # UPDATE CARTESIAN
        # Dr. Izaguirre: I have checked and this constraint
        # is correct.  The energy is harmonic, but the force (the gradient)
        # is not harmonic.  In fact it is exactly what is in the paper.

        proparray[workpt][0].propagate(scheme="LangevinImpulse", steps=1, dt=dt, forcefield=ff)

        proparray[workpt][1].propagate(scheme="LangevinImpulse", steps=1, dt=dt, forcefield=ff)

        # My own function which sets phi and psi for individual force objects
        # Saves performance since I only change 'angle', I don't want to define
        # all new force objects by changing params.
コード例 #8
0
    'kbias': [kappa, kappa],
    'dihedralnum': [PHI - 1, PSI - 1],
    'angle': [z_p[0], z_p[1]]
}

dt = 1.0
kappaincr = (1000. - 40.) / 100000.
for iter in range(0, 2000):  # NUMBER OF FTSM ITERATIONS
    #for workpt in range(0, numpoints): # LOOPING OVER POINTS
    if (iter >= 10001 and iter <= 110000):
        kappa += kappaincr

    if (iter != 0):
        FTSM.setConstraint(PHI,
                           PSI,
                           phi=z_p[0],
                           psi=z_p[1],
                           kappa=kappa,
                           forcefield=ff)
    # UPDATE FREE SPACE
    # USE FIRST SYSTEM TO GET M
    # USE SECOND SYSTEM TO OBTAIN PHI AND PSI DIFFERENCES
    # FROM TARGETS
    zp0 = z_p[0]
    z_p[0] -= (kappa /
               gamma) * dt * (FTSM.M(x, PHI, PHI) *
                              (z_p[0] - y.angle(PHI)) + FTSM.M(x, PHI, PSI) *
                              (z_p[1] - y.angle(PSI)))
    z_p[1] -= (kappa /
               gamma) * dt * (FTSM.M(x, PSI, PHI) *
                              (zp0 - y.angle(PHI)) + FTSM.M(x, PSI, PSI) *
                              (z_p[1] - y.angle(PSI)))