Rosetta Core  2014.35
Functions
core::pose::carbohydrates Namespace Reference

Functions

core::uint find_seqpos_of_parent_residue (conformation::Residue const &residue)
 Scan through a saccharide residue's connections to find the residue from which it follows or branches. More...
 
std::pair
< conformation::ResidueCAP,
conformation::ResidueCAP
get_glycosidic_bond_residues (Pose const &pose, uint const sequence_position)
 Return pointers to the two residues of the glycosidic bond. More...
 
core::uint atom_next_to_connect_atom (conformation::Residue const &residue, core::uint const connect_atom_index)
 Scan through the list of atoms connected to a given "connect_atom" and return the first heavy atom found. More...
 
utility::vector1< id::AtomIDget_reference_atoms_for_phi (Pose const &pose, uint const sequence_position)
 Return the AtomIDs of the four phi torsion reference atoms. More...
 
utility::vector1< id::AtomIDget_reference_atoms_for_psi (Pose const &pose, uint const sequence_position)
 Return the AtomIDs of the four psi torsion reference atoms. More...
 
utility::vector1< id::AtomIDget_reference_atoms_for_1st_omega (Pose const &pose, uint const sequence_position)
 Return the AtomIDs of the four omega torsion reference atoms. More...
 
utility::vector1< id::AtomIDget_reference_atoms (uint const torsion_id, Pose const &pose, uint const sequence_position)
 Return the AtomIDs of the four reference atoms for the requested torsion. More...
 
void align_virtual_atoms_in_carbohydrate_residue (conformation::Conformation &conf, uint const sequence_position)
 Set coordinates of virtual atoms (used as angle reference points) within a saccharide residue of the given conformation. More...
 
void align_virtual_atoms_in_carbohydrate_residue (Pose &pose, uint const sequence_position)
 Set coordinates of virtual atoms (used as angle reference points) within a saccharide residue of the given pose. More...
 
core::Angle get_glycosidic_torsion (uint const torsion_id, Pose const &pose, uint const sequence_position)
 Return the requested torsion angle between a saccharide residue of the given pose and the previous residue. More...
 
void set_glycosidic_torsion (uint const torsion_id, Pose &pose, uint const sequence_position, core::Angle const setting)
 Set the requested torsion angle between a saccharide residue of the given pose and the previous residue. More...
 

Function Documentation

void core::pose::carbohydrates::align_virtual_atoms_in_carbohydrate_residue ( conformation::Conformation conf,
uint const  sequence_position 
)

Set coordinates of virtual atoms (used as angle reference points) within a saccharide residue of the given conformation.

This method aligns virtual atom VOX, where X is the position of the cyclic oxygen, OY and HOY, where Y is the position of the anomeric carbon, (provided the residue is not the reducing end, where OY and HOY would be real atoms), and HOZ, where Z is the mainchain glycosidic bond location. OY and HOY are aligned with the last two "main chain" atoms of the parent residue. This ensures that torsion angles with duplicate names, e.g., chi1 and phi for internal linked aldoses, will always return the same values. The same concept applies for HOZ, which aligns with the anomeric carbon of the downstream residue. This method should be called after any coordinate change for a sac- charide residue and after loading a saccharide residue from a file or sequence for the first time.

Note
Do I need to worry about aligning the virtual atoms left over from modified sugar patches? Can such virtual atoms be deleted?

References atom_next_to_connect_atom(), find_seqpos_of_parent_residue(), core::conformation::Conformation::residue(), core::conformation::Conformation::set_xyz(), core::pose::TR, and core::conformation::Conformation::xyz().

Referenced by align_virtual_atoms_in_carbohydrate_residue(), core::import_pose::build_pose_as_is2(), set_glycosidic_torsion(), and core::pose::Pose::set_ring_conformation().

void core::pose::carbohydrates::align_virtual_atoms_in_carbohydrate_residue ( Pose &  pose,
uint const  sequence_position 
)

Set coordinates of virtual atoms (used as angle reference points) within a saccharide residue of the given pose.

References align_virtual_atoms_in_carbohydrate_residue(), and core::pose::Pose::conformation().

core::uint core::pose::carbohydrates::atom_next_to_connect_atom ( conformation::Residue const &  residue,
core::uint const  connect_atom_index 
)

Scan through the list of atoms connected to a given "connect_atom" and return the first heavy atom found.

Returns
The atom index of the 1st heavy atom next to the given "connect atom" or an empty string if no heavy atom is found

References core::conformation::Residue::atom_is_hydrogen(), and core::conformation::Residue::bonded_neighbor().

Referenced by align_virtual_atoms_in_carbohydrate_residue(), get_reference_atoms_for_1st_omega(), get_reference_atoms_for_phi(), and get_reference_atoms_for_psi().

core::uint core::pose::carbohydrates::find_seqpos_of_parent_residue ( conformation::Residue const &  residue)

Scan through a saccharide residue's connections to find the residue from which it follows or branches.

Returns
The sequence position of the residue before this one (n-1) or the residue in the parent chain from which the branch occurs or zero if N/A, i.e., if this is the lower terminus.

