Rosetta
|
secondary structure scoring cut from classic rosetta structure.h/structure.cc More...
#include <SecondaryStructurePotential.hh>
Public Types | |
typedef ObjexxFCL::FArray1D< Real > | FArray1D_real |
typedef ObjexxFCL::FArray2D< Real > | FArray2D_real |
typedef ObjexxFCL::FArray4D< Real > | FArray4D_real |
typedef ObjexxFCL::FArray1< Real > | FArray1_real |
typedef ObjexxFCL::FArray1A< Real > | FArray1A_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_ |
secondary structure scoring cut from classic rosetta structure.h/structure.cc
typedef ObjexxFCL::FArray1< Real > core::scoring::SecondaryStructurePotential::FArray1_real |
typedef ObjexxFCL::FArray1A< Real > core::scoring::SecondaryStructurePotential::FArray1A_real |
typedef ObjexxFCL::FArray1D< int > core::scoring::SecondaryStructurePotential::FArray1D_int |
typedef ObjexxFCL::FArray1D< Real > core::scoring::SecondaryStructurePotential::FArray1D_real |
typedef ObjexxFCL::FArray2D< Real > core::scoring::SecondaryStructurePotential::FArray2D_real |
typedef ObjexxFCL::FArray4D< Real > core::scoring::SecondaryStructurePotential::FArray4D_real |
typedef conformation::symmetry::SymmetricConformation core::scoring::SecondaryStructurePotential::SymmetricConformation |
typedef conformation::symmetry::SymmetryInfoCOP core::scoring::SecondaryStructurePotential::SymmetryInfoCOP |
core::scoring::SecondaryStructurePotential::SecondaryStructurePotential | ( | ) |
default constructor
References load_phi_theta_bins().
|
inlineoverridedefault |
default destructor
|
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
[out] | dist | length of v21 |
[out] | v21 | vector connecting midpoints |
defined by a1,a2 and a3,a4
[out] | dist | length of v21 |
[out] | v21 | vector connecting midpoints |
|
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().
|
private |
References core::scoring::SS_Killhairpins_Info::check_hairpin(), core::pose::Pose::data(), core::scoring::SS_Killhairpins_Info::kill_antiparallel(), core::scoring::SS_Killhairpins_Info::kill_parallel(), core::pose::datacache::CacheableDataType::SS_KILLHAIRPINS_INFO, and core::scoring::total_score.
Referenced by sspair().
|
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().
|
staticprivate |
|
private |
score hspair
References core::scoring::SS_Info::bb_pos(), core::scoring::BB_Pos::C(), core::pose::Pose::conformation(), dist_pair(), core::pose::Pose::energies(), core::scoring::Energies::energy_graph(), get_foldtree_seqsep(), core::scoring::SS_Info::helices(), helix_end(), core::scoring::Helices::HH_helix_end, core::scoring::Helices::HH_resnum, core::pose::symmetry::is_symmetric(), protocols::mean_field::min(), core::scoring::BB_Pos::N(), pts_, core::scoring::retrieve_const_ss_info_from_pose(), spherical(), core::scoring::Strands::SS_dimer, core::scoring::Strands::SS_strand_end, core::scoring::SS_Info::strands(), core::scoring::Helices::total_HH_dimer, and core::scoring::Strands::total_SS_dimer.
Referenced by score().
|
private |
identifies secondary structure at the start of scoring and loads the Strands/Helices data
identifies secondary structure at the start of scoring and loads the Strands/Helices data
References core::pose::Pose::conformation(), core::conformation::Residue::has_variant_type(), core::scoring::Helices::HH_helix_end, core::scoring::Helices::HH_resnum, protocols::mean_field::max(), protocols::mean_field::min(), core::chemical::REPLONLY, core::pose::Pose::residue(), core::conformation::Conformation::secstruct(), core::pose::Pose::size(), core::scoring::Strands::SS_dimer, core::scoring::Strands::SS_resnum, core::scoring::Strands::SS_strand, core::scoring::Strands::SS_strand_end, core::scoring::Helices::total_HH_dimer, core::scoring::Strands::total_SS_dimer, and core::scoring::Strands::total_strands.
Referenced by setup_for_scoring().
|
staticprivate |
|
staticprivate |
|
private |
|
staticprivate |
|
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().
|
static |
References protocols::abinitio::filename(), core::conformation::membrane::in, core::scoring::epr_deer::ln(), and protocols::hybridization::val.
Referenced by protocols::fldsgn::potentials::sspot::NatbiasStrandPairPotential::rsigma_dot_initializer(), and protocols::fldsgn::potentials::sspot::SSPairPotential::rsigma_dot_initializer().
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 |
score secondary structure
References hspair(), sheets_from_dimers(), and sspair().
Referenced by core::energy_methods::SecondaryStructureEnergy::finalize_total_energy().
void core::scoring::SecondaryStructurePotential::setup_for_scoring | ( | pose::Pose & | pose | ) | const |
References core::scoring::SS_Info::bb_pos(), core::scoring::fill_bb_pos(), core::scoring::SS_Info::helices(), identify_ss(), core::scoring::SS_Info::resize(), core::scoring::retrieve_nonconst_ss_info_from_pose(), core::pose::Pose::size(), and core::scoring::SS_Info::strands().
Referenced by core::energy_methods::SecondaryStructureEnergy::setup_for_scoring().
|
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().
|
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
[out] | v21 | vector connecting midpoints |
References protocols::hybridization::r1.
|
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().
|
staticprivate |
|
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().
|
private |
Referenced by load_phi_theta_bins(), and sspair().
|
private |
|
private |
Referenced by load_phi_theta_bins().
|
private |
Referenced by load_phi_theta_bins().
|
private |
Referenced by load_phi_theta_bins().
|
private |
Referenced by sheets_from_dimers().
|
private |
Referenced by hspair(), load_phi_theta_bins(), and sspair().
|
private |
Referenced by sspair().
|
private |
Referenced by sspair().