Epi-Graft MultiGraft User's Guide
Yih-En Andrew Ban
Last Revision: 20080302
----------------------------

Notes: this is still a rough draft, please continue to add (or rewrite!) as
necessary.  It might be a good idea to switch to a document in pdf.  It's
hard to format well in a plain text file.


< MultiGrafting Main Pipeline >

[ Ab-epitope Optimize Stage ]
  never used in regular grafting protocol scaffolds
  typically only for superposition or hybrid superposition+grafting protocol scaffolds
  performs chi minimize of Ab and epitope sidechains (w/ optional rb minimize)

[ Closure Stage ]
  __
  | optional rigid-body perturb non-closed loops prior to a build attempt
  | build loops @ centroid level (fragment insertion + ccd)
  --
  refine closed loops @ fullatom level (small + shear + ccd + min)

[ Design Stage ]
  design with Ab in place

[ Finalization Stage ]
  refine loops @ fullatom level with Ab in place

< MultiGrafting Quality Control Pipeline >
  refine loops @ fullatom level without Ab and report clash against Ab


< Pipeline Notes >
 - closure is governed by both a linear chainbreak score and a local rama score
 - be aware that the loop and ccd protocols used are not standard Rosetta
 - by default nothing in the main pipeline is switched on, you must explicitly switch on
   the steps you want to use
 - if design stage has been reached in the Main pipeline, then the steps in the Quality Control pipeline
   are always performed unless switched off


< IMPORTANT NOTES on MultiGraft Behavior >
 In all stages except for Ab-epitope Optimize Stage:
  - epitope sidechains are *fixed* throughout the procedures unless you specify '-repack_epitope'
  - Ab sidechains are *fixed* throughout the procedures unless you specify '-repack_Ab'


< Switches >

  [ Main Modes ]
                       '-epi_graft -help' : list switches and defaults
  '-epi_graft -help -external_graft_info' : help on format for external graft info
                 '-epi_graft -multigraft' : activate main multigraft mode

  [ Convenience ]
     '-dump_predesign <string>' : dumps predesign structure with indicated growth/removal adjustments from
                                  graft info, use with only a single match result

  [ Required Options ]
                     '-nres_Ab' : number of resides in Antibody
     '-native_complex <string>' : filename of native antibody-antigen complex (default 'native_complex.pdb'),
                                  Ab must be first!
        '-loop_ranges <string>' : filename of epitope loop ranges (default 'loop_ranges.txt')
         '-input_file <string>' : filename of input file containing match results

  [ Optional Input ]
     '-keep_natro <string>' : file containing specific residues where sidechains need to be kept native rotamer
                              (otherwise entire range of epitope loop is taken as native rotamer)
        '-input_pdb_has_Ab' : input scaffold pdbs have Ab in their file, so take rigid body orientation from that Ab
                '-Ab_first' : indicates antibody is first when scaffold files contain Ab
          '-scaffold_first' : indicates antigen/scaffold is first when scaffold files contain Ab
           '-vall <string>' : filename for Vall database
                              (needs to be in rosetta database directory, default vall.dat.pc60_2002-12-27_v01.2.gz)
'-use_old_graft_info_format': input file has old graft info format (true/false columns as opposed to
                              instructions encoded by character strings)
   '-no_micromanage_termini': when building initial predesign structure of n2c/c2n, do not attempt dihedral
                              preservation at the merge point

  [ Output ]
     '-output_file <string>' : filename of output file containing summary and individual
                               closure/design information (default 'multigraft_results.out')
        '-batch_id <string>' : prefix that will be attached to pdb output file (default is no batch_id)
'-override_pdb_output_path <string>' : overrides the standard rosetta pdb output path in paths.txt
                        '-dump_closed' : dump all closed structures
                    '-dump_someclosed' : dump structures with partial closures
'-dump_all_closure_attempt_structures' : dump all closure attempts, regardless of closure status

  [ Checkpointing ]
      '-checkpoint' : checkpoint filename (for running on cluster)

  [ Protocol Control ]
              '-build_loops' : centroid level build
             '-refine_loops' : full-atom refine after centroid level build
     '-design_after_closure' : design after successful closure attempt
