NMR Restraints Grid

Result table
 (Save to zip file containing files for each block)

image mrblock_id pdb_id bmrb_id cing stage position program type
538135 2lj9 17926 cing 1-original 5 XPLOR/CNS unknown


{+ file: anneal.inp +}
{+ directory: nmr_calc +}
{+ description: dynamical annealing with NOEs, coupling constants, 
                chemical shift restraints starting from extended 
                strands or pre-folded structures. +}
{+ authors: Gregory Warren, Michael Nilges, John Kuszewski, 
     Marius Clore and Axel Brunger +}
{+ copyright: Yale University +}

{+ reference: Clore GM, Gronenborn AM, Tjandra N, Direct structure refinement 
              against residual dipolar couplings in the presence of rhombicity
              of unknown magnitude., J. Magn. Reson., 131, In press, (1998) +}
{+ reference: Clore GM, Gronenborn AM, Bax A, A robust method for determining 
              the magnitude of the fully asymmetric alignment tensor of
              oriented macromolecules in the absence of structural
              information., J. Magn. Reson., In press (1998) +}
{+ reference: Garrett DS, Kuszewski J, Hancock TJ, Lodi PJ, Vuister GW,
              Gronenborn AM, Clore GM, The impact of direct refinement against 
              three-bond HN-C alpha H coupling constants on protein structure
              determination by NMR., J. Magn. Reson. Ser. B, 104(1), 
              99-103, (1994) May +}
{+ reference: Kuszewski J, Qin J, Gronenborn AM, Clore GM, The impact of direct
              refinement against 13C alpha and 13C beta chemical shifts on 
              protein structure determination by NMR., J. Magn. Reson. Ser. B,
              106(1), 92-6, (1995) Jan +}
{+ reference: Kuszewski J, Gronenborn AM, Clore GM, The impact of direct
              refinement against proton chemical shifts on protein structure 
              determination by NMR., J. Magn. Reson. Ser. B, 107(3), 293-7, 
              (1995) Jun +}
{+ reference: Kuszewski J, Gronenborn AM, Clore GM, A potential involving 
              multiple proton chemical-shift restraints for 
              nonstereospecifically assigned methyl and methylene protons.
              J. Magn. Reson. Ser. B, 112(1), 79-81, (1996) Jul. +}
{+ reference: Nilges M, Gronenborn AM, Brunger AT, Clore GM, Determination 
              of three-dimensional structures of proteins by simulated
              annealing with interproton distance restraints: application 
              to crambin, potato carboxypeptidase inhibitor and barley 
              serine proteinase inhibitor 2. Protein Engineering 2, 
              27-38, (1988) +}
{+ reference: Nilges M, Clore GM, Gronenborn AM,  Determination of
              three-dimensional structures of proteins from interproton 
              distance data by dynamical simulated annealing from a random 
              array of atoms. FEBS LEtt. 239, 129-136. (1988) +}
{+ reference: Rice LM, Brunger AT, Torsion Angle Dynamics: Reduced Variable 
              Conformational Sampling Enhances Crystallographic Structure 
              Refinement., Proteins, 19, 277-290 (1994) +}  
{+ reference: Stein EG, Rice LM, Brunger AT, Torsion angle molecular 
              dynamics: a new efficient tool for NMR structure calculation., 
              J. Mag. Res. Ser. B 124, 154-164 (1997) +}
{+ reference: Tjandra N, Garrett DS, Gronenborn AM, Bax A, Clore GM, Defining
              long range order in NMR structure determination from the 
              dependence of heteronuclear relaxation times on rotational 
              diffusion anisotropy. Nature Struct. Biol., 4(6), 443-9,
              (1997) June +}
{+ reference: Tjandra N, Omichinski JG, Gronenborn AM, Clore GM, Bax A, Use of
              dipolar 1H-15N and 1H-13C couplings in the structure
              determination of magnetically oriented macromolecules in
              solution. Nature Struct. Biol., 4(9), 732-8, (1997) Sept +} 

! Data taken from: Qin J, Clore GM, Kennedy WP, Kuszewski J, Gronenborn AM, 
!                  The solution structure of human thioredoxin complexed with 
!                  its target from Ref-1 reveals peptide chain reversal.,
!                  Structure, 4(5), 613-620, 1996 May 15.

{- Guidelines for using this file:
   - all strings must be quoted by double-quotes
   - logical variables (true/false) are not quoted
   - do not remove any evaluate statements from the file -}

