You are here

Modified Amino Acid Side Chain

8 posts / 0 new
Last post
Modified Amino Acid Side Chain

I am interested in modeling modified amino acids in Rosetta. Although I could use the Refnew et. al. method to include these as noncanonical amino acids, it seems like a lot of extra effort for what and I am looking to do which I expect can be accomplished much more simply. I would like to conjugated various chemical functionalities to Lys side chains. Nothing changes about the residue except the group added to the nitrogen. I was hoping to add this using a patch file, similar to that used to generate acetyl Lys. Additionally, I would like to add the same groups to Asn and Gln which is why I would prefer something like the patch file route rather than a full NCAA.

Thank you for your assistance.

Post Situation: 
Fri, 2016-06-17 08:13

Patches are certainly possible. Take a look at the database/chemical/residue_type_sets/fa_standard/patches/ directory to see what the format of the patches is. It's pretty straightforward, if not all that expressive or well documented.  Basically, you have general selectors which exclude various residue types which the patch shouldn't apply to, then you have sub-selectors which separate out individual residue types, and then have directives which tell Rosetta how to modify the residue type.

The tricky bit is that any added atoms also need to have ICOOR records. For this it might actually help to make the full params file, as it will have the appropriate ICOOR lines.

If you're interested in lysine modifications, I'd recommend paying close attention to the various lys_* patches in the directory - those should be sidechains modifications of lysine that already exist.

You can certainly make patches which apply to more than one residue type. See NtermProteinMethylated.txt for an example where proline and related are special cased. You could be able to set up cases for each of the individual residue types you're interested in. 

Once you have a patch, you don't have to include it the database - instead, pass it to the "-extra_patch_fa" command line argument. Be prepared to spend some time debugging your patch and excluding various patch combinations which are incompatible. 

One big caveat is that the Renfrew proceedure will generate a rotamer library for the appended group. Generally, patches won't have any flexibility in the added part, though there are some ADD_CHI_ROTAMER directives which give you limited ability to add rotamers.


Fri, 2016-06-17 09:54

Thank you for the help. 

I have already created a basic modification just swapping the acetyl oxygen for sulfur and made the correspoding patch file which contains all of the updated atoms, etcs. Also, I tried using the "-extra_patch_fa" command line argument via:

opts = ["app", "-database /Applications/PyRosetta.namespace.mac.release-61", "-extra_patch_fa", "/path_to_file/lys_test.txt"] 

with the appropriate file path, and this did not give any error.

Previously I had been introducing acetcyl Lys via the add_variant_type_to_pose_residue() command, however I recognize that there is not an associated variant type here to call the patch file. I attempted using the variant extra_patch_fa but this prompted ERROR: Rosetta does not recognize the variant: EXTRA_PATCH_FA; has it been added to variant_types.list?   Ideally, I want to include the residue in a sequence, so I attempted to use make_pose_from_sequence(pose, "AAK[LYS-p:acetylation]AA", "fa_standard"), which works for acetylation. However when I swap out acetylation with the name specific within my patch file an error is returned. 

In short, I believe that I am able to access the extra patch file using the command line arguement, but am not using the appropriate command for patching the residue in the pose. 

Tue, 2016-06-21 14:27

The name in make_pose_from_sequence() is not the file name the patch file, but the name of the patch in the patch file, as specified by the NAME line.  Also, with current verisons of PyRosetta, you should only need the colon to separate out the patch names, so "[LYS:acetylation]" (The old way should still work, but the newer way had less complications.)

The variant type for the patch is what is specified by the TYPES line in the patch file. The limitation here is that there are only a certain number of variants you can have without re-compiling. These are listed in the main/source/src/core/chemical/residue_properties/variant_types.list  file.  Since there probably isn't an exact match for the variant you want, I'd suggest being a little cheeky and re-purposing some other variant. As long as your patch is the only one which adds the variant to Lysine, you should be good.  There's a bunch of sugar-specific variants (the "C#_" variants), so those would be a good choice.

Tue, 2016-07-12 08:09

Thanks for the help, I was able to get this up an running with your suggestions, but hit a bit of different wall. 

I have taken the Renfrew et al. route to add a noncanonical amino acid that was not well suited for a patch file, and have gone through the process of creating the parameter files, rotamer libraries, etc. However when attempting to use the PackRotamersMover to sample side chain rotamers, in a simple test simulation to confirm that everything was working properly, python crashed with Segmentation fault: 11. Just to make sure that it is not a problem with my amino acid, I have switched over to using ornithine. I am able to import the amino acid and put it in a pose,but when attempting to apply either the PackRotamersMover, MinPackMover or RotamerTrialsMover, python crashes with the segmentation fault following:

core.pack.dunbrack: Dunbrack 2010 library took 0.25205 seconds to load from binary

core.pack.dunbrack: Reading in rot lib /Applications/PyRosetta.namespace.mac.release-61/database//rotamer/ncaa_rotlibs/C40.rotlib...done!

Is there a different set of movers that I sould be using when having the mm based rotamer library as opposed to the Dunbrack library?

Thanks again for all of the assistance!

Fri, 2016-07-15 09:10

I'm not sure if this is pertinent, but I was able to find the forum thread but since this was posted a while ago I was not sure if I might be experiencing a different problem.

Wed, 2016-07-20 15:10

Well fixed the problem. I was using the Mac namespace release-61 (which was quite out of date) so I decided to update to the most recent release and everything is working now!

Fri, 2016-07-22 09:48

Another problem that I have encountered for PyRosetta is that the C-terminal (lower) connection always seems to have a problem. The amide nitrogen of the next amino acid is always in the wrong place and forms the wrong bond angle. I attempted to trouble shoot by taking the PHE params file, duplicate it, and change one the AA to UNK and import this new params file. I found that the same issue happens where the lower connection, regardless of correct specifications of the internal coordinates, is always incorrect.

Mon, 2016-08-01 08:39