References core::conformation::Residue::n_residue_connections(), core::conformation::Residue::residue_connection_partner(), core::conformation::Residue::seqpos(), and core::pose::TR.

Referenced by align_virtual_atoms_in_carbohydrate_residue(), and get_glycosidic_bond_residues().

std::pair< conformation::ResidueCAP, conformation::ResidueCAP > core::pose::carbohydrates::get_glycosidic_bond_residues ( Pose const &  pose,
uint const  sequence_position 
)

Return pointers to the two residues of the glycosidic bond.

Returns
Pointers to the residue at <sequence_position> and its parent or else the same pointer twice if undefined.

References find_seqpos_of_parent_residue(), core::pose::Pose::residue(), and core::pose::TR.

Referenced by get_reference_atoms_for_1st_omega(), get_reference_atoms_for_phi(), and get_reference_atoms_for_psi().

core::Angle core::pose::carbohydrates::get_glycosidic_torsion ( uint const  torsion_id,
Pose const &  pose,
uint const  sequence_position 
)

Return the requested torsion angle between a saccharide residue of the given pose and the previous residue.

This method is used in place of Residue::mainchain_torsion() since the main-chain torsions of saccharide residues only make sense in the context of two residues. Moreover, the reference atoms as defined by the IUPAC are different from the ones that Rosetta uses by default for mainchain torsions for sugars.

Parameters
<torsion_id>is an integer representing the specific torsion angle requested, as defined in core/id/types.hh:
phi_torsion = 1
psi_torsion = 2
omega_torsion = 3
Note
I would rather the torsion id were an enum, but as it was already defined, I'm leaving it as a constant for now.

References core::pose::Pose::conformation(), get_reference_atoms(), principal_angle_degrees(), core::conformation::Conformation::torsion_angle(), and core::pose::TR.

Referenced by core::pose::Pose::omega(), core::pose::Pose::phi(), and core::pose::Pose::psi().

utility::vector1< id::AtomID > core::pose::carbohydrates::get_reference_atoms ( uint const  torsion_id,
Pose const &  pose,
uint const  sequence_position 
)
utility::vector1< id::AtomID > core::pose::carbohydrates::get_reference_atoms_for_1st_omega ( Pose const &  pose,
uint const  sequence_position 
)

Return the AtomIDs of the four omega torsion reference atoms.

For carbohydrates glycosylated at an exocyclic position, omega of residue n is defined as OX(n-1)-CX(n-1)-CX-1(n-1)-CX-2(n-1), where X is the position of the glycosidic linkage.

References atom_next_to_connect_atom(), get_glycosidic_bond_residues(), residues, and core::pose::TR.

Referenced by get_reference_atoms().

utility::vector1< id::AtomID > core::pose::carbohydrates::get_reference_atoms_for_phi ( Pose const &  pose,
uint const  sequence_position 
)

Return the AtomIDs of the four phi torsion reference atoms.

For aldopyranoses, phi is defined as O5(n)-C1(n)-OX(n-1)-CX(n-1), where X is the position of the glycosidic linkage.
For aldofuranoses, phi is defined as O4(n)-C1(n)-OX(n-1)-CX(n-1).
For 2-ketopyranoses, phi is defined as O6(n)-C2(n)-OX(n-1)-CX(n-1).
For 2-ketofuranoses, phi is defined as O5(n)-C2(n)-OX(n-1)-CX(n-1).
Et cetera...

References atom_next_to_connect_atom(), get_glycosidic_bond_residues(), residues, and core::pose::TR.

Referenced by get_reference_atoms().

utility::vector1< id::AtomID > core::pose::carbohydrates::get_reference_atoms_for_psi ( Pose const &  pose,
uint const  sequence_position 
)

Return the AtomIDs of the four psi torsion reference atoms.

For saccharides, psi is defined as: C(anomeric)(n)-OX(n-1)-CX(n-1)-CX-1(n-1),
where X is the position of the glycosidic linkage.

References atom_next_to_connect_atom(), get_glycosidic_bond_residues(), residues, and core::pose::TR.

Referenced by get_reference_atoms().

void core::pose::carbohydrates::set_glycosidic_torsion ( uint const  torsion_id,
Pose &  pose,
uint const  sequence_position,
core::Angle const  setting 
)

Set the requested torsion angle between a saccharide residue of the given pose and the previous residue.

This method is used in place of Conformation::set_torsion() since the reference atoms as defined by the IUPAC are different from the ones that Rosetta uses by default for main-chain torsions for sugars.

Parameters
<torsion_id>is an integer representing the specific torsion angle requested, as defined in core/id/types.hh:
phi_torsion = 1
psi_torsion = 2
omega_torsion = 3
<setting> is in degrees.
Note
I would rather the torsion id were an enum, but as it was already defined, I'm leaving it as a constant for now.

References align_virtual_atoms_in_carbohydrate_residue(), core::pose::Pose::conformation(), get_reference_atoms(), and core::conformation::Conformation::set_torsion_angle().

Referenced by core::pose::Pose::set_omega(), core::pose::Pose::set_phi(), and core::pose::Pose::set_psi().