I have been trying for some time to implement non-canonical AAs into PyRosetta. I have the params file for the residue but when it is passed on via the -extra_res_fa , pyrosetta still won't recognize it. Next to pyrosetta being able to read this AA in a pdb, I also want to mutate (canonical) AA into modified AAs (say hydroxyl group into acrylate). The mutate_residue only takes one character as an argument that corresponds to the canonical AAs, whilst a three letter argument would be preferred.
I have also thought about writing a patch for side-chain modifications but it is still unclear to me how I would be able to use this patch to mutate AAs in the sequence.
Does anyone have a solid protocol for incorporating non-canonical AAs and/or mutations involving non-canonical AAs?
Any help is appreciated, thanks!
Make sure there's no name collision between the three-letter code that you've assigned for your noncanonical and any of the existing noncanonicals in the database. If you named your noncanonical XYZ, try:
grep "NAME XYZ" Rosetta/main/database/chemical/residue_type_sets/fa_standard/residue_types/* -r
grep "IO_STRING XYZ" Rosetta/main/database/chemical/residue_type_sets/fa_standard/residue_types/* -r
To mutate, use the MutateResidueMover, which takes a full residue type name. Make sure that your noncanonical has the properties PROTEIN ALPHA_AA, as well as one of L_AA or ACHIRAL_BACKBONE. (Note that Rosetta automatically generates D-amino acid equivalents of all L-amino acids, so if you want the D-amino acid, prepend "D" to the name when using the MutateResidueMover. So "DXYZ" instead of "XYZ".)
Also, make sure that your starting pose is an all-atom pose, and not a centroid model.