# YASARA MACRO # TOPIC: 5. Structure Determination # TITLE: Solve an NMR structure with fixed quality # REQUIRES: YASARA Structure and NMR Structure Determination Module # AUTHOR: Elmar Krieger, Sander Nabuurs, Chris Spronk # LICENSE: GPL # DESCRIPTION: This macro solves an NMR structure based on a protein sequence and a restraint file in XPLOR format. Contrary to the normal nmr_solve macro, it refines only those structures in water, that match a quality criterion, and performs an unlimited number of folding runs until the ensemble has the requested size # To solve a structure with fixed quality, you need: # - The protein sequence, in FASTA or PDB format, # default filenames are 'sequence.pdb' or 'sequence.fasta' # - 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, # by providing it as command line argument (see docs at Essentials > The command line), # or by uncommenting the line below and specifying it directly. #macrotarget = 'c:\MyProject\1crn' # If you want to change the defaults, do it here # (look in nmr_setdefaults to see what you can change) # Number of structures in the ensemble ensemblesize=10 # Fold the structure from the stretched out conformation structures=ensemblesize include nmr_fold # Continue indefinitely until we have enough structures try=1 current=001 defaultscalebak()=defaultscale while current<=ensemblesize # Fold only one structure at a time start=current structures=1 # To avoid infinite loops, we slightly increase the scaling factors with every try # (and most importantly, this also makes sure that every structure is different) defaultscale=defaultscalebak+0.1*try # Create something that looks like a real protein by in vacuo refinement include nmr_refinevacuo # Load the best structure from in vacuo refinement Clear LoadPDB (ensemblefile)(current) Load(restrainformat) (restrainfile),1,NameFormat=(nameformat) # See if it's acceptable, dissum,dismax,dihsum,dihmax,rdcsum,rdcmax = RestViol if dismax