Rosetta
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
core::scoring::SecondaryStructurePotential Class Reference

secondary structure scoring cut from classic rosetta structure.h/structure.cc More...

#include <SecondaryStructurePotential.hh>

Inheritance diagram for core::scoring::SecondaryStructurePotential:
Inheritance graph
[legend]

Public Types

typedef ObjexxFCL::FArray1D< RealFArray1D_real
 
typedef ObjexxFCL::FArray2D< RealFArray2D_real
 
typedef ObjexxFCL::FArray4D< RealFArray4D_real
 
typedef ObjexxFCL::FArray1< RealFArray1_real
 
typedef ObjexxFCL::FArray1A< RealFArray1A_real
 
typedef ObjexxFCL::FArray1D< int > FArray1D_int
 
typedef conformation::symmetry::SymmetricConformation SymmetricConformation
 
typedef conformation::symmetry::SymmetryInfoCOP SymmetryInfoCOP
 

Public Member Functions

 SecondaryStructurePotential ()
 default constructor More...
 
 ~SecondaryStructurePotential () override=default
 default destructor More...
 
void setup_for_scoring (pose::Pose &pose) const
 
void score (pose::Pose const &pose, SecondaryStructureWeights const &weights, Real &hs_score, Real &ss_score, Real &rsigma_score, Real &sheet_score) const
 score secondary structure More...
 

Static Public Member Functions

static void rsigma_dot_initializer (FArray4D_real &rsigma_dot)
 

Private Member Functions

void hspair (pose::Pose const &pose, Real &hs_score) const
 score hspair More...
 
void sspair (pose::Pose const &pose, SecondaryStructureWeights const &weights, Real &ss_score, Real &rsigma_score) const
 score sspair More...
 
float hairpin_killing_score (pose::Pose const &pose, Size const &pos1, Size const &pos2, Real const &theta, float const &ss_score) const
 
Real sheets_from_dimers (pose::Pose const &pose) const
 This function takes a set of dimer neighbors, and determines how many sheets there, and how many strands are in each sheet This information is then used to calculate the "poker hand" score, which reflects to probability of that distribution of strands and sheets. More...
 
void identify_ss (pose::Pose const &pose, Helices &helices, Strands &strands) const
 identifies secondary structure at the start of scoring and loads the Strands/Helices data More...
 
void helix_end (int const &pos1, BB_Pos const &bb_pos, Vector &p1, Vector &p2) const
 function reads in two points in sequence and returns two points in space, the endpoints of the axis through an alpha-helix More...
 
void pair_dp (int const &ss1, int const &ss2, BB_Pos const &bb_pos, Real &dp, Vector const &vdist, int &sign1, int &sign2) const
 calculate sum of dot product of the co vectors of strand dimers ss1 and ss2 with the vector connecting the midpoints of the dimer vectors (vdist) also determine return the sign of the dot products for each dimer to determine which direction the CO groups point More...
 
int get_foldtree_seqsep (pose::Pose const &pose, int pos1, int pos2, int gap_size=10) const
 identifies the sequence separation along the fold tree add the gap_size (default 10 ) into seqsep when there is chain break between pos1 and pos2 More...
 
void load_phi_theta_bins (std::string const &hs_filename="scoring/score_functions/SecondaryStructurePotential/phi.theta.36.HS.resmooth", std::string const &ss_filename="scoring/score_functions/SecondaryStructurePotential/phi.theta.36.SS.resmooth")
 load phi/theta bins for use in secondary structure scoring More...
 

Static Private Member Functions

static void dist_pair (Vector const &a1, Vector const &a2, Vector const &a3, Vector const &a4, Real &dist, Vector &cen1, Vector &cen2, Vector &v21)
 find the vector connecting the midpoints of two line segments defined by a1,a2 and a3,a4 More...
 
static void spherical (Vector const &a2, Vector const &a4, Real &phi, Real &theta, Vector const &cen1, Vector const &cen2, Vector const &v21)
 find the angle (theta) between two vectors v1 and v2 and the angle (phi) by which v2 is rotated out of the plane defined by v1 and v21 around v1 (ie v1 is the z-axis) More...
 
static void sigma (Vector const &a2, Vector const &cen1, Vector const &v21, Real &sig)
 find angle sigma between vectors cen1->a2 and v21 More...
 
static void idsn_initializer (FArray1D_int &idsn)
 
static void ids_initializer (FArray1D_int &ids)
 
static void ssdist_initializer (FArray2D_real &ssdist)
 
static void hs_dp_initializer (FArray1D_real &hs_dp)
 
static void m_term_initializer (FArray1D_real &m_term)
 
