Updates to facilitate building cyclic peptides or other highly cross-linked geometries.
Short summary:
--Added PeptideStubMover and DeclareBond mover to make it easy to append, prepend, insert, or connect residues. These are fully accessible to RosettaScripts.
--Added GeneralizedKIC mover. This is a generalized form of kinematic closure that can operate on an arbitary loop, including stretches of backbone, covalently-linked sidechains, ligands, noncanonical linkages, metals, etc. The only requirement is that the residues in the loop to be closed are covalently linked. This is fully accessible to RosettaScripts, and interfaces with the ContingentFilter to permit elegant failure if loop closure fails. (Note: I was going to keep this out for a while, but too many people in the Baker lab have requested to use this. Sorry, Kale.)
--Added features to TorsionMover, including temporary rerooting of foldtree for a particular torsion move and full RosettaScripts support.
--Updated coordinates of sidechain-conjugated residue types CYX and LYX to updated coordinates accepted for canonical L-amino acids with Talaris2013, and added ASX and ORX (sidechain-conjugated aspartic acid/asparagine and sidechain-conjugated ornithine).
--Added some common chemical crosslinkers.
--Updated atom types database to include sp2-hybridized Boron.
--Fixed handling of noncanonical connections (e.g. UPPER->sidechain, sidechain->LOWER, etc.) in Conformation class.
--AtomICoor functions have been updated to remove the assumption that polymer bonds are between the i and i+1 residue, that each LOWER is connected to the previous residue's UPPER, that each UPPER is connected to the next residue's LOWER, etc. Now, Rosetta checks for and returns the connecting residue and atom. NOTE: This is a deep core change. All unit and integration tests pass, but there could be changes needed in code not covered by integration tests.
--Added an option to Conformation::update_polymeric_connection() to rebuild connection-dependent atoms. Previously, some protocols would replace a residue at a particular location in a pose with a new residue with upper and lower terminus types, remove the upper and lower terminus types (at which point connection-dependent atoms would be rebuilt, assuming connections to the i-1 and i+1 residues despite the lack of such connections), and THEN update connections to make bonds to the i-1 and i+1 residues. Now, this doesn't work, since without a connection, Rosetta can't (and shouldn't be able to) rebuild a connection-dependent atom. This is therefore done when the update function is called, though this is not the default behaviour. If other protocols fail due to improper rebuilding of backbone H and O atoms, add update_polymeric_connection( <seqpos>, true) to rebuild these.
--Note that the above changes actually fix the zinc_heterodimer integration test, which was previously FILING to rebuild a backbone oxygen properly.
Unit test status: All pass
Integration test status: 23 changed tests
--Most of these are cosmetic changes, since there's an additional atom type (Boron) and some additional warning messages when AtomICoor::xyz() can't find a connection atom and returns a bogus vector.
--The UBQ_E2_*** and UBQ_Gp_LYX_C-term integration tests change their post-minimization output a fair bit due to the updated sidechain-conjugation residue type geometry. I erroneously thought that these were not detecting the connection properly before, but differences that I was seeing were due to an atom type that I had mistakenly switched; having corrected this, these tests seem fine -- just different.
--The zinc_heterodimer and zinc_homodimer_setup tests had to be tweaked a bit to get them to work properly, since they were previously relying on quirky Rosetta behaviour that ought not to have worked the way it was working. (See above: they rebuilt connection-dependent H and O atom positions BEFORE declaring a connection, and this only worked because Rosetta assumed connections between the i and i+1 residues. Now, the rebuild is AFTER declaring a bond. This actually fixes some bad atom placement, and changes the output of these tests a bit.)
Changed integration tests are:
fold_and_dock
assemble_domains_jd2
make_rot_lib
match_1n9l
match_6cpa
doug_dock_design_min_mod2_cal_cal
hotspot_graft
ld_converter
UBQ_E2_thioester
features
UBQ_E2_thioester_extra_bodies
UBQ_E2_thioester_two_ubiquitins
place_simultaneously
oop_create
zinc_homodimer_setup
oop_dock_design
ncaa_fixbb
match_1c2t
UBQ_Gp_LYX-Cterm
zinc_heterodimer
AnchorFinder
scaffold_matcher
swa_protein_loop_sampler
modified: database/chemical/atom_type_sets/fa_standard/atom_properties.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/NACCESS_sasa_radii.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/atom_orbital_hybridization.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/facts_born_params.epm1.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/gen_born_params.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/memb_fa_params.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/reduce_sasa_radii.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/sasa_radii_legacy.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/soft_rep_params.txt
modified: database/chemical/atom_type_sets/fa_standard/extras/std_charges.txt
modified: database/chemical/mm_atom_type_sets/fa_standard/mm_atom_properties.txt
modified: database/chemical/residue_type_sets/fa_standard/residue_types.txt
new file: database/chemical/residue_type_sets/fa_standard/residue_types/crosslinker/1.3_bisbromomethylbenzene.params
new file: database/chemical/residue_type_sets/fa_standard/residue_types/crosslinker/BoronateLDopa.params
new file: database/chemical/residue_type_sets/fa_standard/residue_types/sidechain_conjugation/ASX.params
modified: database/chemical/residue_type_sets/fa_standard/residue_types/sidechain_conjugation/CYX.params
modified: database/chemical/residue_type_sets/fa_standard/residue_types/sidechain_conjugation/LYX.params
new file: database/chemical/residue_type_sets/fa_standard/residue_types/sidechain_conjugation/ORNX.params
new file: source/src/apps/pilot/vmullig/design_truecycpeptide_fromstub.cc
new file: source/src/apps/pilot/vmullig/sidechainKIC_notes.txt
new file: source/src/apps/pilot/vmullig/test_sidechainKIC.cc
modified: source/src/apps/public/design/zinc_heterodimer_design.cc
modified: source/src/core/chemical/AtomICoor.cc
modified: source/src/core/conformation/Conformation.cc
modified: source/src/core/conformation/Conformation.hh
modified: source/src/core/io/pdb/pose_io.cc
modified: source/src/core/io/silent/BinarySilentStruct.cc
modified: source/src/core/io/silent/BinarySilentStruct.hh
modified: source/src/core/pose/util.cc
modified: source/src/core/scoring/Ramachandran.cc
deleted: source/src/err.log
deleted: source/src/index.html
deleted: source/src/out.log
new file: source/src/protocols/cyclic_peptide/CreateAngleConstraint.cc
new file: source/src/protocols/cyclic_peptide/CreateAngleConstraint.hh
new file: source/src/protocols/cyclic_peptide/CreateAngleConstraintCreator.hh
new file: source/src/protocols/cyclic_peptide/CreateDistanceConstraint.cc
new file: source/src/protocols/cyclic_peptide/CreateDistanceConstraint.hh
new file: source/src/protocols/cyclic_peptide/CreateDistanceConstraintCreator.hh
new file: source/src/protocols/cyclic_peptide/CreateTorsionConstraint.cc
new file: source/src/protocols/cyclic_peptide/CreateTorsionConstraint.hh
new file: source/src/protocols/cyclic_peptide/CreateTorsionConstraintCreator.hh
new file: source/src/protocols/cyclic_peptide/DeclareBond.cc
new file: source/src/protocols/cyclic_peptide/DeclareBond.hh
new file: source/src/protocols/cyclic_peptide/DeclareBondCreator.hh
new file: source/src/protocols/cyclic_peptide/PeptideStubMover.cc
new file: source/src/protocols/cyclic_peptide/PeptideStubMover.hh
new file: source/src/protocols/cyclic_peptide/PeptideStubMoverCreator.hh
new file: source/src/protocols/generalized_kinematic_closure/GeneralizedKIC.cc
new file: source/src/protocols/generalized_kinematic_closure/GeneralizedKIC.fwd.hh
new file: source/src/protocols/generalized_kinematic_closure/GeneralizedKIC.hh
new file: source/src/protocols/generalized_kinematic_closure/GeneralizedKICCreator.hh
new file: source/src/protocols/generalized_kinematic_closure/filter/GeneralizedKICfilter.cc
new file: source/src/protocols/generalized_kinematic_closure/filter/GeneralizedKICfilter.fwd.hh
new file: source/src/protocols/generalized_kinematic_closure/filter/GeneralizedKICfilter.hh
new file: source/src/protocols/generalized_kinematic_closure/perturber/GeneralizedKICperturber.cc
new file: source/src/protocols/generalized_kinematic_closure/perturber/GeneralizedKICperturber.fwd.hh
new file: source/src/protocols/generalized_kinematic_closure/perturber/GeneralizedKICperturber.hh
new file: source/src/protocols/generalized_kinematic_closure/selector/GeneralizedKICselector.cc
new file: source/src/protocols/generalized_kinematic_closure/selector/GeneralizedKICselector.fwd.hh
new file: source/src/protocols/generalized_kinematic_closure/selector/GeneralizedKICselector.hh
new file: source/src/protocols/generalized_kinematic_closure/util.cc
new file: source/src/protocols/generalized_kinematic_closure/util.hh
new file: source/src/protocols/hybridization/BackboneTorsionPerturbation.cc
new file: source/src/protocols/hybridization/BackboneTorsionPerturbation.hh
new file: source/src/protocols/hybridization/BackboneTorsionPerturbationCreator.hh
new file: source/src/protocols/hybridization/BackboneTorsionSampler.cc
new file: source/src/protocols/hybridization/BackboneTorsionSampler.hh
new file: source/src/protocols/hybridization/BackboneTorsionSamplerCreator.hh
modified: source/src/protocols/init/init.MoverCreators.ihh
modified: source/src/protocols/init/init.MoverRegistrators.ihh
modified: source/src/protocols/metal_interface/MatchGrafter.cc
modified: source/src/protocols/protein_interface_design/movers/PlaceSimultaneouslyMover.cc
modified: source/src/protocols/protein_interface_design/movers/PlaceStubMover.cc
modified: source/src/protocols/simple_moves/SetTorsion.cc
modified: source/src/protocols/simple_moves/SetTorsion.hh
modified: source/src/protocols_b.5.src.settings
modified: source/src/protocols_c.5.src.settings
modified: source/src/python/bindings/IncludeDict
modified: source/tools/build/basic.settings
typechange: source/xcode/Rosetta.xcodeproj/project.pbxproj.template