{- begin block parameter definition -} define(

{======================= molecular structure =========================}

{* parameter file(s) *}
{===>} par.1="CNS_TOPPAR:protein-allhdg.param";
{===>} par.2="";
{===>} par.3="";
{===>} par.4="";
{===>} par.5="";

{* structure file(s) *}
{===>} struct.1="generate_seq.mtf";
{===>} struct.2="";
{===>} struct.3="";
{===>} struct.4="";
{===>} struct.5="";

{* input coordinate file(s) *}
{===>} pdb.in.file.1="shortcp12_extended.pdb";
{===>} pdb.in.file.2="";
{===>} pdb.in.file.3="";

{========================== atom selection ===========================}

{* input "backbone" selection criteria for average structure generation *}
{* for protein      (name n or name ca or name c)
   for nucleic acid (name O5' or name C5' or name C4' or name C3' 
                     or name O3' or name P) *}
{===>} pdb.atom.select=(name n or name ca or name c);

{====================== refinement parameters ========================}

{* type of molecular dynamics for hot phase *}
{+ choice: "torsion" "cartesian" +}
{===>} md.type.hot="torsion";

{* type of molecular dynamics for cool phase *}
{+ choice: "torsion" "cartesian" +}
{===>} md.type.cool="torsion";

{* refine using different initial velocities or coordinates 
   (enter base name in "input coordinate files" field) *}
{+ choice: "veloc" "coord" +}
{===>} md.type.initial="veloc";

{* seed for random number generator *}
{* change to get different initial velocities *}
{===>} md.seed=82364;

{* select whether the number of structures will be either trial or
   accepted structures and whether to print only the trial, accepted,
   both sets of structures. *}
{+ list: The printing format is as follows:
         trial = pdb.out.name + _#.pdb , accepted = pdb.out.name + a_#.pdb +} 

{* are the number of structures to be trials or accepted? *}
{+ choice: "trial" "accept" +}
{===>} flg.trial.struc="trial";
{* number of trial or accepted structures *}
{===>} pdb.end.count=150;

{* print accepted structures *}
{+ choice: true false +}
{===>} flg.print.accept=false;
{* print trial structures *}
{+ choice: true false +}
{===>} flg.print.trial=true;

{* calculate an average structure for either the trial or  
   accepted structure.  If calculate accepted average is false then 
   an average for the trial structures will be calculated. *}

{* calculate an average structure? *}
{+ choice: true false +}
{===>} flg.calc.ave.struct=false;
{* calculate an average structure for the accepted structures? *}
{+ choice: true false +}
{===>} flg.calc.ave.accpt=false;
{* minimize average coordinates? *}
{+ choice: true false +}
{===>} flg.min.ave.coor=false;

{=================== torsion dynamics parameters ====================}

{* maximum unbranched chain length (use <= 0 for automatic) *}
{===>} md.torsion.maxlength=0;

{* maximum number of distinct bodies (use <= 0 for automatic) *}
{===>} md.torsion.maxtree=0;

{========== parameters for high temperature annealing stage ==========}

{* temperature (proteins: 50000, dna/rna: 20000) *}
{===>} md.hot.temp=50000;
{* number of steps (proteins: 1000, dna/rna: 4000) *}
{===>} md.hot.step=1000;
{* scale factor to reduce van der Waals (repel) energy term *}
{===>} md.hot.vdw=0.1;
{* scale factor for NOE energy term *}
{===>} md.hot.noe=150;
{* scale factor for dihedral angle energy term (proteins: 100, dna/rna: 5) *}
{===>} md.hot.cdih=100;
{* molecular dynamics timestep *}
{===>} md.hot.ss=0.015;

{======== parameters for the first slow-cool annealing stage =========}

{* temperature (cartesian: 1000, torsion: [proteins: 50000, dna/rna: 20000]) *}
{===>} md.cool.temp=50000;
{* number of steps *}
{===>} md.cool.step=1000;
{* scale factor for final van der Waals (repel) energy term 
   (cartesian: 4.0, torsion: 1.0) *}
{===>} md.cool.vdw=1.0;
{* scale factor for NOE energy term *}
{===>} md.cool.noe=150;
{* scale factor for dihedral angle energy term *}
{===>} md.cool.cdih=200;
{* molecular dynamics timestep (cartesian: 0.005, torsion: 0.015) *}
{===>} md.cool.ss=0.015;
{* slow-cool annealing temperature step (cartesian: 25, torsion: 250) *}
{===>} md.cool.tmpstp=250;

{========= parameters for a second slow-cool annealing stage ==========}

{* cartesian slow-cooling annealing stage to be used only with torsion
   slow-cool annealing stage *}
{* this stage is only necessary when the macromolecule is a protein 
   greater than 160 residues or in some cases for nucleic acids *}
   
{* use cartesian cooling stage? *}
{+ choice: true false +}
{===>} md.cart.flag=true;
{* temperature *}
{===>} md.cart.temp=2000;
{* number of steps *}
{===>} md.cart.step=3000;
{* scale factor for initial van der Waals (repel) energy term *}
{===>} md.cart.vdw.init=1.0;
{* scale factor for final van der Waals (repel) energy term *}
{===>} md.cart.vdw.finl=4.0;
{* scale factor for NOE energy term *}
{===>} md.cart.noe=150;
{* scale factor for dihedral angle energy term *}
{===>} md.cart.cdih=200;
{* molecular dynamics timestep *}
{===>} md.cart.ss=0.005;
{* slow-cool annealing temperature step *}
{===>} md.cart.tmpstp=25;

{=============== parameters for final minimization stage ==============}

{* scale factor for NOE energy term *}
{===>} md.pow.noe=75;
{* scale factor for dihedral angle energy term *}
{===>} md.pow.cdih=400;
{* number of minimization steps *}
{===>} md.pow.step=200;
{* number of cycles of minimization *}
{===>} md.pow.cycl=10;
      
{============================= noe data ===============================}

{- Important - if you do not have a particular data set then
   set the file name to null ("") -}

{* NOE distance restraints files. *}

{* restraint set 1 file *}
{===>} nmr.noe.file.1="cp12_noe_all20100820_5758.tbl";
{* restraint set 2 file *}
{===>} nmr.noe.file.2="cp12_noe_all20100820_6978.tbl";
{* restraint set 3 file *}
{===>} nmr.noe.file.3="cp12_noe_all20100820_6068.tbl";
{* restraint set 4 file *}
{===>} nmr.noe.file.4="hbond.tbl";
{* restraint set 5 file *}
{===>} nmr.noe.file.5="";

{* NOE averaging modes *}

{* restraint set 1 *}
{+ choice: "sum" "cent" "R-6" "R-3" "symm" +}
{===>} nmr.noe.ave.mode.1="sum";
{* restraint set 2 *}
{+ choice: "sum" "cent" "R-6" "R-3" "symm" +}
{===>} nmr.noe.ave.mode.2="sum";
{* restraint set 3 *}
{+ choice: "sum" "cent" "R-6" "R-3" "symm" +}
{===>} nmr.noe.ave.mode.3="sum";
{* restraint set 4 *}
{+ choice: "sum" "cent" "R-6" "R-3" "symm" +}
{===>} nmr.noe.ave.mode.4="sum";
{* restraint set 5 *}
{+ choice: "sum" "cent" "R-6" "R-3" "symm" +}
{===>} nmr.noe.ave.mode.5="sum";

{======================== hydrogen bond data ==========================}

{* hydrogen-bond distance restraints file. *}
{===>} nmr.noe.hbnd.file="";

{* enter hydrogen-bond distance averaging mode *}
{+ choice: "sum" "cent" "R-6" "R-3" "symm" +}
{===>} nmr.noe.ave.mode.hbnd="sum";

{======================= 3-bond J-coupling data =======================}
{* the default setup is for the phi dihedral *}

{* Class 1 *}

{* 3-bond J-coupling non-glycine restraints file *}
{===>} nmr.jcoup.file.1="";
{* 3-bond J-coupling non-glycine potential *}
{+ choice: "harmonic" "square" "multiple" +}
{===>} nmr.jcoup.pot.1="harmonic";
{* 3-bond J-coupling non-glycine force value *}
{===>} nmr.jcoup.force.1.1=1;
{* 3-bond j-coupling multiple class force second value *}
{===>} nmr.jcoup.force.2.1=0;
{* 3-bond j-coupling Karplus coefficients *}
{* the default values are for phi *}
{===>} nmr.jcoup.coef.1.1=6.98;
{===>} nmr.jcoup.coef.2.1=-1.38;
{===>} nmr.jcoup.coef.3.1=1.72;
{===>} nmr.jcoup.coef.4.1=-60.0;

{* Class 2 *}

{* 3-bond j-coupling glycine restraints files *}
{===>} nmr.jcoup.file.2="";
{* 3-bond J-coupling glycine potential *}
{* The potential for the glycine class must be multiple *}
{+ choice: "harmonic" "square" "multiple" +}
{===>} nmr.jcoup.pot.2="multiple";
{* 3-bond J-coupling first force value *}
{===>} nmr.jcoup.force.1.2=1;
{* 3-bond j-coupling glycine or multiple force second value *}
{===>} nmr.jcoup.force.2.2=0;
{* 3-bond j-coupling Karplus coefficients *}
{* the default values are for glycine phi *}
{===>} nmr.jcoup.coef.1.2=6.98;
{===>} nmr.jcoup.coef.2.2=-1.38;
{===>} nmr.jcoup.coef.3.2=1.72;
{===>} nmr.jcoup.coef.4.2=0.0;

{================ 1-bond heteronuclear J-coupling data ================}

{* Class 1 *}

{* 1-bond heteronuclear j-coupling file *}
{===>} nmr.oneb.file.1="";
{* 1-bond heteronuclear j-coupling potential *}
{+ choice: "harmonic" "square" +}
{===>} nmr.oneb.pot.1="harmonic";
{* 1-bond heteronuclear j-coupling force value *}
{===>} nmr.oneb.force.1=1.0;

{=============== alpha/beta carbon chemical shift data ================}

{* Class 1 *}

{* carbon, alpha and beta, chemical shift restraints file *}
{===>} nmr.carb.file.1="";
{* carbon, alpha and beta, chemical shift restraint potential *}
{+ choice: "harmonic" "square" +}
{===>} nmr.carb.pot.1="harmonic";
{* carbon, alpha and beta, chemical shift restraint force value *}
{===>} nmr.carb.force.1=0.5;

{===================== proton chemical shift data =====================}

{* Class 1 *}

{* class 1 proton chemical shift restraints file *}
{===>} nmr.prot.file.1="";
{* class 1 proton chemical shift potential *}
{+ choice: "harmonic" "square" "multiple" +}
{===>} nmr.prot.pot.1="harmonic";
{* class 1 proton chemical shift force value *}
{===>} nmr.prot.force.1.1=7.5;
{* 2nd class 1 proton chemical shift force value for multi *}
{===>} nmr.prot.force.2.1=0;
{* class 1 proton chemical shift violation cutoff threshold *}
{===>} nmr.prot.thresh.1=0.3;

{* Class 2 *}

{* class 2 proton chemical shift restraints file *}
{===>} nmr.prot.file.2="";
{* class 2 proton chemical shift potential *}
{+ choice: "harmonic" "square" "multiple" +}
{===>} nmr.prot.pot.2="harmonic";
{* class 2 proton chemical shift force value *}
{===>} nmr.prot.force.1.2=7.5;
{* 2nd class 2 proton chemical shift force value for multi *}
{===>} nmr.prot.force.2.2=0;
{* class 2 proton chemical shift violation cutoff threshold *}
{===>} nmr.prot.thresh.2=0.3;

{* Class 3 *}

{* class 3 proton chemical shift restraints file *}
{===>} nmr.prot.file.3="";
{* class 3 proton chemical shift potential *}
{+ choice: "harmonic" "square" "multiple" +}
{===>} nmr.prot.pot.3="harmonic";
{* class 3 proton chemical shift force value *}
{===>} nmr.prot.force.1.3=7.5;
{* 2nd class 3 proton chemical shift force value for multi *}
{===>} nmr.prot.force.2.3=0;
{* class 3 proton chemical shift violation cutoff threshold *}
{===>} nmr.prot.thresh.3=0.3;

{* Class 4 *}

{* class 4 proton chemical shift restraints file *}
{===>} nmr.prot.file.4="";
{* class 4 proton chemical shift potential *}
{+ choice: "harmonic" "square" "multiple" +}
{===>} nmr.prot.pot.4="multiple";
{* class 4 proton chemical shift force value *}
{===>} nmr.prot.force.1.4=7.5;
{* 2nd class 4 proton chemical shift force value for multi *}
{===>} nmr.prot.force.2.4=0;
{* class 4 proton chemical shift violation cutoff threshold *}
{===>} nmr.prot.thresh.4=0.3;

{================ diffusion anisotropy restraint data =================}

{* fixed or harmonically restrained external axis *}
{+ choice: "fixed" "harm" +}
{===>} nmr.dani.axis="harm";

{* Class 1 *}

{* diffusion anisotropy restraints file *}
{===>} nmr.dani.file.1="";
{* diffusion anisotropy potential *}
{+ choice: "harmonic" "square" +}
{===>} nmr.dani.pot.1="harmonic";
{* diffusion anisotropy initial force value *}
{===>} nmr.dani.force.init.1=0.01;
{* diffusion anisotropy final force value *}
{===>} nmr.dani.force.finl.1=1.0;
{* diffusion anisotropy coefficients *}
{* coef:      *}

{* Tc = 1/2(Dx+Dy+Dz) in  *} 
{===>} nmr.dani.coef.1.1=13.1;
{* anis = Dz/0.5*(Dx+Dy) *} 
{===>} nmr.dani.coef.2.1=2.1;
{* rhombicity = 1.5*(Dy-Dx)/(Dz-0.5*(Dy+Dx)) *} 
{===>} nmr.dani.coef.3.1=0.0;
{* wH in  *} 
{===>} nmr.dani.coef.4.1=600.13;
{* wN in  *}
{===>} nmr.dani.coef.5.1=60.82;

{============= susceptability anisotropy restraint data ===============}

{* fixed or harmonically restrained external axis *}
{+ choice: "fixed" "harm" +}
{===>} nmr.sani.axis="harm";

{* Class 1 *}

{* susceptability anisotropy restraints file *}
{===>} nmr.sani.file.1="";
{* susceptability anisotropy potential *}
{+ choice: "harmonic" "square" +}
{===>} nmr.sani.pot.1="harmonic";
{* susceptability anisotropy initial force value *}
{===>} nmr.sani.force.init.1=0.01;
{* susceptability anisotropy final force value *}
{===>} nmr.sani.force.finl.1=50.0;
{* susceptability anisotropy coefficients *}
{* coef:   ;
   a0+a1*(3*cos(theta)^2-1)+a2*(3/2)*sin(theta)^2*cos(2*phi) *}

{* DFS = a0 *}
{===>} nmr.sani.coef.1.1=-0.0601;
{* axial = a0-a1-3/2*a2 *}
{===>} nmr.sani.coef.2.1=-8.02;
{* rhombicity = a2/a1 *}
{===>} nmr.sani.coef.3.1=0.4;

{======================== other restraint data ========================}

{* dihedral angle restraints file *}
{* Note: the restraint file MUST NOT contain restraints 
         dihedral or end *}
{===>} nmr.cdih.file="CNS_talos30.tbl";

{* DNA-RNA base planarity restraints file *}
{* Note: include weights as $pscale in the restraint file *}
{===>} nmr.plan.file="";
{* input planarity scale factor - this will be written into $pscale *}
{===>} nmr.plan.scale=150;

{* NCS-restraints file *}
{* example is in inputs/xtal_data/eg1_ncs_restrain.dat *}
{===>} nmr.ncs.file="";

{======================== input/output files ==========================}

{* base name for input coordinate files *}
{===>} pdb.in.name="";

{* base name for output coordinate files *}
{===>} pdb.out.name="shortcp12_noe5778_talos30";

{===========================================================================}
{         things below this line do not normally need to be changed         }
{         except for the torsion angle topology setup if you have           }
{         molecules other than protein or nucleic acid                      }
{===========================================================================}
flg.cv.flag=false;
flg.cv.noe=false;
flg.cv.coup=false;
flg.cv.cdih=false;
flg.dgsa.flag=false;
nmr.cv.numpart=10;

 ) {- end block parameter definition -}

checkversion 1.2

evaluate ($log_level=quiet)

structure 
   if  (&struct.1 # "") then
      @@&struct.1 
   end if
   if  (&struct.2 # "") then
      @@&struct.2 
   end if
   if  (&struct.3 # "") then
      @@&struct.3 
   end if
   if  (&struct.4 # "") then
      @@&struct.4 
   end if
   if  (&struct.5 # "") then
      @@&struct.5 
   end if
end

if ( &BLANK%pdb.in.file.1 = false ) then
   coor @@&pdb.in.file.1
end if
if ( &BLANK%pdb.in.file.2 = false ) then
   coor @@&pdb.in.file.2
end if
if ( &BLANK%pdb.in.file.3 = false ) then
   coor @@&pdb.in.file.3
end if

parameter
   if (&par.1 # "") then
      @@&par.1
   end if
   if (&par.2 # "") then
      @@&par.2
   end if
   if (&par.3 # "") then
      @@&par.3
   end if
   if (&par.4 # "") then
      @@&par.4
   end if
   if (&par.5 # "") then
      @@&par.5
   end if
end

if ( $log_level = verbose ) then
  set message=normal echo=on end
else
  set message=off echo=off end
end if

parameter                  
   nbonds
      repel=0.80
      rexp=2 irexp=2 rcon=1.
      nbxmod=3
      wmin=0.01
      cutnb=6.0 ctonnb=2.99 ctofnb=3.
      tolerance=1.5
   end
end

{- Read experimental data -}

   @CNS_NMRMODULE:readdata ( nmr=&nmr;
                             flag=&flg;
                             output=$nmr; )

{- Read and store the number of NMR restraints -}

   @CNS_NMRMODULE:restraintnumber ( num=$num; )
    
{- Set mass values -}
  
do (fbeta=10) (all)
do (mass=100) (all)
  
evaluate ($nmr.trial.count = 0)    {- Initialize current structure number   -}
evaluate ($nmr.accept.count = 0)   {- Initialize number accepted            -}
evaluate ($nmr.counter  = 0)
evaluate ($nmr.prev.counter = -1)
  
@CNS_NMRMODULE:initave  ( ave=$ave;
                          ave2=$ave2;
                          cv=$cv;
                          ener1=$ener1;
                          ener2=$ener2;
                          flag=&flg;
                          nmr.prot=&nmr.prot; )
        
{- Zero the force constant of disulfide bonds. -}
parameter
   bonds ( name SG ) ( name SG ) 0. TOKEN 
end
  
{- define a distance restraints for each disulfide bond, i.e., 
   treat it as if it were an NOE. -}
for $ss_rm_id_1 in id ( name SG ) loop STRM
  for $ss_rm_id_2 in id ( name SG and 
     bondedto ( id $ss_rm_id_1 )  ) loop STR2
    if ($ss_rm_id_1 > $ss_rm_id_2) then
      pick bond ( id $ss_rm_id_1 ) ( id $ss_rm_id_2 ) equil
      evaluate ($ss_bond=$result) 
      noe 
         assign ( id $ss_rm_id_1 ) ( id $ss_rm_id_2 ) $ss_bond 0.1 0.1
      end 
    end if
  end loop STR2
end loop STRM

{- Count the number of residues and determine molecule type -}
identify (store9) (tag)
evaluate ($nmr.rsn.num = $SELECT)
identify (store9) ( tag and ( resn THY or resn CYT or resn GUA or
                              resn ADE or resn URI ))
evaluate ($nmr.nucl.num = $SELECT)    
  
{- Improve geometry for torsion angle molecular dynamics -}
evaluate ($flag_tad=false)
if ( &md.type.hot = "torsion" ) then
   if ($nmr.nucl.num > 0) then
      flag exclude * include bond angl impr dihed vdw end 
      minimize powell nstep=2000 drop=10.  nprint=100 end
   else
      flag exclude * include bond angl impr vdw end 
      minimize powell nstep=2000 drop=10.  nprint=100 end
   end if
   evaluate ($flag_tad=true) 
end if
  
if ( &md.type.cool="torsion") then
   evaluate ($flag_tad=true)
end if
  
if (&nmr.dani.axis = "harm") then
   do (harmonic=20.0) (resid 500 and name OO)
   do (harmonic=0.0) (resid 500 and name Z )
   do (harmonic=0.0) (resid 500 and name X )
   do (harmonic=0.0) (resid 500 and name Y )
   do (harmonic=0.0) (not (resid 500))
   restraints harmonic exponent=2 end
elseif (&nmr.sani.axis = "harm") then
   do (harmonic=20.0) (resid 500 and name OO)
   do (harmonic=0.0) (resid 500 and name Z )
   do (harmonic=0.0) (resid 500 and name X )
   do (harmonic=0.0) (resid 500 and name Y )
   do (harmonic=0.0) (not (resid 500))
   restraints harmonic exponent=2 end
end if
  
do (refx=x) ( all )
do (refy=y) ( all )
do (refz=z) ( all )
          
set seed=&md.seed end
  
{- Begin protocol to generate structures -- loop until done -}
while (&pdb.end.count > $nmr.counter) loop main

   {- Set parameter values -}
   parameter                  
      nbonds
         repel=0.80
         rexp=2 irexp=2 rcon=1.
         nbxmod=3
         wmin=0.01
         cutnb=6.0 ctonnb=2.99 ctofnb=3.
         tolerance=1.5
      end
   end
  
   evaluate ($nmr.trial.count = $nmr.trial.count + 1)
     
   if (&md.type.initial = "coord") then
      if ($nmr.trial.count < &pdb.end.count) then
         evaluate ($coor_count = $nmr.trial.count)
         evaluate ($coor_count_init=0.)
      else
         evaluate ($coor_count_init=$coor_count_init+1)
         evaluate ($coor_count = $coor_count_init)
         if ($coor_count_init > &pdb.end.count ) then
            evaluate ($coor_count = 1)
         end if
      end if
      set remarks=reset end 
      evaluate ($in_file = &pdb.in.name + "_" + encode($coor_count) + ".pdb")
      coor @@$in_file
   else
      do (x=refx) ( all )
      do (y=refy) ( all )
      do (z=refz) ( all )
   end if
  
   if (&nmr.dani.axis = "fixed" ) then
      fix
         select=(resname ANI)
      end
   elseif (&nmr.sani.axis = "fixed" ) then
      fix
         select=(resname ANI)
      end
   end if
  
   do ( vx = maxwell(0.5) ) ( all )  
   do ( vy = maxwell(0.5) ) ( all )  
   do ( vz = maxwell(0.5) ) ( all ) 
  
   flags exclude * 
         include bond angle dihe impr vdw 
                 noe cdih coup oneb carb ncs dani 
                 sani harm end

   {- scaling of nmr restraint data during hot dynamics -}
     
   @CNS_NMRMODULE:scalehot ( md=&md;
                             nmr=&nmr;
                             input.noe.scale=&md.hot.noe;
                             input.cdih.scale=&md.hot.cdih; )

   {- Zero the force constant of disulfide bonds. -}
   parameter
      bonds ( name SG ) ( name SG ) 0. TOKEN 
   end
   
   if ($flag_tad=true) then
   
      {- initialize torsion dynamics topology for this iteration -} 
      
      dyna torsion
         topology
            maxlength=&md.torsion.maxlength
            maxtree=&md.torsion.maxtree
            {- All dihedrals w/ (force constant > 23) will be locked -}
            {- This keeps planar groups planar -}
            kdihmax = 23.
            @CNS_TOPPAR:torsionmdmods
         end
      end
   end if
         
{- High temperature dynamics -}
  
   if ( &md.type.hot = "torsion" ) then
  
      igroup
     interaction (chemical h* ) (all) weights * 1 vdw 0. elec 0. end
     interaction (not chemical h* ) (not chemical h*) weights * 1 vdw &md.hot.vdw
     end
      end
    
      dyna torsion
         cmperiodic=500
         vscaling = false
         tcoupling = true   
         timestep = &md.hot.ss        
         nstep = &md.hot.step   
         nprint = 50
         temperature = &md.hot.temp   
      end
   else
      evalutate ($md.hot.nstep1=int(&md.hot.step* 2. / 3. ))
      evalutate ($md.hot.nstep2=int(&md.hot.step* 1. / 3. ))
      noe asymptote * 0.1  end
      parameter  nbonds repel=1.   end end 
      igroup
     interaction (chemical h* ) (all) weights * 1 vdw 0. elec 0. end
     interaction (not chemical h* ) (not chemical h*) weights * 1 angl 0.4 impr 0.1 
                 vdw &md.hot.vdw end
      end
  
      dynamics cartesian  
         cmperiodic=500
         vscaling = true
         tcoupling=false
         timestep=&md.hot.ss
         nstep=$md.hot.nstep1
         nprint=50
         temperature=&md.hot.temp
      end
  
      noe asymptote * 1.0  end
      igroup
     interaction (chemical h* ) (all) weights * 1 vdw 0. elec 0. end
     interaction (not chemical h* ) (not chemical h*) weights * 1 vdw &md.hot.vdw end
      end
  
      dynamics cartesian
         cmperiodic=500
         vscaling = true
         tcoupling=false
         timestep=&md.hot.ss
         nstep=$md.hot.nstep2
         nprint=50
         temperature=&md.hot.temp
      end
  
   end if
    
{- The first slow-cooling with torsion angle dynamics -}
   
   flags include plan end
  
   {- Increase the disulfide bond force constants to their full strength -}
   parameter
      bonds ( name SG ) ( name SG ) 1000. TOKEN 
   end
   
   evaluate ($final_t = 0)    
   
   evaluate ($ncycle = int((&md.cool.temp-$final_t)/&md.cool.tmpstp))
   evaluate ($nstep = int(&md.cool.step/$ncycle))
   
   evaluate ($ini_vdw =  &md.hot.vdw)
   evaluate ($fin_vdw =  &md.cool.vdw)
   evaluate ($vdw_step = ($fin_vdw-$ini_vdw)/$ncycle)
  
   if (&md.type.cool = "cartesian") then

      evaluate ($vdw_step = (&md.cool.vdw/&md.hot.vdw)^(1/$ncycle))
      evaluate ($ini_rad  = 0.9)
      evaluate ($fin_rad  = 0.8)
      evaluate ($rad_step = ($ini_rad-$fin_rad)/$ncycle)
      evaluate ($radius=    $ini_rad)
  
      do (vx=maxwell(&md.cool.temp)) ( all )
      do (vy=maxwell(&md.cool.temp)) ( all )
      do (vz=maxwell(&md.cool.temp)) ( all )
  
   end if
        
   {- set up nmr restraint scaling -}
     
   evaluate ($kdani.inter.flag=false)
   evaluate ($ksani.inter.flag=false)
   evaluate ($kdani.cart.flag=false)
   evaluate ($ksani.cart.flag=false)
   if (&md.cart.flag=true) then
      evaluate ($kdani.inter.flag=true)
      evaluate ($ksani.inter.flag=true)
      @CNS_NMRMODULE:scalecoolsetup ( kdani=$kdani;
                                      ksani=$ksani;
                                      nmr=&nmr;
                                      input.noe.scale=&md.cool.noe;
                                      input.cdih.scale=&md.cool.cdih;
                                      input.ncycle=$ncycle; )
      evaluate ($kdani.cart.flag=true)
      evaluate ($ksani.cart.flag=true)
   else
      @CNS_NMRMODULE:scalecoolsetup ( kdani=$kdani;
                                      ksani=$ksani;
                                      nmr=&nmr;
                                      input.noe.scale=&md.cool.noe;
                                      input.cdih.scale=&md.cool.cdih;
                                      input.ncycle=$ncycle; )
   end if
  
   evaluate ($bath  = &md.cool.temp)
   evaluate ($k_vdw = $ini_vdw)
  
   evaluate ($i_cool = 0)
   while ($i_cool <= $ncycle) loop cool  
      evaluate ($i_cool = $i_cool + 1)
  
      igroup 
         interaction (chemical h*) (all) weights * 1 vdw 0. elec 0. end 
         interaction (not chemical h*) (not chemical h*) weights * 1 vdw $k_vdw end 
      end
       
      if ( &md.type.cool = "torsion" ) then
    dynamics  torsion
       cmremove=true
       vscaling = true
       tcoup = false     
       timestep = &md.cool.ss  
       nstep = $nstep   
       nprint = $nstep
       temperature = $bath  
    end
      else
    dynamics  cartesian
       cmremove=true
      vscaling = true
       tcoup = false     
       timestep = &md.cool.ss     
       nstep = $nstep   
        nprint = $nstep
       temperature = $bath     
    end
      end if
   
      if (&md.type.cool = "cartesian") then
      evaluate ($radius=max($fin_rad,$radius-$rad_step))
     parameter  nbonds repel=$radius   end end
         evaluate ($k_vdw=min($fin_vdw,$k_vdw*$vdw_step))
      else
         evaluate ($k_vdw= $k_vdw + $vdw_step)
      end if
      evaluate ($bath  = $bath  - &md.cool.tmpstp)       
        
      @CNS_NMRMODULE:scalecool ( kdani=$kdani;
                                 ksani=$ksani;
                                 nmr=&nmr; )
  
   end loop cool
    
{- A second slow-cooling with cartesian dyanmics -}
       
   evaluate ($flag_cart=false)
   if (&md.cart.flag=true) then
      if (&md.type.cool = "torsion") then
  
         evaluate ($flag_cart=true)
           
         dynamics torsion
         topology
            reset
         end
      end
  
         evaluate ($cart_nucl_flag=false)
         if ($nmr.nucl.num > 0) then
            evaluate ($cart_nucl_flag=true)
            parameter
               nbonds
                  repel=0
                  nbxmod=5
                  wmin=0.01
                  tolerance=0.5
                  cutnb=11.5 ctonnb=9.5 ctofnb=10.5
                  rdie vswitch switch
               end
            end
            flags include elec end
         end if
  
      evaluate ($ncycle=int((&md.cart.temp-$final_t)/&md.cart.tmpstp))
      evaluate ($nstep=int(&md.cart.step/$ncycle))
 
      evaluate ($vdw_step=(&md.cart.vdw.finl/&md.cart.vdw.init)^(1/$ncycle))
      evaluate ($ini_rad=0.9)
      evaluate ($fin_rad=0.8)
      evaluate ($rad_step=($ini_rad-$fin_rad)/$ncycle)
      evaluate ($radius=$ini_rad)
  
         @CNS_NMRMODULE:scalecoolsetup ( kdani=$kdani;
                                         ksani=$ksani;
                                         nmr=&nmr;
                                         input.noe.scale=&md.cart.noe;
                                         input.cdih.scale=&md.cart.cdih;
                                         input.ncycle=$ncycle; )
  
      do (vx=maxwell(&md.cart.temp)) ( all )
      do (vy=maxwell(&md.cart.temp)) ( all )
      do (vz=maxwell(&md.cart.temp)) ( all )
   
      evaluate ($bath=&md.cart.temp)
      evaluate ($k_vdw=&md.cart.vdw.init)
  
      evaluate ($i_cool = 0)
      while ($i_cool <= $ncycle) loop cart
         evaluate ($i_cool = $i_cool + 1)
  
         igroup
            interaction (chemical h*) (all) weights * 1 vdw 0. elec 0. end
            interaction (not chemical h*) (not chemical h*) weights * 1 vdw $k_vdw
            end
         end
   
         dynamics  cartesian
            vscaling = true
            tcoup = false
            timestep = &md.cart.ss
            nstep = $nstep
            nprint = $nstep
            temperature = $bath
         end
   
            if ($cart_nucl_flag=false) then
            evaluate ($radius=max($fin_rad,$radius-$rad_step))
            parameter  nbonds repel=$radius   end end
         end if
         evaluate ($k_vdw=min(&md.cart.vdw.finl,$k_vdw*$vdw_step))
         evaluate ($bath=$bath-&md.cart.tmpstp)
  
            @CNS_NMRMODULE:scalecool ( kdani=$kdani;
                                       ksani=$ksani;
                                       nmr=&nmr; )
   
      end loop cart
        
      end if
   end if
     
   {- reset torsion angle topology -}
   if ( $flag_tad=true ) then
      if ($flag_cart=false) then
         dynamics torsion 
            topology  
               reset  
            end  
         end
      end if
   end if
      
    
{- Final minimization -}
   
   {- turn on proton chemical shifts -}
  
   flags include prot end   
      
   noe             
      scale * &md.pow.noe 
   end
        
   restraints dihedral  
      scale = &md.pow.cdih  
   end
                
   igroup interaction ( all ) ( all ) weights * 1 end end
  
   evaluate ($count=0 )
   evaluate ($nmr.min.num=0.)
   while (&md.pow.cycl > $count) loop pmini
   
      evaluate ($count=$count + 1)
      minimize powell nstep=&md.pow.step drop=10.0 nprint=25 end 
      evaluate ($nmr.min.num=$nmr.min.num + $mini_cycles)
       
   end loop pmini
     
   {- translate the geometric center of the structure to the origin -}
   if ($num.dani > 0. ) then
   elseif ($num.sani > 0. ) then
   else
      show ave ( x ) ( all )
      evaluate ($geom_x=-$result)
      show ave ( y ) ( all )
      evaluate ($geom_y=-$result)
      show ave ( z ) ( all )
      evaluate ($geom_z=-$result)
      coor translate vector=( $geom_x $geom_y $geom_z ) selection=( all ) end
   end if
   
   @CNS_NMRMODULE:printaccept ( ave=$ave;                 
                                ave2=$ave2;               
                                cv=$cv;                   
                                ener1=$ener1;               
                                ener2=$ener2;             
                                flag=&flg;               
                                md=&md;
                                nmr=&nmr;
                                num=$num;                 
                                output=$nmr;           
                                pdb=&pdb;  )
  
end loop main
  
   @CNS_NMRMODULE:calcave ( ave=$ave;                 
                            ave2=$ave2;               
                            cv=$cv;                   
                            ener1=$ener1;               
                            ener2=$ener2;             
                            flag=&flg;               
                            md=&md;
                            nmr=&nmr;
                            num=$num;                 
                            output=$nmr;           
                            pdb=&pdb;  )
 
        
stop



Please acknowledge these references in publications where the data from this site have been utilized.

Contact the webmaster for help, if required. Friday, February 23, 2018 6:21:14 AM CST (wattos1)