Merge pull request #2114 from RosettaCommons/jadolfbr/ab_design_updates
RosettaAntibodyDesign updates
This PR changes and adds a number of things to the RAbD protocol and framework:
- 1) Add a new cmd-line option `-primary_cdrs`. This sets the CDRs to be used for the outer cycle. Very useful if you want to graft-design a specific CDR, such as H3 and allow neighboring CDRs to sequence design, but you are primarily interested in sampling H3.
- 2) **Simplifies the protocol.** You can now use `-graft_design_cdrs`, `-seq_design_cdrs`, and `-mintype` to run the whole protocol. If you want specifics, you can use the CDR instruction file. This makes a design run as simple as:
`antibody_designer.macosclangrelease -s my_ab.pdb -graft_design_cdrs H3 -seq_design_cdrs H1 H2 -primary_cdrs H3 -light_chain lambda`
- 3) Sets outer_cycle_rounds to 25. This is a much more reasonable number, but requires 4x as many decoys. Runtime for pack is ~ 2 minutes/decoy, while using _min_ as the mintype (_pack/min/pack/min_) is about 10 minutes/decoy.
- 4) Make _min_ the default as this has been shown to work pretty well and take significantly less time than using the full relax flexbb design protocol. Make this do min/pack/min/pack instead of a single min/pack and then requiring users to set the inner_cycle_rounds to 2.
- 5) Make the default to min_neighbors as we did in the benchmarking. These are reasonable defaults
```
L1 MinProtocol Min_Neighbors L2 L3
L2 MinProtocol Min_Neighbors L1
L3 MinProtocol Min_Neighbors L1 H3
H1 MinProtocol Min_Neighbors H2 H3
H2 MinProtocol Min_Neighbors H1
H3 MinProtocol Min_Neighbors L1 L3
```
- 6) Add a new option for disabling certain amino acids, `-disallow_aa` which takes a list of either one or 3 letter codes. Enable this option to be set Per-CDR in the instruction file.
- 7) **Add resfile support.** Nothing hacky, only there to further limit which residues are packed/designed, and can further limit residue types for design.
- 8) **Add viewer support.** Enabled by extras=graphics and adding `-antibody:design:view` to the command line.
- 9) Require the `-light_chain` option to be given and use it to limit grafts/sequence profiles for clusters.
- 10) Make the default to design nothing. Require the user to give designing CDRs either through the command-line or through the CDR Instruction file.
- 11) **Better Memory Management.** Make the previous default where we cache all the CDRs we will be grafting to be the option `-high_mem_mode`. This is off by default as if you do denovo design on an antibody with this option, you will need ~3-4 GB/process. So now we have an option `-cdr_set_cache_limit`, which we use as a cutoff at 300. This means that after we have cached 300 CDRs, we stop caching and then, load them on-the-fly if we need them. This actually has the benefit of making the setup phase much quicker, as we would never use all the CDRs we cache in a single process anyway. Perhaps with JD3 or threading, we can do this better eventually.
- 12) Make the `-global_atom_pair_scoring` option True so that the atom_pair_cst score is used throughout the protocol - which can then act as a filter.
- 13) Remove a bunch of experimental options to simplify what actual options we are using.