static void ss_penalty_initializer (FArray1D_real &SS_penalty)
 Penalty for pairing strand dimers that are close in sequence. More...
 

Private Attributes

FArray1D_int iptsn_
 
FArray4D_real pts_
 
FArray1D_real ds_
 
FArray1D_int const idsn_
 
FArray1D_int const ids_
 
FArray2D_real const ssdist_
 
FArray1D_real const hs_dp_
 
FArray4D_real const rsigma_dot_
 
FArray1D_real const m_term_
 

Detailed Description

secondary structure scoring cut from classic rosetta structure.h/structure.cc

Member Typedef Documentation

◆ FArray1_real

◆ FArray1A_real

◆ FArray1D_int

◆ FArray1D_real

◆ FArray2D_real

◆ FArray4D_real

◆ SymmetricConformation

◆ SymmetryInfoCOP

Constructor & Destructor Documentation

◆ SecondaryStructurePotential()

core::scoring::SecondaryStructurePotential::SecondaryStructurePotential ( )

default constructor

References load_phi_theta_bins().

◆ ~SecondaryStructurePotential()

core::scoring::SecondaryStructurePotential::~SecondaryStructurePotential ( )
inlineoverridedefault

default destructor

Member Function Documentation

◆ dist_pair()

void core::scoring::SecondaryStructurePotential::dist_pair ( Vector const &  a1,
Vector const &  a2,
Vector const &  a3,
Vector const &  a4,
Real dist,
Vector cen1,
Vector cen2,
Vector v21 
)
staticprivate

find the vector connecting the midpoints of two line segments defined by a1,a2 and a3,a4

find the vector connecting the midpoints of two line segments

Parameters
[out]distlength of v21
[out]v21vector connecting midpoints

defined by a1,a2 and a3,a4

Parameters
[out]distlength of v21
[out]v21vector connecting midpoints

Referenced by hspair(), and sspair().

◆ get_foldtree_seqsep()

int core::scoring::SecondaryStructurePotential::get_foldtree_seqsep ( pose::Pose const &  pose,
int  pos1,
int  pos2,
int  gap_size = 10 
) const
private

identifies the sequence separation along the fold tree add the gap_size (default 10 ) into seqsep when there is chain break between pos1 and pos2

identifies the sequence separation along the fold tree lin the old way to calculate the sequence separation takes an asumption of no-break chain lin when there is chain break between pos1 and pos2, we add a gap to make a correct calculation in ss energy

References core::sequence::end, core::pose::Pose::fold_tree(), core::kinematics::FoldTree::is_simple_tree(), core::chemical::ResidueType::is_terminus(), protocols::mean_field::max(), protocols::mean_field::min(), and core::pose::Pose::residue_type().

Referenced by hspair(), and sspair().

◆ hairpin_killing_score()

float core::scoring::SecondaryStructurePotential::hairpin_killing_score ( pose::Pose const &  pose,
Size const &  pos1,
Size const &  pos2,
Real const &  theta,
float const &  ss_score 
) const
private

◆ helix_end()

void core::scoring::SecondaryStructurePotential::helix_end ( int const &  pos1,
BB_Pos const &  bb_pos,
Vector p1,
Vector p2 
) const
private

function reads in two points in sequence and returns two points in space, the endpoints of the axis through an alpha-helix

function reads in two points in sequence and returns two points in space,

the endpoints of the axis through an alpha-helix

References core::scoring::BB_Pos::C(), core::scoring::BB_Pos::CA(), and core::scoring::BB_Pos::N().

Referenced by hspair().

◆ hs_dp_initializer()

void core::scoring::SecondaryStructurePotential::hs_dp_initializer ( FArray1D_real hs_dp)
staticprivate

◆ hspair()

void core::scoring::SecondaryStructurePotential::hspair ( pose::Pose const &  pose,
Real hs_score 
) const
private

◆ identify_ss()

void core::scoring::SecondaryStructurePotential::identify_ss ( pose::Pose const &  pose,
Helices helices,
Strands strands 
) const
private

◆ ids_initializer()

void core::scoring::SecondaryStructurePotential::ids_initializer ( FArray1D_int ids)
staticprivate

◆ idsn_initializer()

void core::scoring::SecondaryStructurePotential::idsn_initializer ( FArray1D_int idsn)
staticprivate

◆ load_phi_theta_bins()

void core::scoring::SecondaryStructurePotential::load_phi_theta_bins ( std::string const &  hs_filename = "scoring/score_functions/SecondaryStructurePotential/phi.theta.36.HS.resmooth",
std::string const &  ss_filename = "scoring/score_functions/SecondaryStructurePotential/phi.theta.36.SS.resmooth" 
)
private

load phi/theta bins for use in secondary structure scoring