'-refine_with_Ab_after_design' : attempt refine with antibody after design
     '-ignore_build_failure' : currently UNUSED
    '-ignore_refine_failure' : currently UNUSED
                    '-do_QC' : do quality control (step that refines without Ab to see if conformation without Ab
                               causes clash)

  [ Global Closure Control ]
     '-max_chainbreak_score' : maximum chainbreak score that indicates closure (default 0.008)
           '-max_local_rama' : maximum allowed rama score per moveable residue for a loop
                               to be considered closed (default 5.0)

  [ Initial Geometry Optimization : WARNING EXPERIMENTAL ]
     '-epitope_rb_optimize' : rigid body optimize (mc + optional min) initial epitope versus scaffold
       '-epitope_rb_cycles' : number of cycles to rigid body optimize (default 1)
          '-epitope_rb_min' : turn on minimization during rigid body optimize
     '-Ab_epitope_optimize' : optimize Ab-epitope interaction before going into protocol (primarily to be
                              used for superposition scaffolds)
'-Ab_epitope_optimize_including_rb' : Same as '-Ab_epitope_optimize', but also allow rigid body minimization.
                                     Turning on this option implies '-Ab_epitope_optimize'.

  [ Closure : centroid + fullatom ]
           '-closure_attempts' : number of times to attempt centroid + fullatom closure (default 25)
       '-closure_reset_period' : number of closure attempts before any remaining broken chainbreaks are
                                 reset to their original state (helps avoid getting trapped in minima) (default 3)
      '-store_n_best_closures' : number of best closed epitope-scaffolds to store (default 5)
               '-build_cycles' : number of cycles per build (default 10)
              '-refine_cycles' : number of cycles per refine (default 3)
            '-use_fast_refine' : decrease number of internal cycles during refine
      '-refine_with_minrepack' : refine loops using min-repack procedure
              '-graft_with_Ab' : attempt closure with Ab attached
               '-close_as_GLY' : use all-GLY scaffold when closing (otherwise default is all-ALA with
	       		       	 GLY at native gly positions)
                '-grow_as_GLY : use GLY when growing new residues at closure tips (otherwise default is all-ALA)
      '-no_fragment_insertion' : do not use fragment insertion during the centroid level build step
'-use_sequence_biased_fragments' : use amino acid identity string in graft info when picking fragments
'-allow_any_ss_during_fragment_insertion' : during centroid level build step, moveable residues are marked
                                            with 'D' (degenerate) secondary structure, and as a result
                                            fragments including these moveable residues are picked with
                                            disregard to the secondary structure of those positions
 '-rotation_perturb_magnitude' : max rotation magnitude in degrees when using rigid-body perturbation of
                                 epitope component
'-translation_perturb_magnitude' : max translation magnitude in angstroms when using rigid-body perturbation
                                   of epitope component
    '-scan_randomize_moveable' : Randomize number of moveable residues to the left and right of the cut.
   '-scan_randomize_cutpoints' : Randomize cutpoints.  This is incompatible with -scan_randomize_moveable.
          '-scan_randomize_ss' : Randomize secondary structure in moveable residues of broken loops by
                                 choose a random amount of ss content (either loop, 'L', or any, 'D')
                                 for a contiguous stretch.  All remaining residues on the left and right are
                                 set to the secondary structure of the first left/right non-moveable residue,
                                 assuming that second and third left/right non-moveable residues have the
                                 same secondary structure, otherwise ss is set to loop.
    '-scan_ss_minimum_content' : minimum amount of secondary structure content for the contiguous stretch when
                                 scanning
            '-scan_ss_use_any' : use any secondary structure when scan randomizing instead of loop

  [ Design ]
           '-design_attempts' : number of times to attempt design of a closed epitope-scaffold
                                and take best attempt (default 3)
      '-store_n_best_designs' : number of best designed epitope-scaffolds to store (default 1)
            '-repack_epitope' : repack epitope during design
                 '-repack_Ab' : repack Ab during design
     '-allow_AA_inter_design' : allow ALLAA for inter- design positions
       '-intra_design_cutoff' : distance cutoff for deciding on intra- design positions (default 4.0)
       '-inter_design_cutoff' : distance cutoff for deciding on inter- design positions (default 4.0)
          '-Ab_repack_cutoff' : distance cutoff for deciding on Ab repack positions (default 4.5)

   [ Export ]
            '-export_resfile' : export resfile for designed epitope scaffold
          '-export_blueprint' : export blueprint for designed epitope scaffold


