Merge pull request #1311 from RosettaCommons/roccomoretti/cpp_centroid2
Make centroid mode ResidueTypes from fullatom ones
Add a utility function to make a centroid mode ResidueType from a fullatom one, using the heuristics from molfile_to_params.py. This is basically translating the atom types from fullatom ones to centroid ones, and getting rid of non-polar hydrogens. (No "centroid" atoms are added.)
I've also hooked in actual usage into Rosetta to automatically use it in the following cases:
* If you use -extra_res_mol or -extra_res_mmCIF, the provided molecules will be loaded for both fullatom and centroid ResidueTypeSets.
* If you use -load_PDB_components, the components will also be used to generate centroid mode ResidueTypes.
* When running switch_to_residue_type_set() and converting from fullatom to centroid, if there isn't a good centroid ResidueType already in the ResidueTypeSet, one will be generated from the FullAtom type and added to the PoseResidueTypeSet. (But only as a fall-back case - this only affects cases which would utility_exit previously.)
A limitation of the current implementation is that it does not work on polymeric residues. (Or at least polymeric residues with apolar hydrogens.)
A fair number of cosmetic integration test changes, as enabling centroid-mode PDB components changes tracer output - no current integration tests should have appreciable changes, though.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2051 from RosettaCommons/vmullig/fix_aib_import
Fix import of AIB from PDB files. MAL was listed in the known achiral types in the database, but not AIB, so this is an easy fix.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2045 from RosettaCommons/vmullig/serialize_layerselector
Add serialization support for the LayerSelector
I'm not sure how I got away with not making LayerSelector serializable. This corrects that.
Tasks:
- [x] Make LayerSelector serializable.
- [x] Make the object that it encapsulates (the SelectResiduesByLayer class) serializable.
- [x] Confirm that serialization tests pass.
- [x] Beauty.
Also:
- [x] Make BinSelector serializable.
- [x] Make the object that it encapsulates (the BinTransitionCalculator class) serializable.
- [x] Make the object that it, in turn, encapsulates (the BinTransitionData class) serializable.
- [x] Make PhiSelector serializable.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2016 from RosettaCommons/vmullig/support_aib
Add 2-Aminoisobutyric acid to the database
This adds 2-aminoisobutyric acid (AIB), a non-canonical, achiral alpha-amino acid that strongly favours helices (both left- and right-handed) to the database. AIB is to ALA as bactrian is to dromedary.
Tasks:
- [x] Add params file provided by @twcraven.
- [x] Tweak params file:
- [x] Add properties.
- [x] Add metalbinding.
- [x] Neutralize charge.
- [x] Check symmetry.
- [x] Add Ramachandran maps (standard and pre-proline) provided by @twcraven to database.
- [x] Check symmetry -- unit test.
- [x] Symmetrize tables if needed.
- [x] Add residue selector for selecting by a `rama_prepro` score of a particular amino acid type (issue #2011 ).
- [x] Unit test.
- [x] Integration test.
- [x] Documentation.
- [x] Delete old AIB (MAL.params).
- [x] Add test for mirror symmetry (i.e. Rosetta symmetry machinery).
- [x] Serialization information.
- [x] Beauty.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2041 from RosettaCommons/jadolfbr/ccd_ends_small_loops
This special cases small loops so that they are not included in the CCD arms in GraftMovers located in protocols/grafting. For example, a loop that is 4 residues that you are inserting with 2 residue flexibility on either side will fail. This changes the insert flexibility where needed so things won't fail. A warning is given for 1 residue insertions.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2044 from RosettaCommons/jadolfbr/fix_ignore_termini_residue
Fix a long-standing bug in PoseFromSFRBuilder where an ignored unrecognized residue at the N terminus, such as PCA, would make the next residue not start a new chain or have the proper terminus variant.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2024 from RosettaCommons/jadolfbr/tree_based_glycan_relax
Add GlycanTreeSet machinery
This PR adds a `GlycanTreeSet` that handles glycan tree connectivity, and changes many calls to on-the-fly functions to use functions contained in these classes instead.
- The `GlycanTreeSet` is composed of individual GlycanTrees, each identified by the starting glycan number.
- Each `GlycanTree` is composed of `GlycanNodes`.
- Each `GlycanNode` contains a lot of information on the inter-glycan residue connectivity. This greatly reduces the number of on-the-fly calculations that need to be made to figure out parents, children, root distances, and exocyclic torsion information.
- These classes are contained in the Conformation layer and can be used independently of a pose.
A `GlycanTreeSet` is contained in the `GlycanTreeSetObserver`. This observer responds to pose length changes so that the connectivity information is always preserved. A function has been added to pose to get this `pose.glycan_tree_set()` which returns a `nullptr` if no glycans are in the pose. The `GlycanTreeSetObserver` is ONLY ever present if glycans are added in some fashion - either by actually glycosylating or by loading from a structure file.
A unit test has been added for the functionality contained in this class.
Thanks to @raemisch who helped conceive this and originally started working on these classes this summer. Also thanks to @roccomoretti, @smlewis, @aleaverfay, and @JWLabonte for help on different parts on this.
Other
====
- This adds a line to delete a residue from the atom tree in `pose.delete_residue_slow()` which prevents a crash if a residue is accessed during the length observer, since we don't rebuild the atom tree until after the LengthEvent is sent out. `pose.delete_polymer_residue()` also does this.
- Fixes copy constructors in various classes I have written that hold OPs, or outright adds explicit copy constructors where they were missing.
- Adds a GlycanPositionSelector that allows selection of any residue in a tree.
- @JWLabonte - note that many functions held in pose/carbohydrates/util are now moved to conformation/carbohydrates/util.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2028 from RosettaCommons/roccomoretti/bin_symlinks
Change how we do symlinks in the bin directory
As decided at WinterRosettaCon, we're removing the two component names for (non-default) extra builds.
The following is an example of the bin/ directory symlinks which will be created for each different type of build (for Scons - CMake builds are unaffected at this time.):
extras=default mode=release # 2 symlinks
* bin/rosetta_scripts.default.linuxgccrelease
* bin/rosetta_scripts.linuxgccrelease
extras=default mode=debug # 2 symlinks
* bin/rosetta_scripts.default.linuxgccdebug
* bin/rosetta_scripts.linuxgccdebug
extras=cxx11thread mode=release # 1 symlink
* bin/rosetta_scripts.cxx11thread.linuxgccrelease
extras=cxx11thread mode=debug # 1 symlink
* bin/rosetta_scripts.cxx11thread.linuxgccrelease
notify author
notify list [rosetta-logs@googlegroups.com]