Rosetta 3.4
Public Types | Public Member Functions
protocols::match::downstream::SecondaryMatcherToUpstreamResidue Class Reference

A class for an algorithm. Given a conformation of the upstream partner, the algorithm is responsible for producing a set of hits. More...

#include <SecondaryMatcherToUpstreamResidue.hh>

Inheritance diagram for protocols::match::downstream::SecondaryMatcherToUpstreamResidue:
Inheritance graph
[legend]
Collaboration diagram for protocols::match::downstream::SecondaryMatcherToUpstreamResidue:
Collaboration graph
[legend]

List of all members.

Public Types

typedef DownstreamAlgorithm parent
typedef
utility::fixedsizearray1< Size, 2 > 
Size2
typedef utility::OrderedTuple
< Size2
Size2Tuple
typedef std::pair
< SecMatchResiduePairEvaluatorCOP,
Size
Evaluator_MCFI_ID_Pair
typedef std::list
< Evaluator_MCFI_ID_Pair
EvaluatorSet

Public Member Functions

 SecondaryMatcherToUpstreamResidue (Size geom_cst_id)
virtual ~SecondaryMatcherToUpstreamResidue ()
virtual DownstreamAlgorithmOP clone () const
virtual std::list< Hitbuild_hits_at_all_positions (Matcher &matcher)
 Main driver function for hit generation. This DownstreamAlgorithm structures it's iteration over the hits from previous rounds as follows: for i = 1:n_build_positions recover_rotamer_coordinates_from_previous_round( hits_for_build_point_i ); initialize rotcoord data for all downstream algorithms with the same geom_cst_id #omp parallel for /// All class access below this point is const and parallelizable for j = 1:n_build_positions / call this function to start k loop: matcher.upstream_builder[ geom_cst_id() ]->build( j ) for k = 1:n_rotamers_j / call to start l loop: downstream_algorithm->build( j, k, rotamer_k ) ) for l = 1:n_rotamers_from_build_point_i if ( respair_evaluator_->evaluate_residues( rotamer_k, rotamer_l ) hit_list.append( Hit( j, k, ... )); return hit_list There are two important consequences to this hit-generation layout. 1. The coordinates for rotamer_k are computed n_build_position times. 2. Only a single build-position i has it's hit coordinates in memory at any point in time. This is a clear trade-off between performance and memory with a few caveats: A. It is very easy to bound the volume of space where build-point i's rotamers lie, so it should be easy to prune rotamer building, so rotamer k will be build many fewer than n_build_position times. B. By not trying to store all rotamers in memory at once, we do not impose any undue restrictions on the number of rotamers that can be enumerated. This is especially important if we're using backbone flexibility to search a wider region of conformation space.
virtual void respond_to_primary_hitlist_change (Matcher &matcher, Size round_just_completed)
 Prune hits away from the target_geomcst's hit list following a change to the hits for my geom_cst_id(). Pruning hits from the target_geomcst's hit list will trigger a round of peripheral-hitlist-change responses.
virtual void respond_to_peripheral_hitlist_change (Matcher &matcher)
 Remove my hits if my target_geomcst's hit list has been shortened. This will not trigger a round of peripheral-hitlist-change responses.
virtual std::list< Hitbuild (Size const scaffold_build_point_id, Size const upstream_conf_id, core::conformation::Residue const &upstream_residue) const
 Iterate across the hits from a particular upstream build point i that were generated in a previous round, and see if the geometry of the input upstream_residue has "satisfactory interactions" with the hits from upstream-build-point i; if so, it appends a Hit to the hitlist returned at the end of the method. (Also, see comments for the build_at_all_positions method.)
virtual bool upstream_only () const
 returns true; this secondary matcher does not describe the location of the downstream partner
virtual bool generates_primary_hits () const
 This method returns 'false' since this matcher does not describe the coordinates of the downstream partner at all.
virtual void prepare_for_match_enumeration (Matcher const &matcher)
 Prepare a map between upstream hits of the target-geomcst and a list of Hit const *'s of this geom_cst_id(). This map will be used in the function hits_to_include_with_partial_match.