< Recommended Rosetta options to use with Epi-Graft >

  - Try either '-use_non_monotone_line_search' or '-use_inexact_line_search' for improved minimization
    during full-atom refinement stages.
  - '-ex1', '-ex1aro', -ex2', '-extrachi_cutoff 0' for additional rotamers during design.



< File Formats >

  [ native antibody-antigen complex pdb ]
   PDB file, Ab must be first!  Residues in antigen/epitope section must be
   in proper numerical order, e.g. 34, 35, 100, 101 .. to N.  Residue numbers
   themselves don't have to run from 1 to N.  All residues specified in each
   of the 'full ranges' in the loop ranges file must be in the antigen/epitope
   section.

  [ loop ranges file ]
   example:

   loop: 1
   full_range: 362 376
   nranges: 3
   range: 362 376
   range: 364 371
   range: 367 372

   loop: 2
   full_range: 277 284
   nranges: 2
   range: 279 284
   range: 278 281

  [ loop ranges file if using SS_align ]

   file must contain a line of the following form indicating the native
   epitope residues to be used in SS_align superposition:

   superposition_residues: 362 363 366 370

  [ keep natro file ]

   Use this file to indicate if there are specific residues you want to transfer when grafting
   the epitope.  '#' at beginning of line specifies a comment line and is skipped.  Input
   format is one residue number per line and use the native numbering (insertion codes not
   supported) of the epitope, e.g.:

     362
     363
     365
     367
     475
     476
     477

  [ input file format ]

   Typically this file contains match results that come from the Epi-Graft Match run
   but with removal of all data columns AFTER the last translation entry 'T_z'.  All of
   the data columns such as 'overall_rms' cannot be in the input file!

   It's also possible to construct a minimal file yourself as follows without any of the
   rotation/translation/dihedral information:

   '#' at beginning of line specifies comment line and is skipped
   columns/example:

   # filename   loop_id   alignment_system   gap_begin   gap_end   native_loop_begin   native_loop_end
     2ny7.pdb         1              N2C_N         168       182                 362               376

   - 'alignment_system' is one of:  N2C_N, N2C_CA, N2C_C, C2N_N, C2N_CA, C2N_C, S, E
   - 'loop_id' should be internally consistent to the file, but regardless the program will figure out
     and correct the loop id dependent upon the given loop ranges file
   - 'gap_begin/end' are residues on the scaffold
   - 'native_loop_begin/end' specifies the residues on the epitope in native numbering

   The next section details additional columns and characters that may be tacked onto an input line
   to indicate whether or not backbone and sidechains should be grafted, and which secondary structure,
   grow/delete/moveable residues, and amino acid identities to use.


  [ additional graft info using character instructions ]

   These additional columns, which are optionally present at the end of a match result line in the
   input file, indicates the type of grafting to perform on an epitope.  E.g. whether or not to
   transfer bb/sc, how many residues to allow move and how many to grow/remove at the tips of closures,
   secondary structure, and amino acid identities of epitope and closures.  The '$' symbol is REQUIRED
   to separate the match result columns and the graft info columns, since the number of match result
   columns and graft info columns can be variable.  We present one example next, additional examples
   will be given at the end of this section:

