Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
core::chemical::carbohydrates::CarbohydrateInfo Class Reference

#include <CarbohydrateInfo.hh>

Inheritance diagram for core::chemical::carbohydrates::CarbohydrateInfo:
Inheritance graph
[legend]
Collaboration diagram for core::chemical::carbohydrates::CarbohydrateInfo:
Collaboration graph
[legend]

Public Member Functions

 CarbohydrateInfo ()
 Empty constructor. More...
 
 CarbohydrateInfo (core::chemical::ResidueTypeCAP residue_type)
 Standard constructor. More...
 
 CarbohydrateInfo (CarbohydrateInfo const &object_to_copy)
 Copy constructor. More...
 
CarbohydrateInfooperator= (CarbohydrateInfo const &object_to_copy)
 
 ~CarbohydrateInfo ()
 
void show (std::ostream &output=std::cout) const
 Generate string representation of CarbohydrateInfo for debugging purposes. More...
 
std::string full_name () const
 Return the full IUPAC name of the monosaccharide. More...
 
std::string short_name () const
 Return the abbreviated IUPAC name of the monosaccharide (for use in polysaccharide sequences). More...
 
std::string base_name () const
 Return the standard/common, non-residue, short name of the monosaccharide. More...
 
bool is_aldose () const
 Return true if the monosaccharide is an aldose. More...
 
bool is_ketose () const
 Return true if the monosaccharide is a ketose. More...
 
core::uint anomeric_carbon () const
 Return the anomeric carbon number. More...
 
core::Size n_carbons () const
 Get the number of carbons in the monosaccharide. More...
 
bool is_triose () const
 Return true if the monosaccharide is a triose. More...
 
bool is_tetrose () const
 Return true if the monosaccharide is a tetrose. More...
 
bool is_pentose () const
 Return true if the monosaccharide is a pentose. More...
 
bool is_hexose () const
 Return true if the monosaccharide is a hexose. More...
 
bool is_heptose () const
 Return true if the monosaccharide is a heptose. More...
 
char stereochem () const
 Get the stereochemical designation for the monosaccharide. More...
 
bool is_L_sugar () const
 Return true if the monosaccharide is an L-sugar. More...
 
bool is_D_sugar () const
 Return true if the monosaccharide is a D-sugar. More...
 
core::Size ring_size () const
 Get the size of the carbohydrate ring. More...
 
bool is_acyclic () const
 Return true if the monosaccharide is linear. More...
 
bool is_cyclic () const
 Return true if the monosaccharide is a ring. More...
 
bool is_furanose () const
 Return true if the monosaccharide is a furanose. More...
 
bool is_pyranose () const
 Return true if the monosaccharide is a pyranose. More...
 
bool is_septanose () const
 Return true if the monosaccharide is a septanose. More...
 
std::string anomer () const
 Get the anomeric form for the monosaccharide. More...
 
bool is_alpha_sugar () const
 Return true if the cyclic monosaccharide is an alpha sugar. More...
 
bool is_beta_sugar () const
 Return true if the cyclic monosaccharide is a beta sugar. More...
 
bool is_glycoside () const
 Return true if the monosaccharide is attached to something at the anomeric carbon. More...
 
core::uint mainchain_glycosidic_bond_acceptor () const
 Return the attachment point of the downstream saccharide residue of the main chain. More...
 
core::Size n_branches () const
 Return the number of branches off of this residue. More...
 
core::uint branch_point (core::uint i) const
 Return the attachment point of the downstream saccharide residue attached to ith branch off of this residue. More...
 
bool has_exocyclic_linkage () const
 Return true if the attachment point of the downstream saccharide is on an exocyclic carbon. More...
 
bool is_uronic_acid () const
 Return true if the primary hydroxyl group is oxidized to the acid. More...
 
std::pair
< core::id::TorsionType,
core::uint
glycosidic_linkage_id (core::uint torsion_index) const
 Return the BB or CHI identifier for the requested glycosidic linkage torsion angle. More...
 
