Merge pull request #6122 from RosettaCommons/roccomoretti/update_rdkit
Update RDKit
Due to interest, update the version of RDKit to 2021.03.5. This version is the same one being used in Foldit (PR #5590) and should be C++14 compatible.
Compilation issues seem to be sorted out if I explicitly ignore some of the new subdirectories in RDKit, which should be okay-ish, as they aren't used elsewhere in RDKit, and aren't used currently by Rosetta. (More extensive fixes may be necessary if we start to use those features.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5867 from RosettaCommons/roccomoretti/packer_task_thresholds
Make Dunbrack probability thresholds non-global.
Right now, the -packing::dunbrack_prob_buried options and the like are a set-once option in the dunbrack/RotamerLibrary singleton.
It looks like it doesn't need to be. Instead, as it controls the Rotamer generation logic (e.g. which rotamers are selected).
we can move these options to the PackerTask.
It's not 100% clean, as to preserve the current behavior we can't put the option reading under the same control as the other command line options, but at least it allows us to change these thresholds on a per-packing run basis, rather than a once-per-program-launch basis. (This will help with certain use cases in Foldit and PyRosetta.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5926 from RosettaCommons/roccomoretti/scratch_space_reorg_master
Reduce dependency on RotamerLibraryScratchSpace
The SingleResidueRotamerLibrary functions had dunbrack::RotamerLibraryScratchSpace as a parameter dependency. This was a little bit of an annoyance for non-Dunbrack rotamer libraries, particularly as there's fixed numbers of torsions within the scratch space. (Which results in some jiggery-pokery on the derivatives for non-canonicals.)
It turns out that we don't actually make much use of the ScratchSpace for the general SingleResidueRotamerLibrary member interface. (In particular, we don't really re-use the scratch space at all.) We can re-write the interface to exclude it (letting the Dunbrack library create a new one), using a new TorsionEnergy class for the return-by-reference of the score components. For derivatives, we can push the torsion selection into the interface, avoiding having to return all the torsion derivatives.
I cleaned up/condensed the usage of Scratch Space for the Dunbrack libraries. Not knowing the full complexities which have been layered on here, I stopped at a certain point. In particular, there's probably some room for efficiency improvements by skipping derivative calculations for unneeded torsions, though I leave that to a future PR by someone else.
notify author
notify list [rosetta-logs@googlegroups.com]