Merge pull request #6346 from RosettaCommons/roccomoretti/obey_ssbond
Add option to obey SSBOND info during PDB loading.
One of the time sinks in PDB loading is the disulfide bond detection. There is currently a way to turn it off entirely (-detect_disulf false) or use an external file to specify things (-fix_disulf), but there's not currently a way to specify that you want to obey the disulfide annotations in the PDB file and not do a general scan. This is less than ideal, as from-wwPDB and Rosetta output files should have the complete SSBOND information in them already.
This PR adds a -in:obey_ssbond option to the command line, which tells the loader code to take the SSBOND information from the PDB/StructFileRep as the only disulfides which should be used. Adding this flag shaves the time in initialize_disulfide_bonds() in half, saving somewhere between 1-2% in PDB loading speed.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5694 from RosettaCommons/roccomoretti/fix_ssbond_shift
Fix how PDB output calculates output residues for SSBONDs.
Centralize the calculation of the numbering of output residues. Putting the logic in a single place should yield a consistent calculation for both ATOM and SSBOND lines.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6389 from RosettaCommons/roccomoretti/master_fixes
Attempt to fix failing tests in master.
Assorted fixes for failing tests in master
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5801 from RosettaCommons/roccomoretti/lDDT
Add functions to compute lDDT.
Code to compute lDDT of two structures. The default settings give results which match that given by https://swissmodel.expasy.org/lddt
Unlike the website, this can handle substructures (by passing a residue map), as well as ligand/non-protein residues. You can also pass an rmsd Predicate object to select only certain atoms within the residue (e.g. backbone only or Calpha only). You can also get atom-level statistics, if you want.
Not implemented is any consideration for penalties for bond/angle deviations. I also haven't implemented the one-to-many comparison. (Run it multiple times with multiple references and pick the lowest.)
It's probably going to be slower than an rmsd calculation. I tried to keep efficiency in mind, but things are slowed down by the need to consider alternate states (e.g. PHE ring flips) to match the official implementation. There's an option to turn that off if you don't want it, or if you're using an atom set (e.g. backbone-only) where it's not relevant. There's probably also other ways of improving the efficiency, but I don't have time at the moment to do efficiency profiling.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6345 from RosettaCommons/roccomoretti/pdb_loading_small_tweaks
A set of small efficiency tweaks for PDB Loading
Small inefficiencies I found when looking into PDB loading speeds. Mostly doing work we don't really have to do (refolding, creating new objects which aren't used). These probably account for a ~2% speedup in my test set.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6353 from RosettaCommons/roccomoretti/speed_VDDistanceMatrix
Speed up NBR distance calculation.
It looks like the slow bit of loading types from the Chemical Components Dictionary is the find_nbr_dist() calc.
The slow bit looks to be data structure access in the Floyd-Warshall. Right now we're using a map of maps. If we can use compact data storage (and integer indexes), we can speed this up greatly.
The find_nbr_dist() function gets ~50 times faster, though given the total time we spend in it, the overall speedup due to this fix is probably ~1% at most (depending on how many CCD components you have.)
notify author
notify list [rosetta-logs@googlegroups.com]
fixing broken unit test (#6384)
* editing "correct" pdb file to have the right chemistry. Pushing to get help.
* copied the output of the test (build/test/debug/macos/11.6/64/arm/clang/13.0/default/PDB_w_glycans_IO_cxxtest.pdb._tmp_) to replace the old, wrong `test/core/io/5FYL_correct_output.pdb`. The PDB_w_glycans_IO unit test now passes.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6116 from RosettaCommons/nannemdp/N-linked_glycosylation_patch_changes
Modifications to N-linked_glycosylation.txt patch to correct chemistry
notify author
notify list [rosetta-logs@googlegroups.com]