Merge pull request #1166 from RosettaCommons/vmullig/peppredict_set
Adding an option to the simple_cycpep_predict app to let me set certain torsions
This is to allow me to predict larger peptide structures in cases in which I might have some idea of regions of secondary structure
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1164 from RosettaCommons/vmullig/fix_sfxn
Fix remaining beta_nov15 unit test failures
This pull request fixes the remaining issues with the beta_nov15 energy function and mirror symmetry, cyclic geometry, etc.
Tasks:
Fix Ramachandran gly table symmetrization with the Shapovalov tables turned on.
Fix omega energy and derivative calculation for D-amino acids.
Fix oversensitivity of the electrostatics unit test. (Frank has already fixed the electrostatics issue; the test failure is a false alarm, now.)
Damn it -- I missed fa_intra_sol_xover4 and lk_ball_wtd. Add unit tests for these.
Fix cyclic scoring with lk_ball_wtd.
Beauty.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1158 from RosettaCommons/xrw_PDB_diagnostics
(This is the PR opener, repeated). This branch pulls in the PDB_diagnostic application written for the chemical XRW. The application just does the basic Rosetta exercises - score, repack, minimize. It also adds to the scorefile numbers of residues in all the categories supported directly by ResidueType. The key is that the application is not meant to run on a PDB (file), it's meant to run on THE PDB (all 115K+). There are two supports not in this PR - a data processing script in tools/ (will be merged there soon), and a godawful shell-script based job distributor that is robust against segfaults (will be merged noplace ever). Since we'll be discussing it at Winter RosettaCON I wanted it in master; also I'm tired of making special temp branches to merge this test code against the PDB-reading features it needs to test.
Note that the original history of the application was accidentally merged into an earlier XRW merge, but that merge was reverted after pushing. Thus this PR starts with an en-block reversion reversion to make the new code appear; its real history is further back.
The changes to not-obviously-this-application files are either cosmetic, or a bugfix in JD2 (boolean options should always check .value(), never .user(), so that the user can pass false...).
Integration and unit tests are a mess in master. There are two integration test changes legitimately caused by this code: the new itest PDB_diagnostic (will fail because it's new), and central_class_modification (will fail because I changed JobDistributor [the bugfix noted above]).
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1155 from RosettaCommons/PyRosetta
Adding binding for core::io::Remarks.
Updating C++ PyMOL mover so it now accept address and port argument.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1142 from RosettaCommons/dimaio/refine_apix
Checking in code that allows refinement of voxel spacing in electron density maps.
There are several integration test failures; all are expected as they either: a) refine with density (normalization of density values has changed a bit), b) report all scoreterms (one was deleted), or c) small numeric changes which are related to removing a scoreterm.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1154 from RosettaCommons/kwikwag/peptiderive-integration-test-fix
Peptiderive: integration test - remove use of sed command so it works on mac
Expected integration test changes: `peptiderive`
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1104 from RosettaCommons/dimaio/mirrorsymm
Add mirror symmetry support to Rosetta
This adds support for mirror symmetries to Rosetta. This was a collaboration completed by Frank Dimaio and Vikram K. Mulligan. Here's Frank's description of the changes:
---
This PR adds the ability for Rosetta to model symmetries with mirror operations. This builds upon Vikram's previous PR (#956) but attempts to address some of the concerns of Andrew.
Specifying mirror symmetry: Mirror symmetry is specified through the use of an "inverse virtual" residue which defines a left-handed local coordinate system. These inverse virtuals may be used to define mirror symmetries as follows:
symmetry_name C2_big__2
E = 2VRT0 + 1(VRT0:VRT1)
anchor_residue 13
virtual_coordinates_start
xyz VRT0 1.0,0.0,0.0 0.0,1.0,0.0 0.0,0.0,0.0
xyzM VRT1 1.0,0.0,0.0 0.0,1.0,0.0 0.0,0.0,0.0
virtual_coordinates_stop
..
Above, xyzM declares an inverse virtual residue. Connecting this inverse virtual to a subunit makes the connected subunit inverted. The above snippet declares a Cs symmetric system with a mirror plane in XY.
MirrorSymmetricConformation is a new class derived from SymmetricConformation, and has additional data members that remember which subunits and which jumps are linked by mirroring. It overrides a handful of conformation manipulation functions. It also ensures that the correct chirality type is maintained for symmetric copies. MirrorSymmetricConformation is created by default when make_symmetric_pose encounters a symmdef file with mirrored virtuals.
Kinematics are handled entirely by the AtomTree. This is done by adding two booleans to Jump specifying the handedness of the upstream and the downstream stubs. The functions make_jump, from_stubs, and fold_in_rb_deltas have been updated accordingly, and a tiny bit of logic is added to JumpAtom when starting refolding from an inverted residue. Note that if the upstream and downstream handedness are different, then the jump "rotation" is no longer a rotation but a reflection. The variable names have not been updated to reflect this.
Packing is handled by modifying SymmetricRotamerSet_ so that orient_rotamer_set_to_symmetric_partner uses the Conformation-computed symmetric transforms instead of orient_onto_residue. This allows for the same code to be used with both mirrored and non-mirrored symmetric conformations, and does not require peptoid-specific code as there is currently. However, this change will lead to small numeric changes in symm packing tests.
Since everything is added to the atomtree framework, derivatives/minimization works as-is (at least using Phil's new_sym_min framework, which I'm hoping to make default). Note that the current code assumes that there are NO mirror virtuals within the asymmetric unit. If there is a want/need for such support (I'm not sure I see what advantage it offers) it can be done, but I think JumpAtom::get_dof_axis_and_end_pos needs to be aware of the jump handedness for derivatives to work correctly.
MirrorSymm specific code has been added to ensure that the proper type of conformation is created from setup_symmetric_code, and for dumping silent files. Other than these two instances, the conformation should work transparently in any other mover that works with symmetric conformations. In theory, it should work fine with various docking protocols, multicomp, etc., but I have not tested these.
Finally, I'm using this PR as an opportunity to update some of the SymAtomTreeMinimizer logic. Phil's -new_symm_min flag is now default (pending a few more tests) ... it no longer requires scalefactors on interactions occurring through multiple cloned jumps. The old behavior available through -old_symm_min.
---
Tasks:
- [x] Add core functionality to allow one to get a mirror-image type efficiently (and without any string parsing).
- [x] Add clone_flipping_chirality() function to Residue class.
- [x] Revert my reversion (9c8a8ee) to re-merge my changes into Frank's branch (Vikram).
- [x] Unit tests for this.
- [x] Add MirrorSymmetricConformation class.
- [x] Finish the flip_chirality() function (Vikram).
- [x] I can't assume that the asymmetric unit is symmetry copy 1. Fix this in MirrorSymmetricConfromation::update_residue_identities(). (See line marked "Assumes that the asymmetric unit is copy 1."). (Vikram). *fixed -fpd*
- Finish the detect_disulfides() function (Vikram). -- <b>Put off to a future pull request</b>
- Unit test for detect_disulfides() (Vikram). -- <b>Put off to a future pull request</b>
- [x] Update packer to handle mirrored symmetry (Frank).
- [x] Update Atomtree to handle inverted stubs (Frank).
- [x] Get derivatives working (make sure *get_dof_axis_and_end_pos* is right for inverted stubs) (Frank).
- [x] Unit tests for three cases above (Frank).
- [x] Make aa_composition_energy (or, more generally, ResidueArrayAnnealableEnergies) symmetry-aware (Vikram).
- [x] Unit test: aa_composition energy + design.
- [x] Revert a6eae0ea471c964a369e8fc640b33b3476bef9fe and d007c35d0b9bbc2546b84fc35d8ca76905b58c80 (in that order). These were added temporarily to disable the post-packing step at which residue types were inverted.
- [x] Revisit this -- this will be broken again, since residue-type flipping was taken out of SymmetricRotamerSet_::orient_rotamer_set_onto_symmetric_copy().
- [x] Fix the node list -- issue when prevent_repacking used on some residues.
- [x] Add unit test for this (prevent_repacking used on a subset of residues + aa_composition).
- [x] Document this.
- [x] Fix issue with creating covalent bonds between symmetry subunits (Vikram).
- [x] Make this part of the integration test.
- [x] Integration test.
- [x] Address integration tests currently failing to run (INV_VRT issue).
- [x] Fix PyRosetta build.
- [x] Ensure that SymmetricConformation::declare_chemical_bond() works properly with mirror symmetry.
- [x] Documentation.
- [x] Beauty.
Also:
- [x] Strips out a little more of the old Lua junk.
- [x] Fixes D-amino acid base name to be the D-name rather than the L-name.
- [x] Fixes a bug in SymmetricConformation::declare_chemical_bond. Previously, not all symmetry copies were properly getting the bond. Now they all do.
- [x] Fixes aa_composition and other ResidueArrayAnnealableEnergies so that they work properly with symmetry.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1138 from RosettaCommons/kimdn/master_dn_fixed
* SEWING
[sewing_hasher] automatic detailed score_file_name (just commented in
master to prevent integration test failure), default num_segments_to_match = 1, updated comments
[MonteCarloAssemblyMover] From now on, an option
(remove_non_contiguous_assembly_) is true by default
[ModelTrimmer] New options (leave_certain_model_ids, leave_models_with_H_terminal_ss,
model_should_have_at_least_1_H) added, if
'leave_parallel_way_H_bonded_models_by_terminal_strands_only' do
'leave_models_with_E_terminal_ss' in advance
[RepeatAssemblyMover] New option (threshold_score_of_complete_cycle,
default value is -0.5) is introduced
[SEWING overall] Minor code-cleanups
* SandwichFeatures
[WriteToFileFromSandwichFeatures] Code cleanup
[WriteToDBFromSandwichFeatures] Added a more reference regarding beta hairpin types
notify author
notify list [rosetta-logs@googlegroups.com]