Merge pull request #1071 from RosettaCommons/smlewis/mmCIFJobOutputter
mmCIF JD2 output compatibility - chemXRW leftover
Steven Lewis and Jared Adolf-Bryfogle
Currently, cif output is supported directly by cif_writer.hh, but not by JD2. This adds classes to enable that, plus lots of other smaller changes in extra output, dump pdb, etc.
mmCIF JD2 Options
============
Two options will now control JD2 and mmCIF:
-out:mmCIF and -out:mmCIF_gz
Output Options
============
Extra PDB and mmCIF output is now controlled through these options (listed with their current defaults):
-output_pose_energies_table true
-output_pose_cache_data true
-output_pose_fold_tree false
mmCIF Extra Tables
===============
Extra output is now refactored to be part of SFR and extracted in PoseToSFRConverter (as it should be) and can be output by the CIF writer as well. As far as we can tell, extra tables are ignored by programs, including PyMol. SO we should be in the clear. Each extra set of output is a new table for mmCIF. These are controlled by options, some of which only print out in JD2, as before, or are only output if the SFR has this info.
These new tables consist of the following:
- pose_energies
- pose_cache_data
- pose_comments
- rosetta_remarks
- rosetta_additional
The rosetta_additional table has two columns - type and output. Thats it. For now, the fold_tree is one type if we output it, and etc is another type for additional_string_output not covered by the tables above.
The Pose energies and cache table can be -not- output to a cif through options above. Alternatively, -cif_extra_data_separate_file specifies to put the scores in a separate file instead of in the cif file.
mmCIF Line Length
===============
-CIF files will have the 80 line length. It seems that the same cifparse file is used to read in and output CIF files, and it looks like you need to specify the line length in both. I'm not sure how EXTERNAL programs will respond to cif files having a maximum line length of the computer writing it out. It would be nice, but I am tabling this. What needs to happen, is that it changes with the PDB directly!
Additional Changes
==============
dump_pdb now does not have an available function where you can pass a 'tag' string, which, in reality, does absolutely nothing. This is fixed in every file that passed this bogus 'tag'.
Test Changes
==========
From what Steven and Jared can tell, we are dealing with purely cosmetic changes here for the integration tests. An extra line ending separating [extra-pdb-output] components (that were before one giant string internally).
Most deletions of lines are just lines moving around in a file. Some integration tests have their pose energies table DISAPPEAR, instead of appear - but the old state was unscored poses with empty energies tables, so that loss is still cosmetic.
Please look over your own integration tests just to double check.
Happy Wednesday!