# YASARA MACRO # TOPIC: 5. Structure prediction # TITLE: Building a homology model quickly # REQUIRES: Structure # AUTHOR: Elmar Krieger # LICENSE: GPL # DESCRIPTION: This macro builds a homology model using a FASTA sequence of the target, and optionally template structures and alignments. It takes some shortcuts (alignment quality, number of templates, refinement) to finish as quickly as possible # Parameter section - adjust as needed, but NOTE that some changes only take effect # if you start an entirely new modeling job, not if you continue an existing one. # ================================================================================= # You can either set the target structure 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 '/home/myname/projects/homologymodels/t0120' # Number of PSI-BLAST iterations psiblasts=3 # Maximum PSI-BLAST Evalue allowed for templates evalue=0.1 # Maximum number of PDB templates to use templates=3 # Maximum number of ambiguous alignments to consider per template alignments=1 # Maximum oligomerization state, build at most tetrameric models oligostate=4 # Maximum number of unaligned loop residues to add to the termini termextension=10 # Normally no change required below this point # Sanity checks if MacroTarget=='' RaiseError "This macro requires a target. Either edit the macro file or click Options > Macro > Set target to choose a target sequence" Clear # Do we have a target sequence? command1='pass' seqfilename='(MacroTarget).fasta' seq = FileSize (seqfilename) if seq # Yes, create a command to specify the sequence file command1='SequenceFile (seqfilename)' # Do we have alignments? alifilename='(MacroTarget)_align.fasta' ali = FileSize (alifilename) if ali # Yes, use the alignments instead of the target sequence command1='AlignFile (alifilename)' if !seq and !ali RaiseError 'Neither a sequence file (seqfilename), nor an alignment file (alifilename) was found, no model can be built' # Do we have templates? command2='pass' for i=001 to 999 for ext in 'yob','pdb' tmpfilename='(MacroTarget)_t(i).(ext)' tmp = FileSize (tmpfilename) if tmp # Load template and name it T001.. tmp = Load(ext) (tmpfilename) NameObj (tmp),T(i) # Create command to select all templates command2='TemplateObj all' # Template found, try next continue 2 break # Build the model Experiment HomologyModeling # Specify either a target sequence or an alignment file (command1) # Specify any templates that have been loaded (command2) # Set parameters defined at the beginning # Number of PSI-BLAST iterations PsiBLASTs (psiblasts) # The maximum PSI-BLAST Evalue (minimum can be set to avoid easy models) EValue Max=(evalue),Min=0 # Maximum oligomerization state OligoState (oligostate) # Maximum number of templates to consider, and how many with the same sequence Templates (templates),SameSeq=1 # Maximum number of ambiguous alignments to consider per template Alignments (alignments) # Maximum number of terminal loop residues TermExtension (termextension) # Speed of modeling: 'Fast' means that shortcuts will be taken Speed fast # Speed of animations: fast/normal/slow Animation fast # Number of samples to try per loop (see OptimizeLoop command) LoopSamples 25 # The common start for result filenames ResultFile (MacroTarget) # Uncomment below to add alignment anchors, see Recipes > Build a protein model > Useful hints # Equivalence Target=DHFGRER,Template=FDGFHGR # Uncomment below if you do not want to access PDB_REDO # PDBREDO No # Uncomment below to select certain template residues for deletion, e.g. het-groups # DelTemplateRes Hetgroup # Uncomment below to save time by disabling the protein modeling report # Report no Experiment On Wait ExpEnd # Exit YASARA if this macro was provided as command line argument in console mode and not included from another macro if runWithMacro and ConsoleMode and !IndentationLevel Exit # Show protein modeling report if present (can be disabled with Report no) reported=FileSize (MacroTarget).html if reported and !ConsoleMode ShowURL file://(MacroTarget).html