#  ( match result columns )  $  keep/graft_bb keep/graft_sc  @  ssbm instructions  &  aai instructions
   ( scaff.pdb 362 379 ...)  $  graft_bb  graft_sc  @  ...xxx | llH*HH. | hhHH  &  WDExxx | pA.?.n. | ??.*

   The first two columns after the '$' indicate whether or not to graft backbone and sidechain.
      - for backbone valid settings are: 'graft_bb' and 'keep_bb'
      - for sidechain valid settings are 'graft_sc' and 'keep_sc'
   This is typically used when doing superposition protocol designs, sequential grafting (grafting
   one epitope loop at a time), or restarting from non-standard coordinates created elsewhere.

   The second set of entries is optional and describes the breakpoints, grow/delete/moveable, and secondary
   structure of the residues (termed 'ssbm' for the rest of this section).  The '@' symbol is REQUIRED to
   start the ssbm entries.  The ssbm section is split into three parts via the breaks, e.g.

       (running N -> C)       Scaffold_Left | Epitope | Scaffold_Right

   The possible operations are then via tether and linker residues.  Tether residues describe usage of
   existing scaffold and epitope residues, while linker residues describe usage of completely new, grown
   residues or deletion of residues.  So, the ssbm section can conceptually be split into the following
   parts where "s" refers to scaffold, "e" refers to epitope, "l" refers to linker and "t" refers to
   tether:

     s_left_t  s_left_l  |  e_left_l  e_left_t  e_fixed  e_right_t  e_right_l  | s_right_l  s_right_t

   Epitope linker residues can only describe growth, not deletion, therefore the 'x' character
   described below many not be used when dealing with the epitope.  The breakpoints govern the type of
   loop closures for the epitope.  A single loop closure may be used instead of a double loop closure,
   and rigid body movements may be used during double loop closures (see exposition below).

   The third set of entries is optional and describes the amino acid identities (termed 'aai' for the rest of
   this section).  The '&' symbol is REQUIRED to start the aai entries.  Currently, an aai section cannot
   be defined independently, it requires the existence of a prior ssbm section.  The aai section is also
   split into three parts via breaks, identical to the ssbm section.  If '-use_sequence_biased_fragments'
   is active, then the aai will be used for sequence biased fragment picking.  In that case, the
   characters '?', '*', and '.', will be ignored during sequence biased fragment picking (see below for
   character meanings).

   The ssbm and aai sections are independent of each other, which means that the total number of
   characters in the two sections may be of different lengths.  The only requirement is that both
   sections MUST have at least two breakpoint indicators.  It is not necessary to have instructions
   in all three parts (scaffold_left/epitope/scaffold_right) of the ssbm and aai,
   e.g.  both ' | llH*HH. | hhh '   and   ' | llH*HH | '   are valid.  Spaces are ignored in both
   sections, so they may be used to enhance readability if desired.  The program checks the validity
   of both ssbm and aai sections and will exit if it finds a problem.

   The full set of possible instructions follow:

    Secondary Structure/Break/Moveable Instructions
       special:
          @   start of ssbm characters
       break types:
          |   open break
          ^   open break, use rigid-body
          =   closed break
       general:
          *   freeze, no changes
          .   allow move, keep current secondary structure
       linker (newly grown or deleted residues):
          x   delete
          h   grow helix
          e   grow sheet
          l   grow loop
          d   grow any ("degenerate")
          g   grow, but not moveable; meant to be used as an override
              when restarting from external file (-restart_from) to
              prevent design runs from treating the residue as
              historically moveable and designing around its neighborhood
       tether (usage of residues already existing on epitope & scaffold):
          H   use helix
          E   use sheet
          L   use loop
          D   use any ("degenerate")


    Amino Acid Identity Instructions
       lower case or symbols:
          &   start of aai characters
          ?   keep protocol dictated default behavior
          *   freeze, no changes
          .   repack
          d   any amino acid ("degenerate")
          r   any amino acid except cys and pro ("restricted/regular degenerate")
          n   nonpolar
          a   aromatic
          p   polar
          c   charged
          +   positively charged
          -   negatively charged
       uppercase:
          ACDEFGHIKLMNPQRSTVWY   amino acid 1 letter codes
       dummy/ignored characters for readability to keep 1-1 with ssbm:
          | ^ = x


   ssbm - Defining different types of closures:
     In the following we illustrate the different breaks.
        .. | *** | ..   double break

        .. ^ *** ^ ..   double break, use rigid-body moves (two '^' must be used)

        .. = *** = ..   "double break" with both breaks artifically closed
                        if a side is indicated as artificially closed, the
                        secondary structure settings are ignored since nothing
                        is moving, HOWEVER they do have an influence on
                        whether a residue was originally "moveable", which can
                        have an effect during design (moveable residues are
                        designed)

        .. = *** | ..   "double" break" with left break closed, right break open

        .. | *** = ..   "double break" with right break closed, left break open

        .. = *|** = ..  single break, with '|' marking the new open breakpoint


   ssbm - Shortcuts:
     A single '*' within the epitope region will be expanded as '*' to fill up
     any remaining residues with respect to the existing epitope length.  If we
     have a 5 residue epitope, then,
           | * |      becomes     | ***** |
           | ..* |    becomes     | ..*** |
           | l*l |    becomes     | l*****l |
     The analogue to this shortcut in the aai is a single '?'.


   aai - Shortcuts:
     A single '*' within the epitope region BY ITSELF with no other
     instructions will be expanded to fill the entire existing epitope residues
     as '*' (freeze) and any new epitope residues (linker) as '?' (default).
     If we have a 5 residue epitope then,
           | * |      becomes     | ***** |
           | ** |     no expansion
     If we have a 5 residue epitope and   | l*h |  as the ssbm,
           | * |      becomes     | ?*****? |

     A single '.' within the epitope region BY ITSELF with no other
     instructions will be expanded to fill the entire epitope part as
     '.' (repack) and any new epitope residues (linker) as '?' (default).
     If we have a 5 residue epitope then
           | . |      becomes     | ..... |
           | .* |     no expansion
     If we have a 5 residue epitope and   | l*h |  as the ssbm,
           | . |      becomes     | ?.....? |

     A single '?' within the epitope region will be expanded to fill any
     remaining residues with respect to the existing epitope length to allow
     default behavior.  If we have a 5 residue epitope, then,
           | ? |      becomes     | ????? |
           | ..? |    becomes     | ..??? |
           | A?. |    becomes     | A?????. |
     The analogue to this shortcut in the ssbm is a single '*'.


   Important things to watch out for:
    Remember that the instructions are taken literally.  If we have
       ..l | * | ..  &  ... | ? | ..  <- the grown 'l' residue REMAINS ala/gly
                                          because it is designated to only be
                                          repacked, typically NOT DESIRED
       ..l | * | ..  &  ..? | ? | ..  <- the grown 'l' residue is designed

    It is possible to override amino acid identities of ALL the epitope
    residues, meaning you can change "critical" residues for binding
    if so desired.

    Since the length of the ssbm and ai can be different, make sure the
    sections are describing the operations you want correctly.  To reduce
    confusion, it may be good practice to ensure the two sections are the
    same length and formatted the same when performing non-simple operations.


   Additional ssbm and aai Examples:

   @   HHHh | * | llLLL
      means...
         double break
         n-term scaffold tether = 3 moveable using helix
         n-term scaffold linker = grow 1 using helix
         entire epitope rigid
         c-term scaffold linker = grow 2 using loop
         c-term scaffold tether = 3 moveable using loop
	 no aai, so default amino acid behavior during design

   @   HHHh | ll.*****..d | llLLL   &   Y..? | ??.*****..? | ??rrr
      means...
         double break
         n-term scaffold tether = 3 moveable using helix
         n-term scaffold linker = grow 1 using helix
         n-term epitope linker  = grow 2 using loop
         n-term epitope tether  = 1 moveable using whatever ss is there
         5 residues rigid epitope
         c-term epitope tether  = 2 moveable using whatever ss is there
         c-term epitope linker  = grow 1 using degenerate (any ss)
         c-term scaffold linker = grow 2 using loop
         c-term scaffold tether = 3 moveable using helix
         repack all n-term scaffold tether
         design as tyrosine 1-residues n-term scaffold linker
         default design behavior 2-residues n-term scaffold linker
         default design behavior n-term epitope linker
         repack n-term epitope tether
         5 residues frozen, no repack
         repack c-term epitope tether
         default design behavior c-term epitope linker
         default design behavior c-term scaffold linker
         design with restricted degenerate alphabet for the 3 c-term
           scaffold tether residues

   @   HHH = ll.*****..d | llLLL
         double break, but n-term (left) side is artificially closed
           so no backbone movement occurs on the left
         rest is similar to the prior example
         no aai, so default amino acid behavior during design

   @   HHxx | ...******l = llEE   &    rrxx | ...******p = ....
         double break, but c-term (right) side is aritifically closed
           so no backbone movement occurs on the right
         n-term scaffold tether = 2 moveable using helix
         n-term scaffold linker = delete 2
         n-term epitope tether = 3 moveable using whatever ss is there
         6 residues rigid epitope
         c-term epitope linker = grow 1
         c-term scaffold linker = grow 2 using loop
         c-term scaffold tether = 2 moveable using sheet
         two residues n-term scaffold tether design w/ restricted degenerate
         two 'x' dummy spacers for readability
         three residues n-term epitope tether repack
         6 fixed epitope residues
         one residue c-term epitope linker design as polar
         2 residues c-term scaffold linker repack
         2 residues c-term scaffold tether repack

   @   Hh = ....|..... = lLL   &   ?? = ????|????? = ???
         single break with breakpoint indicated by the "|" cut
         n-term scaffold tether = 1 moveable using helix
         n-term scaffold linker = grow 1 using helix
         4 residues moveable epitope
         5 residues moveable epitope
         c-term scaffold linker = grow 1 using loop
         c-term scaffold tether = grow 2 using loop
         aai indicates default behavior for all residues


