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

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:

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

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

from pyrosetta import *

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/ line: 478

(lot of lines ala 1  ‘                          0x000000012135ff78 + 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,


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


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

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. 


Jared Adolf-Bryfogle

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

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 '':

# 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 ( ). 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,



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


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

Hello again,

I have tried to include the option '-auto_detect_glycan_connections' described here:

It, however, gives me the import error:

from pyrosetta import *
Traceback (most recent call last):

  File "<ipython-input-21-fcfdbbb80342>", line 8, in <module>

  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/", line 160, in init
    assert set_logging_handler in (None, True, False, "interactive", "logging")



Thought it would be nice for you to know.

Kind regards,




Thu, 2019-01-17 01:55

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

Thu, 2019-01-17 08:46