Merge pull request #104 from RosettaCommons/jadolfbr/antibody_design
Updates to antibody and antibody design. Merge Pull Request #104
This branch mainly has updates to the antibody_designer app and RosettaAntibody. It has been going for quite a while, so here goes.
This is a complete refactor of antibody/design with a few major additions to the app (controlled either via cmd-line options or the Instructions File):
* optional Paratope/Epitope site-constraints with cdr and rsd-lvl control respectively
* optional framework and antigen design now integrated.
* neighbor CDR minimization during the GraftDesign stage (via instructions file)
* SeqDesign during GraftDesign (via instructions file)
* ability to limit CDRs used for GraftDesign stage by species and germline (via instructions file)
* Lambda/Kappa light-chain option set through cmd-line, held in AntibodyInfo, accessed by AntibodyDatabaseManager to limit CDRs
* lots of small optimizations, bug fixes, and options.
===============
Antibody Database:
* Added an SQLITE3 antibody database for general use to database/sampling/antibodies that uses data from our 2011 North CDR clustering paper
(This is the default version for the app, if a newer one is not being used).
* Newer, PDB-current versions of this database will be available here soon: http://dunbrack2.fccc.edu/PyIgClassify/
* Antibody Database classes/functions refactored and separated from design. Moved to antibody/database for general use.
==========
AntibodyInfo:
* added a few functions/refactoring that I was working on with Brian Weitzner in his antibody_refactor branch concerning loops and movemaps.
* added AntibodyRegionEnum and function in AntibodyInfo for accessing the region of a particular residue (framework_region, cdr_region, antigen_region). This makes control of design regions much simpler to setup.
===============
Code Refactor:
* options now reside in their own classes at the CDR-level (CDRSetOptions, CDRSeqDesignOptions, CDRGraftDesignOptions), with their own Parsers for parsing instuctions files
* AntibodyDesignMoverGenerator which aims to create/setup movers for antibody design, as well as run them via apply.
* This will be expanded for use in RS, and foldtree stuff will eventually be replaced with the Broker system thanks to helpful chats with Justin Porter
* Deprecates AntibodyDesignModeler
* AntibodySeqDesTFCreator which sets up TaskOps and TaskFactories for use in different parts of the antibody design protocol from the set of CDRSeqDesignOptions.
* new antibody/constraints namespace
=====
Other:
* Added/refactored docking setup_foldtree functions to have functions that don't automatically add the FoldTree to the pose.
* Needed to move InterfaceInfo setup out of the setup_foldtree functions and into their proper place in DockingLowRes
* Added option for neighbor design to RestrictToLoops/AndNeighbors
* Added option to RestrictToLoops which basically makes it act as a RestrictDesignToLoops task op and does not touch packing. Simplified apply logic.
* Added options to FastRelax to enable cartesian min and dualspace settings via code and via parse_my_tag.
* Added debug option to SnugDock which switches the random mover to a sequencemover to aide in identification of bugs
* Suite of helpful antibody design functions in antibody/design/util
=================
Added/Modified Tests:
Unit tests have been added for antibody design options classes, parsers, constraints, and utility functions. Unit tests for using the antibody database are included as well. Updates and additions to AntibodyInfo and RestrictToLoops unit tests.
===================
Integration Test Changes:
Integration test change in antibody designer (expected).
Antibody integration tests and AnchoredPDBCreator show cosmetic changes.
3 tests are failing in release.debug as before this merge (app_exception, non ideal_rtmin, make_exemplar).
Some tests (KIC_with_fragments, NGK, enzdes) show small numeric noise on the order of .01 and .001 A coord changes.
==============
All Unit tests pass.