std::pair
< core::id::TorsionType,
core::uint
nu_id (core::uint subscript) const
 Return the CHI identifier for the requested nu (internal ring torsion) angle. More...
 

Static Public Attributes

static std::map< std::string,
std::string > const 
CODE_TO_ROOT_MAP
 

Private Member Functions

void init (core::chemical::ResidueTypeCAP residue_type)
 
void copy_data (CarbohydrateInfo object_to_copy_to, CarbohydrateInfo object_to_copy_from)
 
core::Size get_n_carbons () const
 
void read_and_set_properties ()
 
void determine_polymer_connections ()
 
void determine_IUPAC_names ()
 
std::string root_from_code (std::string code) const
 
void define_nu_ids ()
 

Private Attributes

core::chemical::ResidueTypeCAP residue_type_
 
std::string full_name_
 
std::string short_name_
 
core::uint anomeric_carbon_
 
core::Size n_carbons_
 
char stereochem_
 
core::Size ring_size_
 
std::string anomer_
 
bool is_glycoside_
 
bool is_uronic_acid_
 
core::uint mainchain_glycosidic_bond_acceptor_
 
utility::vector1< core::uintbranch_points_
 
bool has_exocyclic_linkage_
 
utility::vector1< std::pair
< core::id::TorsionType,
core::uint > > 
glycosidic_linkage_id_
 
utility::vector1< std::pair
< core::id::TorsionType,
core::uint > > 
nu_id_
 

Static Private Attributes

static core::Size const MAX_C_SIZE_LIMIT = 7
 
static core::Size const MIN_C_SIZE_LIMIT = 3
 

Friends

std::ostream & operator<< (std::ostream &output, CarbohydrateInfo const &object_to_output)
 

Constructor & Destructor Documentation

core::chemical::carbohydrates::CarbohydrateInfo::CarbohydrateInfo ( )

Empty constructor.

References init().

core::chemical::carbohydrates::CarbohydrateInfo::CarbohydrateInfo ( core::chemical::ResidueTypeCAP  residue_type)

Standard constructor.

Parameters
<residue_type>,:the ResidueType object containing this CarbohydrateInfo

References init().

core::chemical::carbohydrates::CarbohydrateInfo::CarbohydrateInfo ( CarbohydrateInfo const &  object_to_copy)

Copy constructor.

References copy_data().

core::chemical::carbohydrates::CarbohydrateInfo::~CarbohydrateInfo ( )

Member Function Documentation

std::string core::chemical::carbohydrates::CarbohydrateInfo::anomer ( ) const
inline

Get the anomeric form for the monosaccharide.

Returns
"alpha", "beta", or ""

"alpha" and "beta" designate the stereochemistry at the anomeric carbon of a cyclic sugar.

References anomer_.

core::uint core::chemical::carbohydrates::CarbohydrateInfo::anomeric_carbon ( ) const
inline

Return the anomeric carbon number.

For linear monosaccharides, this number corresponds to the carbon that is oxidized to the aldehyde or ketone.

References anomeric_carbon_.

std::string core::chemical::carbohydrates::CarbohydrateInfo::base_name ( ) const

Return the standard/common, non-residue, short name of the monosaccharide.

References residue_type_, and root_from_code().

Referenced by show().

core::uint core::chemical::carbohydrates::CarbohydrateInfo::branch_point ( core::uint  i) const

Return the attachment point of the downstream saccharide residue attached to ith branch off of this residue.

Parameters
<i>,:the branch point index
Returns
an integer n of (1->n) of polysaccharide nomenclature, where n specifies the attachment point on the upstream monosaccharide residue; e.g., 4 specifies O4

A monosaccharide with a group linked to it at one position is a distinct residue type from the same monosaccharide with the same group linked to it at another position. For example, Rosetta treats (1->4)-beta- D-glucopyranose as an entirely distinct residue type from (1->3)-beta-D-glucopyranose, with separate .params files for each.

See also:
CarbohydrateInfo.mainchain_glycosidic_bond_acceptor()
CarbohydrateInfo.n_branches()

Remarks
Branches are not yet implemented.

References branch_points_, and n_branches().