References ds_, ids_, idsn_, iptsn_, and pts_.

Referenced by SecondaryStructurePotential().

◆ m_term_initializer()

void core::scoring::SecondaryStructurePotential::m_term_initializer ( FArray1D_real m_term)
staticprivate

◆ pair_dp()

void core::scoring::SecondaryStructurePotential::pair_dp ( int const &  ss1,
int const &  ss2,
BB_Pos const &  bb_pos,
Real dp,
Vector const &  vdist,
int &  sign1,
int &  sign2 
) const
private

calculate sum of dot product of the co vectors of strand dimers ss1 and ss2 with the vector connecting the midpoints of the dimer vectors (vdist) also determine return the sign of the dot products for each dimer to determine which direction the CO groups point

calculate sum of dot product of the co vectors of strand dimers ss1 and ss2

with the vector connecting the midpoints of the dimer vectors (vdist)

also determine return the sign of the dot products for each dimer

to determine which direction the CO groups point

References core::scoring::BB_Pos::C(), and core::scoring::BB_Pos::O().

Referenced by sspair().

◆ rsigma_dot_initializer()

void core::scoring::SecondaryStructurePotential::rsigma_dot_initializer ( FArray4D_real rsigma_dot)
static

◆ score()

void core::scoring::SecondaryStructurePotential::score ( pose::Pose const &  pose,
SecondaryStructureWeights const &  weights,
Real hs_score,
Real ss_score,
Real rsigma_score,
Real sheet_score 
) const

◆ setup_for_scoring()

void core::scoring::SecondaryStructurePotential::setup_for_scoring ( pose::Pose pose) const

◆ sheets_from_dimers()

Real core::scoring::SecondaryStructurePotential::sheets_from_dimers ( pose::Pose const &  pose) const
private

This function takes a set of dimer neighbors, and determines how many sheets there, and how many strands are in each sheet This information is then used to calculate the "poker hand" score, which reflects to probability of that distribution of strands and sheets.

apl This function reads the strand pairing information for all dimer apl neighbors to determine how many strands are in each sheet. It apl uses a fast conected-component detection data structure to do so. apl Once the number of strands for each sheet is known, a per-sheet "poker apl hand score" is computed and these scores summed. apl Old comments follow.

js This function takes a set of dimer neighbors, and determines how js many sheets there, and how many strands are in each sheet js This information is then used to calculate the "poker hand" score, js which reflects to probability of that distribution of strands and js sheets. js In current version, it seems to simply penalize sheets with fewer js strands compared to those with more strands.

js This function looks at a list of dimers, which contains up to js two neighbors for each dimer. In priniciple these neighbors would js be hydrogen bond partners in neighboring strands. This function js will take this list, however it is made.

js Currently, dimer neighbors are defined somewhat arbitrarily. js If I understand the code correctly, the first and last dimers in js sequence that follow the current dimer, and that are within 6.5 js angstroms, are the neighbors. There is no orientation dependence js on what counts as a strand neighbor.

js A sheet is then loosely defined by all the strands that are connected js by one of these neighbors. This amounts to "single-linkage clustering." js A sheet is determined by the set of strands that can be linked by js the dimer neighbors. Note that a one neighbor is enough to say that js two strands are in a sheet.

js The final score is put into sheet_score, and is determined by the js number of sheets of each size.

js Basic strategy: go through all dimers, finding neigboring strands js Because each dimer can only have two neighbors we can first search js all the way down one side, and then the other. This will give a set js of dimers that are connected. The strands in which these dimers reside js are then considered connected into sheets. By going through all js dimers with the proper bookkeeping, we can determine how many sheets js there are, and how many strands in each.

References core::pose::Pose::conformation(), core::scoring::Strands::dimer_neighbor, core::pose::symmetry::is_symmetric(), m_term_, protocols::mean_field::min(), core::scoring::retrieve_const_ss_info_from_pose(), core::scoring::Strands::SS_strand, core::scoring::Strands::SS_strand_end, core::scoring::SS_Info::strands(), core::scoring::Strands::total_SS_dimer, and core::scoring::Strands::total_strands.

Referenced by score().

◆ sigma()

void core::scoring::SecondaryStructurePotential::sigma ( Vector const &  a2,
Vector const &  cen1,
Vector const &  v21,
Real sig 
)
staticprivate

find angle sigma between vectors cen1->a2 and v21

Parameters
[out]sigsigma

Referenced by sspair().

◆ spherical()

void core::scoring::SecondaryStructurePotential::spherical ( Vector const &  a2,
Vector const &  a4,
Real phi,
Real theta,
Vector const &  cen1,
Vector const &  cen2,
Vector const &  v21 
)
staticprivate

