Merge pull request #1683 from RosettaCommons/vmullig/support_nmethyl_merge1
Initial merge of code to support N-methylated peptides
I want to split this pull request into a few merges. This one brings in considerably refactored Patch, RamaPrePro, and rotamer code. Lazy loading of any number of mainchain torsion potentials is now supported, and the RamaPrePro score term has been switched over to use the new lazy loading machinery. All integration test changes are expected.
#Background and Rationale:
N-methyl amino acids can be used during peptide synthesis to confer various desirable properties on a synthetic peptide. N-methylation removes a hydrogen bond donor, in many cases promoting solubility in hydrophobic environments and helping with membrane permeability. It also greatly alters the conformational preferences of an amino acid residue.
We want to be able to design with N-methyl amino acids, and this pull request is intended to add support for:
- Modelling N-methyl amino acid geometry (adding a patch for N-methylation).
- Properly scoring N-methyl amino acid-containing peptides (permitting the loading of custom Ramachandran and p_aa_pp tables for N-methyl amino acids).
Following the implementation of PackerPalettes (pull request #1047), a future pull request will add:
- Support for designing with N-methyl amino acids (i.e. getting the packer decide whether to N-methylate a position or not).