void core::chemical::carbohydrates::CarbohydrateInfo::copy_data ( CarbohydrateInfo  object_to_copy_to,
CarbohydrateInfo  object_to_copy_from 
)
private
void core::chemical::carbohydrates::CarbohydrateInfo::define_nu_ids ( )
private

References core::id::CHI, nu_id_, residue_type_, and ring_size_.

Referenced by init().

void core::chemical::carbohydrates::CarbohydrateInfo::determine_IUPAC_names ( )
private
void core::chemical::carbohydrates::CarbohydrateInfo::determine_polymer_connections ( )
private
std::string core::chemical::carbohydrates::CarbohydrateInfo::full_name ( ) const
inline

Return the full IUPAC name of the monosaccharide.

References full_name_.

core::Size core::chemical::carbohydrates::CarbohydrateInfo::get_n_carbons ( ) const
private

References MAX_C_SIZE_LIMIT, MIN_C_SIZE_LIMIT, and residue_type_.

Referenced by init().

std::pair< core::id::TorsionType, core::uint > core::chemical::carbohydrates::CarbohydrateInfo::glycosidic_linkage_id ( core::uint  torsion_index) const

Return the BB or CHI identifier for the requested glycosidic linkage torsion angle.

Parameters
<torsion_index>,:an integer corresponding to phi (1), psi (2), or omega (3)
Returns
a pair of values corresponding to the atom tree torsion definitions, in which the first element is either the TorsionID BB or CHI and the second element is an integer

It is crucial to note that this data structure stores information to identify:
phi(n)
psi(n+1), NOT psi(n)
omega(n+1), NOT omega(n)

See Also:
Pose.phi()
Pose.set_phi()
Pose.psi()
Pose.set_psi()
Pose.omega()
Pose.set_omega()

Remarks
An enum would be better than an integer for input to this function; however, static constants phi_torsion, psi_torsion, and omega_torsion were already defined in core/id/types.hh.
The atom tree in Rosetta 3 does not allow for rings, so cyclic carbohydrates are implemented as linear residues. Because of this, the atom tree assigns backbone (BB) torsions to what it considers the main- chain. Thus, only one side of the ring is considered backbone. Side-chain (CHI) angles must be defined in the .params file for the residue; they are not automatically assigned. Glycosidic linkage torsions are not necessarily defined as main chain torsions by the atom tree, so they must be designated here, in some cases with the use of CHI angles.

References glycosidic_linkage_id_, and has_exocyclic_linkage_.

bool core::chemical::carbohydrates::CarbohydrateInfo::has_exocyclic_linkage ( ) const
inline

Return true if the attachment point of the downstream saccharide is on an exocyclic carbon.

References has_exocyclic_linkage_.

void core::chemical::carbohydrates::CarbohydrateInfo::init ( core::chemical::ResidueTypeCAP  residue_type)
private
bool core::chemical::carbohydrates::CarbohydrateInfo::is_acyclic ( ) const
inline

Return true if the monosaccharide is linear.

References ring_size_.

Referenced by is_cyclic().

bool core::chemical::carbohydrates::CarbohydrateInfo::is_aldose ( ) const
inline

Return true if the monosaccharide is an aldose.

An aldose sugar is an aldehyde derivative.

References anomeric_carbon_.

Referenced by determine_polymer_connections(), and show().

bool core::chemical::carbohydrates::CarbohydrateInfo::is_alpha_sugar ( ) const
inline

Return true if the cyclic monosaccharide is an alpha sugar.

"alpha" and "beta" designate the stereochemistry at the anomeric carbon of a cyclic sugar.

References anomer_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_beta_sugar ( ) const
inline

Return true if the cyclic monosaccharide is a beta sugar.

"alpha" and "beta" designate the stereochemistry at the anomeric carbon of a cyclic sugar.

References anomer_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_cyclic ( ) const
inline

Return true if the monosaccharide is a ring.

References is_acyclic().

bool core::chemical::carbohydrates::CarbohydrateInfo::is_D_sugar ( ) const
inline

