Merge pull request #2348 from RosettaCommons/jadolfbr/rs_jd3
RosettaScripts - JD3 Port and PyRosetta Support
Overview
======
This PR brings RosettaScripts into the modern era of JD3 and PyRosetta. The implementation is version 1 - with support for different protocols and script_vars being passed to the job_definition file.
This should enable fairly robust benchmarking of protocols through RosettaScripts. Thanks to @aleaverfay for his guidance, debugging, and code added to the branch!
PyRosetta support is here through a slew of new functions in RosettaScriptsParser to easily take an XML/Pose and return a ParsedProtocol. @basantab
```
///@brief
/// Main, Basic XML to Mover Function.
///
ParsedProtocolOP
generate_mover_and_apply_to_pose(core::pose::Pose & pose, std::string const & xml_fname);
```
This PR also removes the JD2 integrated code in the RosettaScriptsParser and removes the 'Parser' class as it was unused.
An example JD3 job_definition file for RosettaScripts:
```
<JobDefinitionFile>
<Job nstruct="2">
<Input>
<PDB filename="five_glycans.pdb"/>
</Input>
<Output>
<PDB filename_pattern="default_$"/>
</Output>
<Options>
<parser__protocol value="glycan_relax.xml"/>
<parser__script_vars value="cartmin=0"/>
</Options>
</Job>
<Job nstruct="1">
<Input>
<PDB filename="five_glycans.pdb"/>
</Input>
<Output>
<PDB filename_pattern="cartmin_$"/>
</Output>
<Options>
<parser__protocol value="glycan_relax.xml"/>
<parser__script_vars value="cartmin=1"/>
</Options>
</Job>
<Job nstruct="1">
<Input>
<PDB filename="pareto_4JAN_CH103_GP120_renum_0001.pdb"/>
</Input>
<Output>
<PDB filename_pattern="glycosylated_$"/>
</Output>
<Options>
<parser__protocol value="glycosylate.xml"/>
<parser__script_vars value="positions=463G,460G glycosylation=man5 cartmin=1"/>
</Options>
</Job>
</JobDefinitionFile>
```
Command to run this:
```
rosetta_scripts_jd3.macosclangrelease -include_sugars -write_pdb_link_records -in:file:job_definition_file jd3_rs_definition.xml
```
Other Changes
==========
- Add Overwrite support to JD3 (Thanks @aleaverfay )
- Fix a few JD3 bugs ( @aleaverfay )
- Add support for prefix/suffix
- Move ```protocols/jd2/parser``` to ```protocols/parser```
- Add Integration test
- @vmullig Port -info and -output_schema options to the JD3 implementation, moved functions to rosetta_scripts/util.hh
Integration tests:
===========
All changes are cosmetic and have been gone over manually.