Dear all,
I am using IVM and Pararestraints to refine one
structure. But I checked the output PDB file and the
tensors axes are not orthogonal. Can anybody help me
check my script to see where the problem comes from.
Thanks
Here is the script:
! CDS 5/2/00
!
eval ($numStructs = 20) !total number of
structures to calculate
eval ($randomSeed = 735) !random seed
eval ($use_graphics = false) ! VMD-xplor graphics are
not used.
eval ($maxResid = 500) !used for properly
configuring TA dynamics
!
! get parallel info, which computer and how many
processes.
!
cpyth "from os import environ as env"
cpyth "xplor.command('eval ($proc_num=%s)' %
env['XPLOR_PROCESS'] )"
cpyth "xplor.command('eval ($num_procs=%s)' %
env['XPLOR_NUM_PROCESSES'])"
eval ($num_procs=min($num_procs,$numStructs))
if ( $proc_num >= $num_procs ) then stop end if
eval ($firstStruct = int($proc_num * $numStructs /
$num_procs))
eval ($lastStruct = int(($proc_num+1) * $numStructs
/ $num_procs))
!
! read in the PSF and initial PDB files
!
parameter @TOPPAR:parallhdg.pro @par_axis_3.pro
@ion.param @carbohydrate.param end
structure @new.psf end
!
! get parallel info
!
!cpyth "from os import environ as env"
!cpyth "xplor.command('eval ($proc_num=%s)' %
env['XPLOR_PROCESS'] )"
!cpyth "xplor.command('eval ($num_procs=%s)' %
env['XPLOR_NUM_PROCESSES'])"
noe
{====>}
nres=3000 {*Estimate greater than the
actual number of NOEs.*}
class tensors
@tensors.tbl
class others
{====>}
@dist.tbl {*Read NOE
distance ranges.*}
@air.tbl {*Read ambiguous
distance restraints.*}
end
xpcs
nres=2000
class EU
force 50.0
coeff 2350 -1092
@pcs_protein.tbl
class ligand
force 500.0
coeff 2350 -1092
@pcshifts.tbl
end
xrdc
nres=2000
class EU
force 1
coeff 2.82 -1.31
@protein_adj.tbl
class ligand
force=10
coeff 2.82 -1.31
@lac_adj.tbl
end
restraints dihed
reset
nassign = 400
scale=50
{====>}
@dih.tbl {*Read dihedral
angle restraints.*}
end
!
! starting coords
!
coor @new.pdb
! Fix dipolar coupling tensor axis
! this applies for the powell minimization- but not
for the torsion angle
! dynamics
!constraints fix=(resid 114:250) end
flags exclude * include bond angle impr cdih end
mini powell nstep 1000 nprint 100 end
{* Minimize with only the covalent constraints. *}
coor copy end
!
! annealing settings
!
eval ($init_t = 3500.01)
eval ($final_t = 100)
eval ($cool_steps = 25000)
eval ($tempstep = 25)
eval ($ncycle_vdw = 100)
eval ($ncycle = ($init_t-$final_t)/$tempstep)
eval ($nstep = int($cool_steps/$ncycle))
eval ($ini_rad = 0.4)
eval ($fin_rad = 0.80)
eval ($radfact = ($fin_rad/$ini_rad)^(1/$ncycle))
eval ($ini_con = 0.004)
eval ($fin_con = 4.0)
eval ($k_vdwfact = ($fin_con/$ini_con)^(1/$ncycle))
eval ($ini_ang = 0.4)
eval ($fin_ang = 1.0)
eval ($ang_fac = ($fin_ang/$ini_ang)^(1/$ncycle))
eval ($ini_imp = 0.4) ! was 0.1
eval ($fin_imp = 1.0)
eval ($imp_fac = ($fin_imp/$ini_imp)^(1/$ncycle))
eval ($hitemp_noe = 150.0) ! was 150
eval ($ini_noe = 2.0) ! was 2
eval ($fin_noe = 30.0)
eval ($noe_fac = ($fin_noe/$ini_noe)^(1/$ncycle))
eval ($ini_sani = 0.01)
eval ($fin_sani = 1.0)
evaluate ($sani_fac =
($fin_sani/$ini_sani)^(1/$ncycle))
eval ($ini_timestep = 0.010) !reduced from 0.015
eval ($fin_timestep = 0.003)
eval ($timestep_fac =
($fin_timestep/$ini_timestep)^(1/$ncycle))
!scaling factors for the vdw loop
eval ($radfact_vdw =
($fin_rad/$ini_rad)^(1/$ncycle_vdw))
eval ($k_vdwfact_vdw =
($fin_con/$ini_con)^(1/$ncycle_vdw))
eval ($ang_fac_vdw =
($fin_ang/$ini_ang)^(1/$ncycle_vdw))
eval ($imp_fac_vdw =
($fin_imp/$ini_imp)^(1/$ncycle_vdw))
vector do (mass = 100.0) (all)
vector do (fbeta = 10.0) (all)
set echo on message on end
!
! set up the torsion angle dynamics topology stuff
! to eliminate degrees of freedom in the aromatics
dynamics internal
reset
set echo off message off end
group (resid 1:155)
group (resid 250 or resid 251 and
(name C1 or name C2 or name C3 or name C4 or
name C5 or name O4))
!set up the dipolar coupling tensor axis
group (resid 500)
! hinge rotate (resid 251)
set echo on message on end
cloop=false
auto torsion
maxe 10000
end
constraints
interaction (not resname ANI) (not resname ANI)
weights * 1 angl $ini_ang impr $ini_imp {*
Scale covalent constraints. *}
end
end
parameter {*Parameters for the
repulsive energy term.*}
nbonds
repel=0.5 {*Initial value for
effective atom radius *}
{*--modified later.*}
rexp=2 irexp=2 rcon=1.
nbxmod=-2 {*Initial value for
nbxmod--modified later.*}
wmin=0.01
cutnb=4.5 ctonnb=2.99 ctofnb=3.
tolerance=0.5
end
end
restraints dihedral
scale=5. {*Initial
weight--modified later.*}
end
evaluate ($ksani = $ini_sani)
!write coor output=test2.pdb end
eval ($count = $firstStruct)
while ($count < $lastStruct) loop structure
!
! Be sure different structures start with
different seeds
!
eval ($seed = $randomSeed+$count)
set seed $seed end
if ( $use_graphics = true ) then
ps
defi $count
bonds (not name h)
end
end
end if
!
! reset the force constants and call the energy
terms
!
eval ($bath = $init_t)
eval ($radius = $ini_rad)
eval ($k_vdw = $ini_con)
eval ($k_ang = $ini_ang)
eval ($k_imp = $ini_imp)
eval ($knoe = $ini_noe)
eval ($ksani = $ini_sani)
eval ($timestep = $ini_timestep)
flags
exclude * include bonds angl impr noe coup
cdih xpcs xrdc sani
end
!
! re-init the coords
!
! write coor output=test3.pdb end
coor swap end
coor copy end {* Save the first structure to
copy to use as a reference *}
!
! set some high-temp force constants
!
noe
ceiling=1000
averaging * sum
potential * soft
sqconstant * 1.0
sqexponent * 2
sqoffset * 0.0
soexponent * 1
asymptote * 1.0
rswitch * 0.5
rswitch * 3
scale * $hitemp_noe
end
sani class MDY force $ksani end
parameters
nbonds
atom
nbxmod 4 {* Can use 4 here, due to
internal coordinate dynamics. *}
wmin 0.01
cutnb 4.5
tolerance 0.5
rexp 2
irex 2
repel $radius
rcon $k_vdw
end
end
vector do (vx = maxwell(3500)) (all)
vector do (vy = maxwell(3500)) (all)
vector do (vz = maxwell(3500)) (all)
{* Set initial velocities to fit a temperature
of 3500K. *}
{* High temperature to promote convergence.
*}
!
! high temp dynamics
!
evaluate ($tol = $bath/1000)
dynamics internal
nstep 0
endt 20
timestep $timestep
tbath $bath
response 20
nprint 100
etol $tol
end
if ( $use_graphics = true ) then
ps
append $count
bonds (not name h)
end
end
end if
flags exclude * include bond angle impr vdw noe
coup cdih xpcs xrdc sani end
eval ($bath = $init_t)
evaluate ($i_vdw = 0)
while ($i_vdw < $ncycle_vdw) loop vdw {*
iterate changes in van der *}
{* Waals
interaction. Scale and*}
{*
radius. *}
evaluate ($i_vdw=$i_vdw+1)
{* Min function is used to keep variables
within ini_variable and *}
{* fin_variable.
*}
eval ($k_vdw =
min($fin_con,$k_vdw*$k_vdwfact_vdw))
eval ($radius =
min($fin_rad,$radius*$radfact_vdw))
eval ($k_ang =
min($fin_ang,$k_ang*$ang_fac_vdw))
eval ($k_imp = min
($fin_imp,$k_imp*$imp_fac_vdw))
eval ($k_imp = min
($fin_imp,$k_imp*$imp_fac_vdw))
parameter
nbonds
rcon $k_vdw
repel $radius
end
end
constraints
interaction (not resname ANI) (not resname
ANI)
! interaction (not resname ANI) (not
resname 1EU)
weights * 1 angl $k_ang impr $k_imp
end
end
!
! vdw dynamics {* dynamics with Van der Waals
repulsion turned on. *}
!
dynamics internal
timestep $timestep
endt 1
tbath $bath
nprint $nstep
ntrfr 10
end
if ( $use_graphics = true ) then
ps
append $count
bonds (not name h)
end
end
end if
end loop vdw
!
! cooling
!
restraints dihedral
scale=200. end {* increase dihedral term
*}
evaluate ($i_cool = 0)
while ($i_cool < $ncycle) loop cool
evaluate ($i_cool=$i_cool+1)
eval ($bath = $bath - $tempstep)
eval ($knoe = $knoe*$noe_fac) {* Scale
during cooling. *}
evaluate ($ksani = $ksani*$sani_fac)
eval ($timestep = $timestep*$timestep_fac)
eval ($k_vdw =
min($fin_con,$k_vdw*$k_vdwfact))
eval ($radius =
min($fin_rad,$radius*$radfact))
eval ($k_ang = min($fin_ang,$k_ang*$ang_fac))
eval ($k_imp = min($fin_imp,$k_imp*$imp_fac))
noe scale * $knoe end
sani class MDY force $ksani end
parameter
nbonds
rcon $k_vdw
repel $radius
end
end
constraints
interaction (not resname ANI) (not resname
ANI)
! interaction (not resname ANI) (not resname
1EU)
weights * 1 angl $k_ang impr $k_imp {*
Scale impropers and angles *}
end
end
!
! cooling dynamics
!
evaluate ($tol = $bath/1000)
dynamics internal
endt 2
tbath $bath
nprint $nstep
ntrfr 10
end
if ( $use_graphics = true ) then
ps
append $count
bonds (not name h)
end
end
end if
end loop cool
! write coor output=test4.pdb end
!
! final minimization - with fixed tensor axis
!
constraints fix (resname "ANI") end
! constraints fix (resname "GAL" or resname
"GLC") end
mini powell nstep 500 nprint 50 end
! xpcs
! foff
! son
! evaluate
($filename="1pse"+encode($count)+"."+encode($count))
! save $filename
! frun 1
! soff
! end
! xrdc
! foff
! son
! evaluate
($filename="1dip"+encode($count)+"."+encode($count))
! save $filename
! frun 1
! soff
! end
if ( $use_graphics = true ) then
ps
append $count
bonds (not name h)
end
end
end if
!
! recenter
!
coor orient end
!
! analysis
! evaluates RMS deviations and violations
print threshold 1 noe
eval ($rms_noe = $result)
eval ($violations_noe = $violations)
! sani print threshold=0.0 class JNHp end
! evaluate ($rms_sani_JNH_prot=$result)
! evaluate ($viol_sani_JNH_prot=$violations)
! evaluate ($R_JNH_prot=$result/12.77)
print thres 0.05 bonds
eval ($rms_bonds = $result)
print thres 5. angles
eval ($rms_angles = $result)
print thres 5. impropers
eval ($rms_impropers = $result)
print thres 5. cdih
eval ($rms_cdih = $result)
eval ($violations_cdih=$violations)
sani print threshold=1 class MDY end
evaluate($rms_sani=$result)
evaluate($viol_sani=$violations)
! sani print threshold=1 class gal3 end
! xpcs print threshold=0.1 all end
!evaluate($rms_pcs=$result)
!evaluate($violations_pcs=$violations)
! couplings print threshold 1.0 class phi end
! evaluate ($rms_coup = $result)
! evaluate ($viols_coup = $violations)
! evaluate ($viols_coup = $violations)
xpcs print threshold=0 all end
xrdc print threshold=0 class EU end
xrdc print threshold=0 class ligand end
remarks overall bonds angles improper vdw
noe coup sani
remarks energies: $ener $bond $angl $impr $vdw
$noe $coup $sani
remarks
===============================================================
remarks bonds angles impropers noe
Jcoupings sani
remarks $rms_bonds $rms_angles $rms_impropers
$rms_noe $rms_coup $rms_sani $rms_pcs
remarks
===============================================================
remarks noe dihedrals
couplings
remarks violations : $violations_noe
$violations_cdih $viols_coup $viol_sani
$violations_pcs
remarks
===============================================================
eval ($suffix = ".pdb_nonconverged")
{* Test for convergence. *}
if ($violations_noe < 10) then
if ($violations_cdih < 2) then
eval ($suffix = ".pdb") {* Change the
suffix if converged. *}
end if
end if
evaluate ($file = "rdc_dock_nodist_" +
encode($count) + $suffix)
write coor output= $file end
eval ($count = $count + 1)
end loop structure
stop
___________________________________________________________
??????????????????
http://cn.mail.yahoo.com/promo/carnival07/