Merge pull request #1359 from RosettaCommons/vmullig/design_cycpep_app_2
Add design capability to the simple_cycpep_predict application
This allows the simple_cycpep_predict application to design every conformation that it samples.
Tasks:
- Add option for design.
- Add option to read in file allowing specification of allowed residues by position.
- Add options for prohibiting D-amino acids in negative-phi region of Ramachandran space, and prohibiting L-amino acids in positive-phi region.
- Have the above options actually set up the SimpleCycpepPredictApplication's settings.
- Read per-residue options from a file.
- Unit test for this.
- Override file read by slave processes in MPI mode.
- Have the above options actually DO something -- i.e. add design to the SimpleCycpepPredictApplication::genkic_close() function.
- Set up design TaskOperations.
- Unit test.
- Debug problems revealed by unit test.
- Eliminate/refactor anything in SimpleCycpepPredictApplication that would cause repeated reads from disk.
- Check that this also results in no disk reads in beta_nov15 mode.
- Double-check this at the end.
- Integration test.
- MPI-mode integration test.
- Documentation.
- Beauty.
- Test on Jojo.
- Test on Cetus (Blue Gene/Q test nodes).
- Performance benchmarks on Mira (Blue Gene/Q production nodes).
- Fix broken unit tests.
Also:
X Add option to exclude i - i+1 hydrogen bonds from hydrogen bond count. --> Separate pull request.
- Add option to stop sending jobs after a certain amount of execution time has elapsed (and just collect whatever has completed).
- Add timer, to facilitate benchmarking.
- Add support for external constraints file. (Would need to handle circular permutations, though). --> Separate pull request.
- Add support for separate .comp files for L-alpha, L-beta, D-alpha, and D-beta regions of Ramachandran space.
- Add the options.
- Have these files be read in.
- Add them to the parsed protocol for design (with a SequenceConstraint and a suitable ResidueSelector).
- In MPI mode, have the master process read these data from disk and transmit them to the slaves, to avoid repeated read-ins. (This means setting comp_file_contents_L_alpha_, comp_file_contents_D_alpha_, comp_file_contents_L_beta_, comp_file_contents_D_beta_, and abba_bins_).
- Have global aa_composition setup files cache their data, rather than being re-read from disk whenever the score type is instantiated.
- Test this.