Merge pull request #609 from RosettaCommons/roccomoretti/cartbonded_auto_torsion
Cart_bonded: automatically add torsion parameters if missing
The cart_bonded term can automatically pull bond lengths and angles from the ResidueType if there isn't values listed in the database. It didn't, however, do anything about constrained improper torsions (e.g. for planar systems).
These changes take the existing improper torsion parameter generation code from molfile_to_params.py that @yfsong added and puts it into Rosetta to allow autogeneration of torsional restraints for planar systems (aromatic bonds, double bonds to carbon) for ResidueTypes which don't already have any data listed in the database. -- It doesn't change anything for other sorts of impropers (e.g. aniline protons) that might also have a constrained geometry, though those should be easy enough to add later, if someone figures out what needs to be added.
Potential User Facing Change: While the autogeneration of parameters should be turned off if you feed manual parameters for the residue to -score::extra_improper_file, the behavior of the residue identifier for that file (and for the Rosetta database files) has changed. For non-protein, non-nucleic acid residue types, the residue identifier is the full name, rather than the name3. In most cases this shouldn't be an issue (as normally for ligands and the like name3 == full name), but it might catch someone out on edge cases.