# YASARA MACRO # TOPIC: 5. Structure Determination # TITLE: Refine an NMR ensemble in vacuo # REQUIRES: YASARA Structure and NMR Structure Determination Module # AUTHOR: Elmar Krieger, Sander Nabuurs, Chris Spronk # LICENSE: GPL # DESCRIPTION: This macro refines a roughly folded structure in vacuo to create a realistic fold # To refine an ensemble in vacuo, you need: # - An ensemble of roughly folded structures in PDB format # default filenames are 'ensemble001.pdb', 'ensemble002.pdb' etc. # - A file with distance and dihedral angle restraints, # default filename is 'restraints.tbl' # # You can either set the target by clicking on Options > Macro > Set target, # or by uncommenting the line below and specifying it directly. #macrotarget = 'c:\MyProject\1crn' # If you want to change the defaults, do it here, before the defaults are included. # (look in nmr_setdefaults to see what you can change) # Set those defaults that have not been set already include nmr_setdefaults # Step 2: Proceed to a realistic structure by in vacuo simulation with NOVA # ========================================================================= # Having created the approximate protein fold, the next step is to # increase the resolution and let the hydrogen bonds snap into place. RestrainPar (defaultpar) SimSteps 10 Console Off LogAs (logfile),append=yes,print 'In vacuo refinement:' for i=start to start+structures-1 Clear # Load the ensemble member, maybe the user just started here size = FileSize (ensemblefile)(i) if size LoadPDB (ensemblefile)(i) else LoadPDB (ensemblefile)(start) # Correction of naming deviations (Val/Leu) could be useful, but Clean may do too much #Clean LogAs (logfile),append=Yes,print ' Ensemble structure (i):' # This is done in vacuo with YASARA. At this stage, speed is more important # than accuracy, so a very small 5.24 A cutoff is used. ForceField YASARA Cutoff 5.24 TimeStep 2,0.75 Cell Auto,Extension=20,Scale=Yes # Load the restraints RestrainPot (defaultpot) LoadTbl (restrainfile),1 ScaleRest (defaultscale) # Exclude non-bonded interactions for now Interactions Bond,Angle,Dihedral,Planarity Temp (500+i*10)K # To avoid simulation failures due to excess restraining forces, # brake every 200th fast atom Brake (Atoms/200) # Correct cis-peptide bonds and wrong isomers by applying a force CorrectCis byForce,Proline=(correctcispro) CorrectIso byForce CorrectConv On Sim On ShowMessage 'Initial steepest descent minimization...' TempCtrl SteepDes for j=1 to 1000 Wait 1 if SpeedMax<4000 break # Shake it a bit ShowMessage 'Relaxing structure without non-bonded interactions...' TempCtrl Reassign Wait 20 # Now comes the 'trick': the non-bonded interactions are slowly added, # which causes the protein to blow up to a realistic volume. The first # time, this may trap part of the peptide chain at the wrong spot, # that's why the cycle is repeated until not improvement is found for # 'failuresmax' times. failuresmax=4 # To avoid loose structures, we don't use a 'radius of gyration' refinement, # but instead start pulling a bit earlier _,_,offset=RestrainPot RestrainPot SqOffset=(0.5+offset) # First everything, then only the sidechains for fixed in 'none','backbone' FixAtom (fixed) bestenergy=1e100 bestenergyshown='not yet determined' failures=0 while failures1 Interactions Bond,Angle,Dihedral,Planarity,VdW,Coulomb # Short MD TempCtrl Reassign Wait (waitlist(k)) # Show secondary structure changes Style Ribbon,Stick violenergy=RestEnergy if violenergy7 break bestenergyshown=0.00+bestenergy