virtual HitPtrListCOP hits_to_include_with_partial_match (match_dspos1 const &m) const
 Return the set of hits to be iterated across.
virtual Size n_possible_hits_per_upstream_conformation () const
void set_target_geomcst_id (Size target_geomcst_id)
void add_target_restype (core::chemical::ResidueTypeCAP target_restype)
void add_evaluator_for_target_restype (core::chemical::ResidueTypeCAP target_restype, SecMatchResiduePairEvaluatorCOP evaluator, Size mcfi_id_for_evaluator)
void process_hit (Hit const &hit, core::conformation::Residue const &upstream_conformation)
 Invoked by SecondaryMatchUpstreamResProcessor; avoids multiple inherritance, while letting the SecondaryMatcherToUpstreamResidue.

Detailed Description

A class for an algorithm. Given a conformation of the upstream partner, the algorithm is responsible for producing a set of hits.


Member Typedef Documentation


Constructor & Destructor Documentation

protocols::match::downstream::SecondaryMatcherToUpstreamResidue::SecondaryMatcherToUpstreamResidue ( Size  geom_cst_id)

Referenced by clone().

protocols::match::downstream::SecondaryMatcherToUpstreamResidue::~SecondaryMatcherToUpstreamResidue ( ) [virtual]

Member Function Documentation

void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::add_evaluator_for_target_restype ( core::chemical::ResidueTypeCAP  target_restype,
SecMatchResiduePairEvaluatorCOP  evaluator,
Size  mcfi_id_for_evaluator 
)
void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::add_target_restype ( core::chemical::ResidueTypeCAP  target_restype)
std::list< Hit > protocols::match::downstream::SecondaryMatcherToUpstreamResidue::build ( Size const  scaffold_build_point_id,
Size const  upstream_conf_id,
core::conformation::Residue const &  upstream_residue 
) const [virtual]

Iterate across the hits from a particular upstream build point i that were generated in a previous round, and see if the geometry of the input upstream_residue has "satisfactory interactions" with the hits from upstream-build-point i; if so, it appends a Hit to the hitlist returned at the end of the method. (Also, see comments for the build_at_all_positions method.)

Implements protocols::match::downstream::DownstreamAlgorithm.

References make_table_of_pilot_apps::begin, protocols::match::Hit::first(), protocols::match::Hit::second(), core::chemical::ResidueType::set_xyz(), and core::conformation::Residue::type().

std::list< Hit > protocols::match::downstream::SecondaryMatcherToUpstreamResidue::build_hits_at_all_positions ( Matcher matcher) [virtual]

Main driver function for hit generation. This DownstreamAlgorithm structures it's iteration over the hits from previous rounds as follows: for i = 1:n_build_positions recover_rotamer_coordinates_from_previous_round( hits_for_build_point_i ); initialize rotcoord data for all downstream algorithms with the same geom_cst_id #omp parallel for /// All class access below this point is const and parallelizable for j = 1:n_build_positions / call this function to start k loop: matcher.upstream_builder[ geom_cst_id() ]->build( j ) for k = 1:n_rotamers_j / call to start l loop: downstream_algorithm->build( j, k, rotamer_k ) ) for l = 1:n_rotamers_from_build_point_i if ( respair_evaluator_->evaluate_residues( rotamer_k, rotamer_l ) hit_list.append( Hit( j, k, ... )); return hit_list There are two important consequences to this hit-generation layout. 1. The coordinates for rotamer_k are computed n_build_position times. 2. Only a single build-position i has it's hit coordinates in memory at any point in time. This is a clear trade-off between performance and memory with a few caveats: A. It is very easy to bound the volume of space where build-point i's rotamers lie, so it should be easy to prune rotamer building, so rotamer k will be build many fewer than n_build_position times. B. By not trying to store all rotamers in memory at once, we do not impose any undue restrictions on the number of rotamers that can be enumerated. This is especially important if we're using backbone flexibility to search a wider region of conformation space.