find the angle (theta) between two vectors v1 and v2 and the angle (phi) by which v2 is rotated out of the plane defined by v1 and v21 around v1 (ie v1 is the z-axis)

define a coordinate system with Z axis along cen1->a2 (v1), xz plane defined by cen1->a2 and v21. and origin at cen1. Find the spherical coordinates phi,and theta of point a4 if vector cen2->a4 was moved such that cen2=cen1

Parameters
[out]v21vector connecting midpoints

References protocols::hybridization::r1.

Referenced by hspair(), and sspair().

◆ ss_penalty_initializer()

void core::scoring::SecondaryStructurePotential::ss_penalty_initializer ( FArray1D_real SS_penalty)
staticprivate

Penalty for pairing strand dimers that are close in sequence.

Inferred from the log ratio of pairing probabilities of strands

in the PDB vs. in Rosetta decoys. Calculated as a function of

strand separation.

Referenced by sspair().

◆ ssdist_initializer()

void core::scoring::SecondaryStructurePotential::ssdist_initializer ( FArray2D_real ssdist)
staticprivate

◆ sspair()

void core::scoring::SecondaryStructurePotential::sspair ( pose::Pose const &  pose,
SecondaryStructureWeights const &  weights,
Real ss_score,
Real rsigma_score 
) const
private

score sspair

References core::scoring::SS_Info::bb_pos(), core::scoring::BB_Pos::C(), core::pose::Pose::conformation(), core::pose::Pose::data(), core::scoring::DimerPairing::dimer1(), core::scoring::DimerPairing::dimer2(), core::scoring::Strands::dimer_neighbor, core::scoring::dimer_pairing_pointer_sorter(), dist_pair(), ds_, core::pose::Pose::energies(), core::scoring::Energies::energy_graph(), core::scoring::SecondaryStructureWeights::get_antiparallel_weight(), get_foldtree_seqsep(), core::scoring::SecondaryStructureWeights::get_localstrandpair_penalty(), core::scoring::SecondaryStructureWeights::get_max_strand_dist_cutoff(), core::scoring::SecondaryStructureWeights::get_parallel_weight(), core::scoring::SecondaryStructureWeights::get_seq_sep_scale(), core::scoring::SecondaryStructureWeights::get_ss_cutoff(), core::scoring::SecondaryStructureWeights::get_ss_lowstrand(), core::scoring::SecondaryStructureWeights::get_strand_dist_cutoff(), core::scoring::SecondaryStructureWeights::get_stretch_strand_dist_cutoff(), hairpin_killing_score(), core::pose::symmetry::is_symmetric(), core::scoring::BB_Pos::N(), pair_dp(), pts_, core::scoring::retrieve_const_ss_info_from_pose(), rsigma_dot_, core::scoring::DimerPairing::score(), sigma(), core::scoring::DimerPairing::sign1(), core::scoring::DimerPairing::sign2(), spherical(), core::scoring::Strands::SS_dimer, core::pose::datacache::CacheableDataType::SS_KILLHAIRPINS_INFO, ss_penalty_initializer(), core::scoring::Strands::SS_resnum, core::scoring::Strands::SS_strand, core::scoring::Strands::SS_strand_end, ssdist_, core::scoring::SS_Info::strands(), core::scoring::Strands::total_SS_dimer, and core::scoring::DimerPairing::valid().

Referenced by score().

Member Data Documentation

◆ ds_

FArray1D_real core::scoring::SecondaryStructurePotential::ds_
private

Referenced by load_phi_theta_bins(), and sspair().

◆ hs_dp_

FArray1D_real const core::scoring::SecondaryStructurePotential::hs_dp_
private

◆ ids_

FArray1D_int const core::scoring::SecondaryStructurePotential::ids_
private

Referenced by load_phi_theta_bins().

◆ idsn_

FArray1D_int const core::scoring::SecondaryStructurePotential::idsn_
private

Referenced by load_phi_theta_bins().

◆ iptsn_

FArray1D_int core::scoring::SecondaryStructurePotential::iptsn_
private

Referenced by load_phi_theta_bins().

◆ m_term_

FArray1D_real const core::scoring::SecondaryStructurePotential::m_term_
private

Referenced by sheets_from_dimers().

◆ pts_

FArray4D_real core::scoring::SecondaryStructurePotential::pts_
private

Referenced by hspair(), load_phi_theta_bins(), and sspair().

◆ rsigma_dot_

FArray4D_real const core::scoring::SecondaryStructurePotential::rsigma_dot_
private

Referenced by sspair().

◆ ssdist_

FArray2D_real const core::scoring::SecondaryStructurePotential::ssdist_
private

Referenced by sspair().


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