Merge pull request #1211 from RosettaCommons/JWLabonte/XRW/HETNAM_records
Post-XRW: Refactoring reading, writing, and storage of HETNAM records
This merge completes a task having been on my to-do list for a long time — a refactoring of `HETNAM` code in Rosetta to be more general / less carbohydrate-centric.
Now anyone should be able to specify using `HETNAM` records the desired base `ResidueType` for a specific three-letter-code at a specific position in the structure. (This was currently only functional for three-letter-codes that are listed in the database as carbohydrate codes.)
A clear example is now found in `source/test/core/import_pose/3-letter_code_ambiguity_resolution.cxxtest.hh
`
Now, Rosetta-format `HETNAM` records are output by default for all non-AA, non-AA, non-virtual, and non-membrane residues. This will change ~50 integration tests.
There is a known issue with `HETNAM` records involved in branched complexes being sorted poorly. I will fix this in a later merge, and it currently only affects sugars.
A flag, `use_pdb_format_HETNAM_records`, can be used to have the Rosetta output PDB-format HETNAM records instead, but for this to be truly useful, we need to have the PDB name for each 3-letter code stored somewhere in Rosetta. (Perhaps a future pull request?)
This merge also cleans up / simplifies `SFR` code that was a mess because about six of us were working on it at the same time during the ChemicalXRW.
(As an extra bonus, it also introduces the (`molfile_to_param.py`-generated) oxidized and reduced versions of flavin into the database.)
All unit tests pass.
Windows PyRosetta test not completed. (See Sergey's e-mail.)
~50 integration test changes from `HETNAM` records in output files
carbohydrates test change from new sorting of `HETNAM` records.
number_of_residuetypes test change from adding two more