< Some Common Tasks >

TODO

< DEPRECATED >

The following information is provided for reference and will be removed soon.

  [ old input file, additional graft info ]

   These additional columns, which are optionally present at the end of a match result line in the
   input file, indicates the type of grafting to perform on an epitope, such as whether or not to
   transfer bb/sc, how many residues to allow move and how many to grow/remove at the tips of closures.
   The '$' symbol is REQUIRED to separate the match result columns and the graft info columns, since
   the number of match result columns and graft info columns can be variable.
   An example is shown below:

   # ( match result columns ) $ graft_bb graft_sc scaffold_tether_nterm scaffold_linker_nterm scaffold_moveable_nterm | scaffold_tether_cterm scaffold_linker_cterm scaffold_moveable_cterm | epitope_tether_nterm epitope_linker_nterm epitope_moveable_nterm | epitope_tether_cterm epitope_linker_cterm epitope_moveable_cterm  perturb_rb?  move_all_epitope_residues?  close as_single_break?  repack_epitope_residues?
     ( my_scaffold.pdb    362   379 ... )  $  true     true    3  -1   3  |  4   2   2  |  0   0   0  |  0   0   0
     ( my_scaffold.pdb    478   482 ... )  $  true     true    4   0   4  |  4   0   4  |  0   3   3  |  1   0   1
     ( my_scaffold.pdb    201   210 ... )  $  false    true
     ( my_scaffold.pdb    97    111 ... )  $  false    false
     ( ok_hit.pdb           7   45  ... )  $  true     true    6   3   3  |  6  -1   5  |  2   0   2  |  1   1   2   true  false
     ( ok_hit.pdb          67   93  ... )  $  true     true    6   3   9  |  6   4   4  |  0   0   0  |  0   0   0   false  true  true  true
     ( ok_hit.pdb         127  135  ... )  $  true     true    3   0   3  |  6   4   4  |  0   0   0  |  0   0   0    true  true

   'graft_bb' column is 'true' or 'false' and indicates whether or not to graft the backbone of the
   corresponding epitope.  'graft_sc' column is 'true' or 'false' and indicates whether or not
   to graft the sidechains of the corresponding epitope.  'graft_bb' takes precedence over
   'graft_sc', so if 'graft_bb' is true, then 'graft_sc' is forced to true in the software.
   If 'graft_bb' is false then no other columns are necessary.

   The latter 15 columns of each line define the number of n-terminal and c-terminal
   tether/linker/moveable residues on the scaffold and epitope sides of each epitope loop.
   Note that a total of three separate '|' must be used to separate the entry groups, as shown as above.
   Tether residues are the total number of residues to one side of the *-terminus, linker residues
   indicate the number of residues to grow/remove from the scaffold side of the chainbreak, and
   moveable residues are the total number of moveable residues during loop closure.  There are
   restrictions on the values of the tether/linker/moveable residues:

      Restriction: 'tether_*term' >= 0
      Restriction: 'tether_*term' + 'linker_*term' >= 0
      Restriction: 'tether_*term' + 'linker_*term' >= 'moveable_*term'
      Restriction: epitope_tether_nterm < 1 + (length of epitope loop)/2
      Restriction: epitope_tether_cterm < (length of epitope loop)/2
      Restriction: epitope_linker_*term >= 0

   By default the columns defining the scaffold tether/linker/moveable residues are 3/0/3  and
   the epitope tether/linker/moveable residues are 0/0/0 (e.g. when no external graft info file is given).

   The next (optional) 2 columns of each line indicate whether that epitope component should be
   rigid body perturbed prior to each build loops attempt, and whether or not to move all residues in the
   epitope when attempting to close.  These two columns are currently ignored for primary components.

   The next (optional) column of each line indicates whether or not the epiope component should be
   grafted using single break closure, rather than double break closure.  Currently this REQUIRES
   move_all_epitope_residues to be true.  Note that this removes the rigid body dependence of the
   epitope components!  This column is ignored for primary components.  Single break closure and
   rigid body perturbation cannot both be true at the same time.

   The last (optional) column of each line indicates whether or not to forcibly repack the epitope
   residues.  This is recommended if you end up moving any epitope residues, like with
   "move_all_epitope_residues".  This column is valid for ALL components.