This DownstreamAlgorithm structures it's iteration over the target hits from previous rounds as follows: for i = 1:n_build_positions recover_rotamer_coordinates_from_previous_round( hits_for_build_point_i ); initialize rotcoord data for all downstream algorithms with the same geom_cst_id #omp parallel for /// All class access below this point is const and parallelizable for j = 1:n_build_positions / call this function to start k loop: matcher.upstream_builder[ geom_cst_id() ]->build( j ) for k = 1:n_rotamers_j / call to start l loop: downstream_algorithm->build( j, k, rotamer_k ) ) for l = 1:n_rotamers_from_build_point_i if ( respair_evaluator_->evaluate_residues( rotamer_k, rotamer_l ) hit_list.append( Hit( j, k, ... )); return hit_list There are two important consequences to this hit-generation layout. 1. The coordinates for rotamer_k are computed n_build_position times. 2. Only a single build-position i has it's hit coordinates in memory at any point in time. This is a clear trade-off between performance and memory with a few caveats: A. It is very easy to bound the volume of space where build-point i's rotamers lie, so it should be easy to prune rotamer building, so rotamer k will be build many fewer than n_build_position times. B. By not trying to store all rotamers in memory at once, we do not impose any undue restrictions on the number of rotamers that can be enumerated. This is especially important if we're using backbone flexibility to search a wider region of conformation space.

Reimplemented from protocols::match::downstream::DownstreamAlgorithm.

References protocols::fldsgn::topology::compare(), core::sequence::end, protocols::match::downstream::DownstreamAlgorithm::geom_cst_id(), protocols::match::Matcher::per_constraint_build_points(), protocols::match::downstream::TR(), and protocols::match::Matcher::upstream_builder().

DownstreamAlgorithmOP protocols::match::downstream::SecondaryMatcherToUpstreamResidue::clone ( ) const [virtual]
bool protocols::match::downstream::SecondaryMatcherToUpstreamResidue::generates_primary_hits ( ) const [virtual]

This method returns 'false' since this matcher does not describe the coordinates of the downstream partner at all.

Implements protocols::match::downstream::DownstreamAlgorithm.

HitPtrListCOP protocols::match::downstream::SecondaryMatcherToUpstreamResidue::hits_to_include_with_partial_match ( match_dspos1 const &  m) const [virtual]

Return the set of hits to be iterated across.

Implements protocols::match::downstream::DownstreamAlgorithm.

References protocols::match::match_dspos1::upstream_hits.

SecondaryMatcherToUpstreamResidue::Size protocols::match::downstream::SecondaryMatcherToUpstreamResidue::n_possible_hits_per_upstream_conformation ( ) const [virtual]
void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::prepare_for_match_enumeration ( Matcher const &  matcher) [virtual]

Prepare a map between upstream hits of the target-geomcst and a list of Hit const *'s of this geom_cst_id(). This map will be used in the function hits_to_include_with_partial_match.

Reimplemented from protocols::match::downstream::DownstreamAlgorithm.

References protocols::match::downstream::DownstreamAlgorithm::geom_cst_id(), and protocols::match::Matcher::hits().

void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::process_hit ( Hit const &  hit,
core::conformation::Residue const &  upstream_conformation 
)
void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::respond_to_peripheral_hitlist_change ( Matcher matcher) [virtual]
void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::respond_to_primary_hitlist_change ( Matcher matcher,
Size  round_just_completed 
) [virtual]

Prune hits away from the target_geomcst's hit list following a change to the hits for my geom_cst_id(). Pruning hits from the target_geomcst's hit list will trigger a round of peripheral-hitlist-change responses.

Reimplemented from protocols::match::downstream::DownstreamAlgorithm.

References protocols::match::Matcher::erase_hit(), protocols::match::downstream::DownstreamAlgorithm::geom_cst_id(), protocols::match::Matcher::hit_list_begin(), protocols::match::Matcher::hit_list_end(), protocols::match::Matcher::hits(), and protocols::match::downstream::TR().

void protocols::match::downstream::SecondaryMatcherToUpstreamResidue::set_target_geomcst_id ( Size  target_geomcst_id)
bool protocols::match::downstream::SecondaryMatcherToUpstreamResidue::upstream_only ( ) const [virtual]

returns true; this secondary matcher does not describe the location of the downstream partner

Implements protocols::match::downstream::DownstreamAlgorithm.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines