You are here

Problems when working with PTMs - cannot make sugar poses

5 posts / 0 new
Last post
Problems when working with PTMs - cannot make sugar poses
#1

Hello everyone,

I have a protein which has a few PTMs in the form of sugars, and I have therefore started experimenting with sugars in PyRosetta. I have found a very nice guide:

https://graylab.jhu.edu/pyrosetta/downloads/documentation/RosettaCarbohydrate_Tutorial-Demo.pdf

which I have used as a starting point together with the documentation e.g.

https://graylab.jhu.edu/PyRosetta.documentation/pyrosetta.rosetta.core.pose.html?highlight=make_pose_from_saccharide_sequence#pyrosetta.rosetta.core.pose.make_pose_from_saccharide_sequence

I start out by initializing PyRosetta with the appropriate options, and import the specific methods I need:

from pyrosetta import *
pyrosetta.init('-include_sugars','-write_pdb_link_records')

from pyrosetta.rosetta.core.pose.carbohydrates import glycosylate_pose
from pyrosetta.rosetta.core.pose import make_pose_from_saccharide_sequence, pose_from_saccharide_sequence

 

However, whenever I try to use the methods I get runtime errors. If I e.g. enter:

mannose = pose_from_saccharide_sequence('->3)-a-D-Manp')

I get:

ERROR: Unrecognized residue ->3)-alpha-D-Manp when building saccharide sequence ->3)-a-D-Manp

ERROR:: Exit from: /Volumes/MacintoshHD3/benchmark/W.fujii/rosetta.Fujii/_commits_/main/source/src/core/pose/annotated_sequence.cc line: 478

BACKTRACE:
(lot of lines ala 1  ‘rosetta.so                          0x000000012135ff78 rosetta.so + 71184248’)

I got the input for ‘pose_from_saccharide_sequence’ from the guide I linked above, so it should be correct. The documentation states that it:

“Return a Pose from an annotated, linear, IUPAC polysaccharide sequence <sequence> with residue type set name”. I am not an expert on sugars, but as far as I can tell is the input used above ok. I have also tried to input simply ‘galp’, which also does not work.

Can anyone see what I am doing wrong?

My setup is

MacOS 10.14, python 3.6.6, Pyrosetta: PyRosetta4.Release.python36.mac r206

Kind regards,

Martin  

Post Situation: 
Thu, 2019-01-10 07:44
MNP1986

Hello!

Those functions will work for your purposes, but you should also checkout the SimpleGlycosylateMover. If you need to introduce a sequon, the CreateGlycanSequonMover can be used to do this. You can also checkout the CreateSequenceMotifMover in protocols.calc_taskop_movers

Use this to import most of the new glycan classes and utils:

  from rosetta.protocols.carbohdyrates import *

  There are also a few glycan residue selectors in rosetta.protocols.select.residue_selectors

Once you glycosylate the pose at the place you want, you can access the new GlycanTreeSet via pose.glycan_tree_set().  Lots of functions that can be useful to you.  

Finally, for modeling, you should probably use the GlycanTreeModelor.  Its also in protocols.carbohydrates.  It is not published yet, but has been used to do de-novo modeling of glycans with decent results.  Jason Labonte and I have spent the past few years developing it (and associated methods/classes) and it should be published sometime this year (with full documentation on all of these).  However, they are all accessible in PyRosetta, all bug tested, and all benchmarked on high-resolution crystal structures, so go ahead and use them if you want. 

 

As for the IUPAC naming, here is the README we use when defining new common glycans such as man5 or man9 (which can simply be passed to the SimpleGlycosylateMover.  It should help you define the correct nomenclature used. You can find it in PyRosetta in database/chemical/carbohydrates/common_glycans I have included it here. 

Cheers,

Jared Adolf-Bryfogle

File attachments: 
Thu, 2019-01-10 08:20
jadolfbr

Dear jared,

Thank you so much for the very detailed reply - very much appreciated!

For some reason, pose_from_saccharide_sequence worked after restarting my IDE, so perhaps I had initialited it wrong the first time.

I have played a bit around with the different methods and movers, and I am almost able to do everything I want to do. I have however run into into a problem: I cannot get sialic acids to work, even though two are listed in 'codes_to_roots.map':

# Ketononoses (e.g., Sialic Acids)
Neu neuramin  *  2  # D inherent
Kdn keto-deoxy-nonulon  *  2  # D inherent

Sialic acids have nine carbons but only have five carbons in the ring ( https://en.wikipedia.org/wiki/Sialic_acid ). I would therefore expect ''a-Neuf5Ac'' to work but is does not. The Error I get is:

ERROR: Unrecognized residue ->4)-alpha-Neuf:5-Ac when building saccharide sequence a-Neuf5Ac-(2->3)

Can anyone help?

Kind regards,

Martin

EDIT:

it should be 'p' when there are five carbons in the ring, but if I try ''a-Neup5Ac'' I also get an error

EDIT 2:

I got it working using '->8)-a-Neup5Ac-(2->3)' so it was the default value of ->4)... which caused it not to work. Like I said, I am still a rookie with glycans, so not always super on top of the correct settings for the different glycans :)

 

Wed, 2019-01-16 04:47
MNP1986

Hello again,

I have tried to include the option '-auto_detect_glycan_connections' described here: https://www.rosettacommons.org/docs/latest/application_documentation/carbohydrates/WorkingWithGlycans

It, however, gives me the import error:

from pyrosetta import *
pyrosetta.init('-include_sugars','-write_pdb_link_records','-auto_detect_glycan_connections')
Traceback (most recent call last):

  File "<ipython-input-21-fcfdbbb80342>", line 8, in <module>
    pyrosetta.init('-include_sugars','-write_pdb_link_records','-auto_detect_glycan_connections')

  File "/Users/martinpedersen/anaconda3/envs/py36/lib/python3.6/site-packages/pyrosetta-2019.1+release.dbc838b6ae6-py3.6-macosx-10.7-x86_64.egg/pyrosetta/__init__.py", line 160, in init
    assert set_logging_handler in (None, True, False, "interactive", "logging")

AssertionError

 

Thought it would be nice for you to know.

Kind regards,

Martin

 

 

Thu, 2019-01-17 01:55
MNP1986

If you are within a notebook, make sure to restart the kernal any time you re-init. 

Thu, 2019-01-17 08:46
jadolfbr