Merge pull request #1062 from RosettaCommons/xrw_use_pdb_components
Enable loading of PDB components
This commit is part of the XRW effort, and enables loading of residue type definitions from the provided chemical components dictionary. To use, download the Chemical Components Dictionary components.cif (or components.cif.gz) from http://www.wwpdb.org/data/ccd to Rosetta/main/database/chemical/, and then pass the flag -load_PDB_components on the commandline. For the current version, you will also want the -ignore_waters flag, as water is one of the components. (This may be altered at some point, with the new PDB file reading code.)
If Rosetta encounters a residue three letter code that it doesn't know, it will look in the chemical components dictionary for the definition, and create a corresponding ResidueType. It will also attempt loading in situations where the name3 may be ambiguous, and use the standard atom-name based resolution to pick the best match. If you have a ligand whose chemical identity does not match a PDB-standard residue, you will still need to provide the definition for the ResidueType yourself.
Known limitations are that any ResidueType loaded from the Chemical Components Dictionary will be loaded as an independent, non-polymeric ligand. The ResidueTypes are also made as the PDB provides them, which may not match the tautomeric/protonation state you expect. Additionally, no rotamers are generated for these residues. The PDB components are also not loaded for centroid-mode poses. Certain three letter codes and poses may still have issues loading correctly. (This will be partially fixed by other XRW commits.)
A number of cosmetic integration test changes are expected. (Mostly extra information printout.) (cf http://benchmark.graylab.jhu.edu/revision?id=3317&branch= and http://benchmark.graylab.jhu.edu/revision?id=3321&branch=) This branch also contains some fixes for PyRosetta and the external/cifparse library.