Return true if the monosaccharide is a D-sugar.

References stereochem_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_furanose ( ) const
inline

Return true if the monosaccharide is a furanose.

A furanose has a five-membered ring (like furan).

References ring_size_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_glycoside ( ) const
inline

Return true if the monosaccharide is attached to something at the anomeric carbon.

Remarks
not yet implemented

References is_glycoside_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_heptose ( ) const
inline

Return true if the monosaccharide is a heptose.

References n_carbons_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_hexose ( ) const
inline

Return true if the monosaccharide is a hexose.

References n_carbons_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_ketose ( ) const
inline

Return true if the monosaccharide is a ketose.

A ketose sugar is a ketone derivative.
Does not distinguish between 2-ketoses (uloses) and 3-ketoses.

See also:
CarbohydrateInfo.anomeric_carbon()

References anomeric_carbon_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_L_sugar ( ) const
inline

Return true if the monosaccharide is an L-sugar.

References stereochem_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_pentose ( ) const
inline

Return true if the monosaccharide is a pentose.

References n_carbons_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_pyranose ( ) const
inline

Return true if the monosaccharide is a pyranose.

A pyranose has a six-membered ring (like pyran).

References ring_size_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_septanose ( ) const
inline

Return true if the monosaccharide is a septanose.

A septanose has a seven-membered ring.

References ring_size_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_tetrose ( ) const
inline

Return true if the monosaccharide is a tetrose.

References n_carbons_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_triose ( ) const
inline

Return true if the monosaccharide is a triose.

References n_carbons_.

bool core::chemical::carbohydrates::CarbohydrateInfo::is_uronic_acid ( ) const
inline

Return true if the primary hydroxyl group is oxidized to the acid.

References is_uronic_acid_.

core::uint core::chemical::carbohydrates::CarbohydrateInfo::mainchain_glycosidic_bond_acceptor ( ) const
inline

Return the attachment point of the downstream saccharide residue of the main chain.

Returns
an integer n of (1->n) of polysaccharide nomenclature, where n specifies the attachment point on the upstream monosaccharide residue; e.g., 4 specifies O4; n = 0 specifies an upper terminus

A monosaccharide with a group linked to it at one position is a distinct residue type from the same monosaccharide with the same group linked to it at another position. For example, Rosetta treats (1->4)-beta- D-glucopyranose as an entirely distinct residue type from (1->3)-beta-D-glucopyranose, with separate .params files for each.

See also:
CarbohydrateInfo.n_branches()
CarbohydrateInfo.branch_point()

References mainchain_glycosidic_bond_acceptor_.

core::Size core::chemical::carbohydrates::CarbohydrateInfo::n_branches ( ) const
inline

Return the number of branches off of this residue.

A monosaccharide with a group linked to it at one position is a distinct residue type from the same monosaccharide with the same group linked to it at another position. For example, Rosetta treats (1->4)-beta- D-glucopyranose as an entirely distinct residue type from (1->3)-beta-D-glucopyranose, with separate .params files for each.

See also:
CarbohydrateInfo.mainchain_glycosidic_bond_acceptor()
CarbohydrateInfo.branch_point()

Remarks
Branches are not yet implemented.

References branch_points_.

Referenced by branch_point().

core::Size core::chemical::carbohydrates::CarbohydrateInfo::n_carbons ( ) const
inline

Get the number of carbons in the monosaccharide.

References n_carbons_.

std::pair< core::id::TorsionType, core::uint > core::chemical::carbohydrates::CarbohydrateInfo::nu_id ( core::uint  subscript) const

Return the CHI identifier for the requested nu (internal ring torsion) angle.

Parameters
<subscript>,:the subscript for nu, which must be between 1 and 2 less than the ring size, inclusive
Returns
a pair of values corresponding to the atom tree torsion definitions, in which the first element is either the TorsionID BB or CHI and the second element is an integer
Remarks
The atom tree in Rosetta 3 does not allow for rings, so cyclic carbohydrates are implemented as linear residues. Because of this, the atom tree assigns backbone (BB) torsions to what it considers the main- chain. Thus, only one side of the ring is considered backbone. Side-chain (CHI) angles must be defined in the .params file for the residue; they are not automatically assigned. nu angles, which are the torsion angles defining the ring, not considered BB by the atom tree must therefore be defined as CHI angles in the .params file, even though they are not in reality side-chain torsions. Since a ring also has a multiplicity of actual side-chains, the indices for those CHI angles that are actually nu angles will vary.

