Rosetta 3.5

Functions  
core::Angle  calculate_carbohydrate_phi (Pose const &pose, uint const sequence_position) 
Calculate and return the phi angle between a saccharide residue of the given pose and the previous residue. More...  
core::Angle  carbohydrate_phi_offset_from_BB (Pose const &pose, uint const sequence_position) 
Return the number of degrees by which the phi angle between a saccharide residue of the given pose and the previous residue differs from the BB torsion used by Rosetta. More...  
core::Angle core::pose::carbohydrates::calculate_carbohydrate_phi  (  Pose const &  pose, 
uint const  sequence_position  
) 
Calculate and return the phi angle between a saccharide residue of the given pose and the previous residue.
This specialcase function for carbohydrate phis is necessary, because of the following:
For aldopyranoses, phi is defined as O5(n)C1(n)OX(n1)CX(n1), where X is the position of the glycosidic linkage.
For aldofuranoses, phi is defined as O4(n)C1(n)OX(n1)CX(n1).
For 2ketopyranoses, phi is defined as O6(n)C2(n)OX(n1)CX(n1).
For 2ketofuranoses, phi is defined as O5(n)C2(n)OX(n1)CX(n1).
Et cetera...
However, for aldopyranoses, BB X+1 is defined as: CXOXUPPER1UPPER2.
CHI 1 is O5C1O1HO1, which for an internal residue with virtual atoms for O1 and HO1, is the same as phi(n), provided the virtual atoms are made to move with any rotation of BB X+1. The same concept holds for aldo furanoses; however, ketoses are more complicated. The cyclic oxygen must be the reference for phi, yet CHI 2 at the anomeric position is defined with C1 as the reference atom, not the cyclic oxygen (O5 for furanoses, O6 for pyranoses). To complicate matters further, two virtual atoms in a row in a CHI gives NAN, so CHI angles cannot be used after all. Thus, we have to use vector calculus to calculate phi....
References protocols::match::upstream::b, core::pack::dunbrack::c, core::conformation::Residue::carbohydrate_info(), core::pose::Pose::residue(), and core::pose::TR().
Referenced by carbohydrate_phi_offset_from_BB(), and core::pose::Pose::phi().
core::Angle core::pose::carbohydrates::carbohydrate_phi_offset_from_BB  (  Pose const &  pose, 
uint const  sequence_position  
) 
Return the number of degrees by which the phi angle between a saccharide residue of the given pose and the previous residue differs from the BB torsion used by Rosetta.
References core::id::BB, calculate_carbohydrate_phi(), core::chemical::ResidueType::carbohydrate_info(), core::pose::Pose::residue_type(), and core::pose::Pose::torsion().
Referenced by core::pose::Pose::set_phi().