|
| SecondaryMatcherToDownstreamResidue (core::pose::PoseCOP upstream_pose, Size geom_cst_id) |
|
virtual | ~SecondaryMatcherToDownstreamResidue () |
|
virtual DownstreamAlgorithmOP | clone () const |
|
virtual std::list< Hit > | build_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:this->geom_cst_id() - 1 if ( ! matcher->representative_downstream_algorithm( i )->generates_primary_hits() ) continue; for j = 1:n_build_points_for_geomcst( i ) recover_downstream_coordinates_from_previous_round( hit_subset_j ); initialize TaretRotamerCoords 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 k = 1:n_build_positions /// call this function to start l loop: matcher.upstream_builder[ geom_cst_id() ]->build( k ) for l = 1:n_rotamers_k /// call to start m loop: downstream_algorithm->build( k, l, rotamer_l ) ) for m = 1:n_hits_in_block_j if ( respair_evaluator_->evaluate_residues( rotamer_l, rotamer_m ) hit_list.append( Hit( k, l, i, 1, hit[ m ].second() )); return hit_list There are two important consequences to this hit-generation layout. More...
|
|
virtual void | respond_to_primary_hitlist_change (Matcher &matcher, Size round_just_completed) |
| mimic the classic matcher's reset of the Occupied space hash. More...
|
|
virtual void | respond_to_peripheral_hitlist_change (Matcher &matcher) |
| Remove my hits if they fall into a volume of the occupied space hash that is no longer occupied. More...
|
|
virtual std::list< Hit > | build (Size const scaffold_build_point_id, Size const upstream_conf_id, core::conformation::Residue const &upstream_residue) const |
| Iterate across the conformations of the downstream residue coming from hits generated in previous rounds, and add hits for each upstream residue that (Also, see comments for the build_at_all_positions method.) More...
|
|
virtual bool | upstream_only () const |
| returns false; this secondary matcher describes the location of the downstream partner even though it does not generate that location itself. Matches may be found by hashing the 6D coordinate of the downstream partner. More...
|
|
virtual bool | generates_primary_hits () const |
| This method returns 'false' since this matcher does not describe the coordinates of the downstream partner at all. More...
|
|
HitPtrListCOP | hits_to_include_with_partial_match (match_dspos1 const &) const |
| This method is invoked by the Matcher as it enumerates matches should this class return "true" in it's upstream_only. method. The Matcher will enumerate matches placing hits into the match for all of the geometric-constraints which describe the downstream partner's 6D coordinates in their hits, and then for all other geometric constraints in ascending order. The hits for upstream residues 1 to geom_cst_id() - 1 are all valid; the hit for geom-cst i, given that i > geom_cst_id() - 1 is valid if and only if the downstream algorithm for geom-cst i returns true in it's upstream_only(). The Hit const * list should point at the Matcher's hits. Between prepare-for-match enumeration and note_match_enumeration_completed, the Matcher provides a guarantee to the downstream algorithm that it's hit lists have not changed, and therefore all Hit *'s remain valid. The Matcher is providing a "match_dspos1 const &" instead of a "match const &" because this DownstreamAlgorithm should not be examining the 6D coordinates of the downstream partner according to other geometric constraints, and because the Matcher's match_dspos1-enumeration technique could not readily construct a match, the Matcher's match-enumeration technique can readily construct a match_dspos1. Data in the input match_dspos1 relating to the downstream partner is undefined. More...
|
|
virtual Size | n_possible_hits_per_upstream_conformation () const |
|
void | set_downstream_restype (core::chemical::ResidueTypeCOP downstream_restype) |
|
void | set_focused_geomcst_id (Size focused_geomcst_id) |
|
void | add_evaluator (SecMatchResiduePairEvaluatorCOP evaluator, Size mcfi_id) |
|
void | set_catalytic_atoms (utility::vector1< core::Size > catalytic_atoms) |
|
| DownstreamAlgorithm (Size geom_cst_id) |
|
| DownstreamAlgorithm (DownstreamAlgorithm const &) |
|
DownstreamAlgorithm const & | operator= (DownstreamAlgorithm const &) |
|
virtual | ~DownstreamAlgorithm () |
|
virtual void | prepare_for_match_enumeration (Matcher const &) |
| Called at the conclusion of matching, the Matcher signals to the downstream algorithm that it's time to prepare for match generation; if the downstream algorithm needs to enumerate compatible hits in response to the invokation of its hits_to_include_with_partial_match method, then now is the time to prepare for those calls. Base class has a noop implementation. More...
|
|
void | set_bb_grid (BumpGridCOP bbgrid) |
|
void | set_active_site_grid (ActiveSiteGridCOP active_site_grid) |
|
Size | geom_cst_id () const |
|
void | set_dsbuilder (DownstreamBuilderOP dsbuilder) |
|
DownstreamBuilderOP | get_dsbuilder () const |
|
bool | are_colliding (core::conformation::Residue const &us_res, core::conformation::Residue const &ds_res, utility::vector1< core::id::AtomID > const &ds_atoms, utility::vector1< core::Size > const &catalytic_atoms) const |
|
A class for an algorithm. Given a conformation of the downstream partner, the algorithm is responsible for producing a set of hits.
std::list< Hit > protocols::match::downstream::SecondaryMatcherToDownstreamResidue::build |
( |
Size const |
scaffold_build_point_id, |
|
|
Size const |
upstream_conf_id, |
|
|
core::conformation::Residue const & |
upstream_residue |
|
) |
| const |
|
virtual |
Iterate across the conformations of the downstream residue coming from hits generated in previous rounds, and add hits for each upstream residue that (Also, see comments for the build_at_all_positions method.)
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 protocols::match::downstream::DownstreamAlgorithm::are_colliding(), catalytic_atoms_, downstream_atom_coordinates_needed_, downstream_restype_, protocols::match::Hit::first(), protocols::match::downstream::DownstreamAlgorithm::get_dsbuilder(), respair_evaluators_, protocols::match::Hit::second(), core::conformation::Residue::seqpos(), core::conformation::Residue::set_xyz(), core::io::serialization::size(), target_downstream_coords_, and upstream_pose_.
std::list< Hit > protocols::match::downstream::SecondaryMatcherToDownstreamResidue::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:this->geom_cst_id() - 1 if ( ! matcher->representative_downstream_algorithm( i )->generates_primary_hits() ) continue; for j = 1:n_build_points_for_geomcst( i ) recover_downstream_coordinates_from_previous_round( hit_subset_j ); initialize TaretRotamerCoords 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 k = 1:n_build_positions /// call this function to start l loop: matcher.upstream_builder[ geom_cst_id() ]->build( k ) for l = 1:n_rotamers_k /// call to start m loop: downstream_algorithm->build( k, l, rotamer_l ) ) for m = 1:n_hits_in_block_j if ( respair_evaluator_->evaluate_residues( rotamer_l, rotamer_m ) hit_list.append( Hit( k, l, i, 1, hit[ m ].second() )); return hit_list There are two important consequences to this hit-generation layout.
- The coordinates for rotamer_l are computed sum( i, n_build_points_for_geomcst( i )) times.
- The number of downstream target coordinates that live in memory at the same time is bound by some constant (10K). This is a clear trade-off between performance and memory NOTE: the most time consuming portion will likely be the m loop, and not the repeated construction of coordinates in the j loop. Reguardless of how many times we rebuild coordinates for rotamer j, the expense will primarily lie in the same place: the call to evaluate_residues( rotamer_l, rotamer_m ). NOTE: if there are ways to iterate across the j loop differently, it likely possible to prune m/l combinations early and thereby improve running time.
Reimplemented from protocols::match::downstream::DownstreamAlgorithm.
References protocols::fldsgn::topology::compare(), core::sequence::end, focused_geomcst_id_, protocols::match::downstream::DownstreamAlgorithm::geom_cst_id(), protocols::match::Matcher::per_constraint_build_points(), prepare_for_hit_generation(), prepare_for_hit_generation_at_target_build_point(), prepare_for_hit_generation_for_geomcst(), protocols::match::Matcher::representative_downstream_algorithm(), protocols::match::downstream::TR(), and protocols::match::Matcher::upstream_builder().
HitPtrListCOP protocols::match::downstream::SecondaryMatcherToDownstreamResidue::hits_to_include_with_partial_match |
( |
match_dspos1 const & |
m) | |
const |
|
virtual |
This method is invoked by the Matcher as it enumerates matches should this class return "true" in it's upstream_only. method. The Matcher will enumerate matches placing hits into the match for all of the geometric-constraints which describe the downstream partner's 6D coordinates in their hits, and then for all other geometric constraints in ascending order. The hits for upstream residues 1 to geom_cst_id() - 1 are all valid; the hit for geom-cst i, given that i > geom_cst_id() - 1 is valid if and only if the downstream algorithm for geom-cst i returns true in it's upstream_only(). The Hit const * list should point at the Matcher's hits. Between prepare-for-match enumeration and note_match_enumeration_completed, the Matcher provides a guarantee to the downstream algorithm that it's hit lists have not changed, and therefore all Hit *'s remain valid. The Matcher is providing a "match_dspos1 const &" instead of a "match const &" because this DownstreamAlgorithm should not be examining the 6D coordinates of the downstream partner according to other geometric constraints, and because the Matcher's match_dspos1-enumeration technique could not readily construct a match, the Matcher's match-enumeration technique can readily construct a match_dspos1. Data in the input match_dspos1 relating to the downstream partner is undefined.
Implements protocols::match::downstream::DownstreamAlgorithm.
void protocols::match::downstream::SecondaryMatcherToDownstreamResidue::respond_to_peripheral_hitlist_change |
( |
Matcher & |
matcher) | |
|
|
virtual |