Merge pull request #914 from RosettaCommons/roccomoretti/ninja_updates
Change the CMake build to use absolute paths
The cmake/ninja build are encountering errors on the test server because updated to the headers aren't being properly reflected in the compilation of the unit test files, leading to the test server to not update the unit test compilation when it should.
This appears to be due to issues with the automatic header dependency calculation of CMake. CMake uses the -MM option of gcc and clang to get a list of headers on which the compilation of a particular file depends. This dependency calculation ignores system files, which includes any files found through -isystem paths. To avoid issues with -Werror, we have the external directory set as -isystem includes. This is an issue with the unit test builds, as when the compiler tries to find the ../../../source/test/basic/datacache/HierarchicalDataMap.cxxtest.hh include which is in the auto-generated cxxtest source file, it can also find it under ../../external/dbio/, rather than under ./ This means that any header which is included from the *.cxxtest.hh files are considered to be "system" files, and as such don't show up under the -MM output, meaning that things don't get recompiled if they change.
The solution to this is to adjust the CMake build system such that it uses absolute paths for the location of the *.cxxtest.hh files, rather than relative paths. (Note that absolute paths here aren't too much of an issue for relocatability, as CMake already uses absolute paths for a bunch of stuff internally - if you move the directory you need to force a clean compilation anyway.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #909 from RosettaCommons/vmullig/energyparse
Adds RosettaScripts parsing of the aa_composition setup
This pull request lets the user set up the aa_composition energy from RosettaScripts on a per-scorefunction basis. (Previously, this was only possible globally, from the command line). This also cleans up some of the inner workings of aa_composition, making it easier to define new sets of things to be counted.
Tasks:
- Add parsing of one or more aa_composition setup file name to the "Set" subtag in scorefunction tags in RosettaScripts.
- DOCUMENT the "Set" subtag somewhere -- I don't think it's in the RosettaScripts documentation. (Update: it's documented, but the list of commands is woefully out of date.)
- Document the aa_composition setup stuff.
- Integration test.
A bunch of integration tests show cosmetic changes due to the addition of another variable to the EnergyMethodOptions, which gets reported whenever the show() function is called.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #900 from RosettaCommons/aleaverfay/bugfix_symm_otf_ig_asu_starts_at_res_1
Fixing two bugs in the symmetric, on-the-fly interaction graph code
1. Fixing an iteration across the wrong number of things when initializing
the SymmOnTheFlyNode::state_offset_for_restype_group_ data member (thanks
Rocco for bringing this to my attention!)
2. Fixing a false assumption of the SymmOTF IG that the asymmetric unit
would always start at residue 1 and run to num_independent_residues. Adding a new
unit test where the asymmetric unit is subunit 4, and that checks that changes in energy
computed by the on-the-fly interaction graph matches the precompute-and-store
interaction graph.
All unit tests pass; several symmetry-related integration tests change as a result of a bug
in how the one-body energies were being computed.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #905 from RosettaCommons/JWLabonte/sugars/input
Carbohydrates: Further simplifying loading-in of glycan-containing PDB files
This merge makes Rosetta is somewhat more robust in handling glycan-containing PDB files. If a system of 3-letter codes is used in the PDB file that does not include main-chain connectivity, Rosetta will now rely on `LINK` records to assign the proper `ResidueType`s.
All unit tests pass.
fold_and_dock has tracer volume jacked way up, so it registers with integration test changes because of more tracer output I also added with this merge.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #876 from RosettaCommons/vmullig/glysampling
Allow Ramachandran sampling with flat and/or symmetrized Rama tables
Existing Ramachandran tables are a bit too heavily biased for effective sampling, particularly if one wants to design afterwards. This pull request adds high-contrast, flattened Ramachandran tables for large-scale sampling. It also adds symmetrized tables for mixed D/L sampling.
Tasks:
- Add flat rama table for generic L-alpha-amino acids.
- Add flat, symmetrized rama table for generic L- or D-alpha-amino acids.
- Add flat, symmetrized proline rama table (for sampling D- and L- prolines).
- Add flat, symmetrized glycine rama table.
- Add high-stringency versions of the above tables.
- Add option to use flat and/or symmetrized tables for sampling (to GenKIC).
- Add storage space in Ramachandran for additional cumulative distribution functions.
- Add core sampling function that can take an arbitrary rama table.
- Add functionality to core for lazily loading additional rama tables.
- Add options to options system for additional rama tables.
- Documentation.
- Add option to use flat and/or symmetrized tables for sampling to the SetTorsion mover.
- Documentation.
- Add support to SimpleCycpepPredictApplication for custom Rama tables for sampling.
- Documentation
- Integration test.
- Add option (flag) to use non-flat, symmetric glycine tables for scoring and/or sampling (and to generate these on the fly, on Rama table load).
- Add flag.
- Make symmetrized Ramachandran gly table on the fly.
- Make symmetrized P_AA_PP gly table on the fly.
- Unit test for the scoring side of this.
- Documentation for the flag.
- Beauty
While I'm at it:
- Fixed D-rama sampling bug in SetTorsion mover.
Put off to a future pull request:
- Add AiB.
- Figure out rama scoring for AiB (maybe L-alanine's probability table multiplied by D-alanine's probability table, re-normalized, and converted to an energy?).
- Figure out p_aa_pp scoring for AiB (same as above?).
- Add adjacent-residue clash check option to GenKIC bump checker (requested by Andy).
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #903 from RosettaCommons/aleaverfay/fix_lcaa_nbr_radii
Modifying the neighbor radii of the canonical amino acids.
The neighbor radii must represent the maximum distance from a
residue's neighbor atom to its furthest heavy atom under all
dihedral angle assignments. Their purpose is to provide a
geometry-independent bound on the reach of a residue so long as you
know where the neighbor atom (e.g. CBeta) is. The radii are used
by the score function and by the packer to avoid unnecessary
residue-pair energy calculations where possible.
I originally measured these maximum distances by building the
Dunbrack rotamers for a particular phi/psi. In this new calculation,
I've sweept all chi angle combinations at 5 degree increments.
For a handful of residue types, this resulted in an increase for
the neighbor radius. In the case of valine, it looks like the
original neighbor radius was never set to the default c-beta-to-
backbone-heavyatom distance (valine's c-beta-to-sc-heavyatom
distance is a meager 1.5A).
For HIS_D, the radius calculated by building rotamers was never applied,
so that Phil's original guess at HIS and HIS_D's radius was left; but
HIS's radius was updated. This meant that HIS and HIS_D ended up with
different radii. This discrepancy was initialy uncovered by Andrew Ban in
2009 and has reared its head intermitently in the past six years, but
was never fixed. HIS and HIS_D now have the same radii.
This pull request cause widespread integration test trajectory changes.
All unit tests pass.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #904 from RosettaCommons/rhiju/rna_helix_force_enlarge_h_lj
making sure that rna_helix always uses enlarged hydrogens by adding t…
changes rna_helix, as expected -- and the other tests that are now failing regularly.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #906 from RosettaCommons/dimaio/lattice_symmetries
Several modifications for modelling structures with 2D and 3D lattice symmetries.
Checkin implements a new rosettascripts movers for creating systems with 3D lattice symmetries:
* MakeLatticeMover name=make_lattice contact_dist=24
Make a lattice from the input PDB and CRYST1 line. Include all subunits within 'contact_dist'
There is also a mover aimed at handling 2D lattice symmetries:
* MakeLayerMover name=make_layer contact_dist=24
Make a 2D lattice from the input PDB and CRYST1 line. The CRYST1 line must correspond to one of the 17 layer groups.
There are two movers aimed at manipulating these lattice symmetries (both work with 2D & 3D):
* DockLatticeMover name=crystdock fullatom=1 trans_step=1 rot_step=2 ncycles=100 scorefxn=talaris2013
Docking within the lattice. If fullatom=1 it does fullatom docking with repacks and min steps; if fullatom=0 you need to provide a centroid energy function (e.g. score4_smooth) and it will also add lattice slide moves. trans_step and rot_step gives magnitude of perturbation; ncycles is # of steps to run.
* UpdateCrystInfo name=updatecrystinfo
Convert back to an asymm pose with a valid CRYST1 line
Finally, there are a bunch of useful helper functions in src/protocols/cryst/.
NOTE: In all cases, these movers _MUST_ be run with the flags: -in::preserve_crystinfo -optimization::new_sym_min -symmetry::symmetry_definition dummy (and probably -symmetry::detect_bonds false as well)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #864 from RosettaCommons/JWLabonte/sugars/input
Carbohydrates: improving creation of glycans from sequences
This set of changes introduces the following:
* Glycans with modified sugars can be created from IUPAC sequences.
* Branched glycans can be created from IUPAC sequences.
* Protein poses can be "glycosylated" at requested positions.
* ResidueType::show() now gives information about branch point atoms.
All unit tests pass.
carbohydrates test changes expected
CCD_loop_closure test changes expected (output modifications from assigning a name to PDB_Info for sugars made from sequences)
ThreadingInputter test changes in output from change in namespace of a FoldTree function
All other integration test changes are from the usual (15) suspects, which are all (still) unstable.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #895 from RosettaCommons/vmullig/removeSPs
Removing all Lua scripting support from the codebase
Certain key classes seem to have a second type of owning pointer defined, apparently for use with the Lua scripting hooks. This creates confusion, particularly for new developers, who might think that they should be using, for example, PoseSPs instead of PoseOPs. These owning pointers are hard-coded to be boost::shared_ptrs (unlike our owning pointers, which could be std::shared_ptrs, boost::shared_ptrs, or something else, depending on compilation settings).
This pull request tears 'em all out so that they're not cluttering up our codebase and confusing new developers.
UPDATE: This pull request now has the goal of ripping out all of the Lua hooks. Lua scripting was never implemented well, and has not been maintained since the original author left the Baker lab; it is almost certainly no longer a functional feature of Rosetta, and it is certainly one that no one uses. If I'm going to reduce useless codebase cluster, I might as well not bother with half-measures. (Plus, it actually turned out to be easier to solve the SP issue by tearing out all of the Lua stuff, since the SPs were mainly only used in the Lua code and this way I don't have to convert them all to OPs.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #897 from RosettaCommons/vmullig/cycpep_checkpoint
Add flag for the cyclic peptide prediction app's checkpoint file
This adds the -cyclic_peptide:checkpoint_file flag, which allows the user to specify the filename of the checkpoint file.
notify author
notify list [rosetta-logs@googlegroups.com]