References nu_id_, and ring_size_.

CarbohydrateInfo & core::chemical::carbohydrates::CarbohydrateInfo::operator= ( CarbohydrateInfo const &  object_to_copy)

References copy_data().

void core::chemical::carbohydrates::CarbohydrateInfo::read_and_set_properties ( )
private
core::Size core::chemical::carbohydrates::CarbohydrateInfo::ring_size ( ) const
inline

Get the size of the carbohydrate ring.

A linear monosaccharide has a ring size of zero.

References ring_size_.

std::string core::chemical::carbohydrates::CarbohydrateInfo::root_from_code ( std::string  code) const
inlineprivate

References CODE_TO_ROOT_MAP.

Referenced by base_name(), and determine_IUPAC_names().

std::string core::chemical::carbohydrates::CarbohydrateInfo::short_name ( ) const
inline

Return the abbreviated IUPAC name of the monosaccharide (for use in polysaccharide sequences).

References short_name_.

void core::chemical::carbohydrates::CarbohydrateInfo::show ( std::ostream &  output = std::cout) const
char core::chemical::carbohydrates::CarbohydrateInfo::stereochem ( ) const
inline

Get the stereochemical designation for the monosaccharide.

Returns
'L' or 'D'

References stereochem_.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  output,
CarbohydrateInfo const &  object_to_output 
)
friend

Member Data Documentation

std::string core::chemical::carbohydrates::CarbohydrateInfo::anomer_
private
core::uint core::chemical::carbohydrates::CarbohydrateInfo::anomeric_carbon_
private
utility::vector1<core::uint> core::chemical::carbohydrates::CarbohydrateInfo::branch_points_
private

Referenced by branch_point(), copy_data(), and n_branches().

std::map< std::string, std::string > const core::chemical::carbohydrates::CarbohydrateInfo::CODE_TO_ROOT_MAP
static

Referenced by root_from_code().

std::string core::chemical::carbohydrates::CarbohydrateInfo::full_name_
private
utility::vector1<std::pair<core::id::TorsionType, core::uint> > core::chemical::carbohydrates::CarbohydrateInfo::glycosidic_linkage_id_
private
bool core::chemical::carbohydrates::CarbohydrateInfo::has_exocyclic_linkage_
private
bool core::chemical::carbohydrates::CarbohydrateInfo::is_glycoside_
private
bool core::chemical::carbohydrates::CarbohydrateInfo::is_uronic_acid_
private
core::uint core::chemical::carbohydrates::CarbohydrateInfo::mainchain_glycosidic_bond_acceptor_
private
core::Size const core::chemical::carbohydrates::CarbohydrateInfo::MAX_C_SIZE_LIMIT = 7
staticprivate

Referenced by get_n_carbons().

core::Size const core::chemical::carbohydrates::CarbohydrateInfo::MIN_C_SIZE_LIMIT = 3
staticprivate

Referenced by get_n_carbons().

core::Size core::chemical::carbohydrates::CarbohydrateInfo::n_carbons_
private
utility::vector1<std::pair<core::id::TorsionType, core::uint> > core::chemical::carbohydrates::CarbohydrateInfo::nu_id_
private

Referenced by copy_data(), define_nu_ids(), and nu_id().

core::chemical::ResidueTypeCAP core::chemical::carbohydrates::CarbohydrateInfo::residue_type_
private
core::Size core::chemical::carbohydrates::CarbohydrateInfo::ring_size_
private
std::string core::chemical::carbohydrates::CarbohydrateInfo::short_name_
private
char core::chemical::carbohydrates::CarbohydrateInfo::stereochem_
private

The documentation for this class was generated from the following files: