Anneal

From CYANA Wiki
Revision as of 18:25, 28 January 2009 by Admin (talk | contribs) (1 revision)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
    1. Parameters: thigh=real (default: 8.0)
    2. steps=integer (default: 10000)
    3. highsteps=integer (default: -1)
    4. minsteps=integer (default: 1000)
    5. relax
    6. Performs simulated annealing on the current structure with a total of N MD
    7. steps, starting with Nhigh MD steps at temperature Thigh followed by slow
    8. cooling during N - Nhigh MD steps to a final temperature of Tend. Finally,
    9. n steps of conjugate gradient minimization are added. The temperature is
    10. measured in target function units per degree of freedom. Optionally, more
    11. minimization can be performed in order to relax strong overlaps and
    12. restraint violations prior to the start of the MD calculation. The relax
    13. option can be useful for larger (above 200 residues) proteins if otherwise
    14. the maximal length of the pair list would be exceeded.

var echo lev step i mr t0 t v ahigh aend it steps1 steps2 steps3

syntax $macro:thigh=0.0@r=8.0 steps=@i=10000 highsteps=@i=-1 minsteps=@i=1000 relax

echo:=off t0=cputime if (highsteps.lt.0) highsteps=steps/5

  1. initialize rdc force constants

if (rdc_vts_on 2) rdc_vts_on=-1 if (rdc_vas1_on 2) rdc_vas1_on=-1 if (rdc_vas2_on 2) rdc_vas2_on=-1 if (pcs_ws_on 2) pcs_ws_on=-1

  1. Minimization to remove strong overlaps

atom set HYDROGEN radius=-1.0 info=none atom set HEAVY radius=radius-0.2 info=none atom set HBOUND radius=radius+0.15 info=none weight_vdw=0.5 aco_type=2 mr=rnum(nr)-rnum(1) if (relax) then

 lev:=1,3,10,20,50,100,150,200,300,600,1000,2000,100000
 do i 2 length(lev)
   if (lev(i).gt.mr) break
   minimize 100 level=lev(i-1)
 end do

else

 minimize 100 level=3

end if level=mr minimize 100

i=$val(structure,0) if (i.gt.0) seed=17453+17*i v=50

tmed=thigh*0.05 ahigh=0.005; aend=0.0001

  1. amed=(aend/ahigh)**(1.0/3.0)
  2. print "$ahigh , $amed , $aend"

steps3=200 steps1=nint((steps-steps3)*0.33) steps2=steps-steps1-steps3

  1. print "$steps1 + $steps2 + $steps3 = $steps"

if (steps1.le.100 .or. steps2.le.100) error "Not enough timesteps."

  1. First simulated annealing stage

step=0.02 t=real(highsteps)/steps md steps=steps1 \

  temperature=min(thigh,(thigh-tmed)*(1.0-(s-t)/(1.0-t))**4+tmed) \
  accuracy=ahigh \
  dt=step tau=20.0 angdev=36000.0 vdwupdate=v nprint=steps/20
  1. Second simulated annealing stage

atom set HEAVY radius=* info=none minimize 50 step=0.5*timestep t=0.67

if (rdc_vts_on 2) rdc_vts_on=1 if (rdc_vas1_on 2) rdc_vas1_on=1

  1. if (rdc_vas2_on 2) rdc_vas2_on=1

if (pcs_ws_on 2) pcs_ws_on=1 md steps=steps2/2 \

  temperature=tmed*(1.0-s*t)**4 \
  accuracy=ahigh*(aend/ahigh)**(s*t) \
  dt=step tau=20.0 angdev=36000.0 vdwupdate=v nprint=steps/20 continue

if (pcs_ws_on 2) pcs_ws_on=0 if (rdc_vts_on 2) rdc_vts_on=0 if (rdc_vas1_on 2) rdc_vas1_on=0

  1. if (rdc_vas2_on 2) rdc_vas2_on=0


atom set * radius=* info=none minimize 50 step=0.5*timestep

if (rdc_vas2_on 2) rdc_vas2_on=1 md steps=steps2/2 \

  temperature=tmed*(1.0-(t+s*(1-t)))**4 \
  accuracy=ahigh*(aend/ahigh)**(t+s*(1-t)) \
  dt=step tau=20.0 angdev=36000.0 vdwupdate=v nprint=steps/20 continue

if (rdc_vas2_on 2) rdc_vas2_on=0

  1. Final MD and minimization with all atoms

aco_type=1 weight_vdw=2.0 minimize 50 step=0.5*timestep md steps=steps3 dt=step temperature=0.0 accuracy=aend tau=20.0 \

  angdev=36000.0 vdwupdate=v nprint=100 continue

minimize minsteps

print " Structure annealed in $nint(cputime-t0) s, f = $tf."