Rosetta
|
An Assembly is a collection of SewSegments. Assemblies are created using the geometric "compatibility" data generated by the Hasher. More...
#include <Assembly.hh>
Public Member Functions | |
Assembly () | |
virtual AssemblyOP | clone ()=0 |
void | add_model (SewGraphCOP graph, Model const &model, bool available=true) |
Add a model to the Assembly. Only used for first node and special cases. More... | |
void | update_coords_from_pose (core::pose::Pose const &pose) |
std::map< SewSegment, SewSegment > | get_matching_model_segments (Model const &model, ScoreResult const &edge_score) const |
ScoreResult | get_score_result (ModelNode const *model_1_node, HashEdge const *const cur_edge, SewGraphCOP graph) const |
ModelNode const * | starting_node () const |
ModelNode const * | ending_node () const |
utility::vector1< boost::tuple< ModelNode const *, ModelNode const *, HashEdge const * > > | edges () const |
core::Size | get_next_reference_node (SewGraphOP graph) const |
Pick which model to use as the reference model for the next node additon. More... | |
utility::vector1< SewSegment > | get_chimera_segments (std::map< SewSegment, SewSegment > const &matching_segments, std::map< SegmentPair, AtomMap > const &segment_matches, Model const &mobile_model) |
SewSegment | create_chimera_segment (SewSegment const &reference_segment, SewSegment const &mobile_segment, AtomMap const &atom_map, bool reference_is_nter) const |
utility::vector1< SewSegment > | segments () const |
utility::vector1< utility::vector1< SewSegment > > | all_segments () const |
utility::vector1< SewSegment > | get_model_segments (int model_id) const |
std::set< core::Size > | model_ids () const |
Model | regenerate_model (int model_id) const |
virtual void | append_model (Model const &model, ScoreResult const &edge_score)=0 |
append the given model to the end of the assembly More... | |
void | add_loop_segment (core::pose::Pose const &pose, protocols::loops::Loop loop, core::Size segment) |
AtomMap | atom_map_from_score_result (ScoreResult const &alignment_scores) const |
void | follow_edge (SewGraphCOP graph, HashEdge const *const edge, core::Size source_index) |
void | align_model (Model &mobile_model, AtomMap const &atom_alignments, int reference_model_id) const |
void | map_residues (int reference_model_id, Model mobile_model, AtomMap const &atom_alignments) |
create mappings between SewResidues in the Assembly that map to the same pose number More... | |
NativeRotamersMap | generate_native_rotamers_map () const |
void | prepare_for_packing (core::pose::Pose &pose, core::pack::task::TaskFactoryOP task_factory, core::Real base_native_bonus, core::Size neighbor_cutoff) const |
Update the task factory such that the 'native' rotamers are added to the rotamer set, and the native residues are favored. More... | |
core::pose::Pose | to_pose (std::string residue_type_set, bool create_cuts=true) const |
core::pose::Pose | to_multichain_pose (std::string residue_type_set) const |
bool | reorder_randomly (core::Real max_loop_distance) |
reorder segments in a random fashion that satisfies the maximum loop distance cutoff If this is not possible then return false, otherwise true More... | |
void | reorder (utility::vector1< core::Size > new_order) |
utility::vector1< utility::vector1< core::Size > > | find_possible_orders (core::Real max_loop_distance) const |
core::Size | pose_num (int model_id, core::Size resnum) const |
core::Size | total_residue () const |
utility::vector1< core::Size > | pose_loop_anchors () const |
utility::vector1< core::Size > | disconnected_segments () const |
std::set< core::Size > | native_positions (core::pose::Pose const &pose) const |
Records which positions in the given pose match the sequence identify of at least one of the amino acids from the underlying models at that position. More... | |
core::Real | percent_native (core::pose::Pose const &pose) const |
count the amount of 'native' residues retained in the pose More... | |
std::string | natives_select (core::pose::Pose const &pose, std::string object_name="") const |
print pymol selection of "native" positions More... | |
utility::vector1< std::pair< core::Size, core::Size > > | path () const |
std::string | string_path () const |
std::string | string_blosum (utility::vector1< std::pair< core::Real, core::Size > > blosum_history) const |
void | set_partner (core::pose::PoseOP partner_pose) |
core::pose::PoseOP | get_partner () const |
void | append_segments (utility::vector1< SewSegment > const &segments) |
append the segments to the given assembly. This should be used very infrequently. The normal way to add segments is to follow an edge More... | |
void | delete_segments (core::Size seg_index) |
delete segments at the given index. This should be used very infrequently More... | |
ModelConstIterator< SewSegment > | assembly_begin () const |
ModelIterator< SewSegment > | assembly_begin () |
ModelConstIterator< SewSegment > | assembly_end () const |
ModelIterator< SewSegment > | assembly_end () |
Public Attributes | |
utility::vector1< std::pair< core::Real, core::Size > > | blosum_history_ |
Protected Attributes | |
SegmentGraph | segments_ |
core::pose::PoseOP | partner_pose_ |
std::set< core::Size > | available_nodes_ |
utility::vector1< utility::vector1< SewSegment > > | all_segments_ |
utility::vector1< boost::tuple< ModelNode const *, ModelNode const *, HashEdge const * > > | edge_path_ |
utility::vector1< std::pair< core::Size, core::Size > > | path_ |
Friends | |
std::ostream & | operator<< (std::ostream &out, Assembly const &atom) |
An Assembly is a collection of SewSegments. Assemblies are created using the geometric "compatibility" data generated by the Hasher.
|
default |
void protocols::legacy_sewing::Assembly::add_loop_segment | ( | core::pose::Pose const & | pose, |
protocols::loops::Loop | loop, | ||
core::Size | segment | ||
) |
References all_segments_, core::conformation::Residue::atom(), protocols::legacy_sewing::SewAtom::atomno_, protocols::legacy_sewing::SewResidue::basis_atoms_, protocols::legacy_sewing::SewAtom::coords_, protocols::legacy_sewing::SegmentGraph::insert_connected_segment(), protocols::legacy_sewing::SewSegment::model_id_, core::chemical::ResidueTypeBase::name(), core::pose::Pose::residue(), protocols::legacy_sewing::SewResidue::residue_type_, protocols::legacy_sewing::SewSegment::residues_, protocols::legacy_sewing::SewResidue::resnum_, protocols::legacy_sewing::SewSegment::segment_id_, segments_, protocols::loops::Loop::start(), protocols::loops::Loop::stop(), core::conformation::Residue::type(), and core::conformation::Atom::xyz().
void protocols::legacy_sewing::Assembly::add_model | ( | SewGraphCOP | graph, |
Model const & | model, | ||
bool | available = true |
||
) |
Add a model to the Assembly. Only used for first node and special cases.
Only used to add the first model to the Assembly, subsequent models should be added using the follow_edge function.
References protocols::legacy_sewing::SegmentGraph::add_connection(), all_segments_, available_nodes_, protocols::legacy_sewing::SegmentGraph::forward_connections(), protocols::legacy_sewing::Model::model_id_, segments_, and protocols::legacy_sewing::Model::segments_.
void protocols::legacy_sewing::Assembly::align_model | ( | Model & | mobile_model, |
AtomMap const & | atom_alignments, | ||
int | reference_model_id | ||
) | const |
References all_segments_, protocols::legacy_sewing::ModelIterator< T >::atom(), protocols::legacy_sewing::SewAtom::atomno_, protocols::legacy_sewing::SewResidue::basis_atoms_, core::pose::center_of_mass(), protocols::legacy_sewing::SewSegment::chimera_, protocols::legacy_sewing::SewAtom::coords_, protocols::legacy_sewing::Model::model_begin(), protocols::legacy_sewing::Model::model_end(), protocols::legacy_sewing::SewSegment::model_id_, protocols::legacy_sewing::ModelIterator< T >::residue(), protocols::legacy_sewing::SewSegment::residues_, and protocols::legacy_sewing::SewResidue::resnum_.
Referenced by follow_edge().
utility::vector1< utility::vector1< SewSegment > > protocols::legacy_sewing::Assembly::all_segments | ( | ) | const |
References all_segments_.
|
pure virtual |
append the given model to the end of the assembly
Implemented in protocols::legacy_sewing::DisembodiedAssembly, and protocols::legacy_sewing::ContinuousAssembly.
Referenced by follow_edge().
void protocols::legacy_sewing::Assembly::append_segments | ( | utility::vector1< SewSegment > const & | segments | ) |
append the segments to the given assembly. This should be used very infrequently. The normal way to add segments is to follow an edge
References all_segments_, segments(), and segments_.
ModelIterator< SewSegment > protocols::legacy_sewing::Assembly::assembly_begin | ( | ) |
References segments_.
ModelConstIterator< SewSegment > protocols::legacy_sewing::Assembly::assembly_begin | ( | ) | const |
References segments_.
Referenced by update_coords_from_pose().
ModelIterator< SewSegment > protocols::legacy_sewing::Assembly::assembly_end | ( | ) |
References segments_.
ModelConstIterator< SewSegment > protocols::legacy_sewing::Assembly::assembly_end | ( | ) | const |
References segments_.
Referenced by update_coords_from_pose().
AtomMap protocols::legacy_sewing::Assembly::atom_map_from_score_result | ( | ScoreResult const & | alignment_scores | ) | const |
Referenced by follow_edge().
|
pure virtual |
SewSegment protocols::legacy_sewing::Assembly::create_chimera_segment | ( | SewSegment const & | reference_segment, |
SewSegment const & | mobile_segment, | ||
AtomMap const & | atom_map, | ||
bool | reference_is_nter | ||
) | const |
References protocols::legacy_sewing::SewSegment::chimera_, protocols::legacy_sewing::CHIMERA_SEGMENT, protocols::legacy_sewing::SewSegment::dssp_, protocols::legacy_sewing::largest_continuous_atom_map(), protocols::legacy_sewing::SewSegment::model_id_, protocols::legacy_sewing::SewSegment::parent_segments_, protocols::legacy_sewing::SewSegment::residues_, protocols::legacy_sewing::SewSegment::segment_id_, and protocols::legacy_sewing::TR().
Referenced by get_chimera_segments().
void protocols::legacy_sewing::Assembly::delete_segments | ( | core::Size | seg_index | ) |
delete segments at the given index. This should be used very infrequently
References all_segments_, and segments_.
utility::vector1< core::Size > protocols::legacy_sewing::Assembly::disconnected_segments | ( | ) | const |
References protocols::legacy_sewing::SegmentGraph::has_next(), and segments_.
utility::vector1< boost::tuple< ModelNode const *, ModelNode const *, HashEdge const * > > protocols::legacy_sewing::Assembly::edges | ( | ) | const |
References edge_path_.
ModelNode const * protocols::legacy_sewing::Assembly::ending_node | ( | ) | const |
References edge_path_.
utility::vector1< utility::vector1< core::Size > > protocols::legacy_sewing::Assembly::find_possible_orders | ( | core::Real | max_loop_distance | ) | const |
find all possible segment orders where the CA-CA distance of all unclosed loops is less than the max distance respect any current connections.
References protocols::legacy_sewing::SewResidue::basis_atoms_, protocols::legacy_sewing::SegmentGraph::c_segment(), protocols::legacy_sewing::SegmentGraph::has_previous(), protocols::legacy_sewing::SewSegment::model_id_, pose_num(), protocols::legacy_sewing::SewSegment::residues_, protocols::legacy_sewing::SewResidue::resnum_, segments_, and protocols::legacy_sewing::TR().
Referenced by reorder_randomly().
void protocols::legacy_sewing::Assembly::follow_edge | ( | SewGraphCOP | graph, |
HashEdge const *const | edge, | ||
core::Size | source_index | ||
) |
References align_model(), append_model(), atom_map_from_score_result(), available_nodes_, edge_path_, protocols::legacy_sewing::Model::get_residue(), protocols::legacy_sewing::Model::model_id_, protocols::legacy_sewing::HashEdge::model_resnum(), path_, regenerate_model(), protocols::legacy_sewing::Hasher::score_one(), and protocols::legacy_sewing::TR().
NativeRotamersMap protocols::legacy_sewing::Assembly::generate_native_rotamers_map | ( | ) | const |
create a map of sequence positions to ResidueOP objects for each of the 'natives' seen during the Assembly process. Ensure that if a residue is the first or last in the Assembly then we create lower and upper terminus types for that residues at tha position.
References core::conformation::ResidueFactory::create_residue(), core::chemical::FA_STANDARD, core::chemical::LOWER_TERMINUS_VARIANT, segments_, total_residue(), and core::chemical::UPPER_TERMINUS_VARIANT.
Referenced by prepare_for_packing().
utility::vector1< SewSegment > protocols::legacy_sewing::Assembly::get_chimera_segments | ( | std::map< SewSegment, SewSegment > const & | matching_segments, |
std::map< SegmentPair, AtomMap > const & | segment_matches, | ||
Model const & | mobile_model | ||
) |
std::map< SewSegment, SewSegment > protocols::legacy_sewing::Assembly::get_matching_model_segments | ( | Model const & | model, |
ScoreResult const & | edge_score | ||
) | const |
utility::vector1< SewSegment > protocols::legacy_sewing::Assembly::get_model_segments | ( | int | model_id | ) | const |
References all_segments_.
Referenced by regenerate_model(), and to_multichain_pose().
core::Size protocols::legacy_sewing::Assembly::get_next_reference_node | ( | SewGraphOP | graph | ) | const |
Pick which model to use as the reference model for the next node additon.
TODO remove logic for picking nodes and just return available nodes! we are convoluting sampling and the conformation itself by not doing that
References available_nodes_.
core::pose::PoseOP protocols::legacy_sewing::Assembly::get_partner | ( | ) | const |
References partner_pose_.
ScoreResult protocols::legacy_sewing::Assembly::get_score_result | ( | ModelNode const * | model_1_node, |
HashEdge const *const | cur_edge, | ||
SewGraphCOP | graph | ||
) | const |
void protocols::legacy_sewing::Assembly::map_residues | ( | int | reference_model_id, |
Model | mobile_model, | ||
AtomMap const & | atom_alignments | ||
) |
create mappings between SewResidues in the Assembly that map to the same pose number
Use the given atom alignments to create mappings between SewResidues in the Assembly. These mappings will be used to generate 'Native' Rotamers for positions in the final Pose
References all_segments_, protocols::legacy_sewing::SewAtom::atomno_, protocols::legacy_sewing::SewResidue::basis_atoms_, protocols::legacy_sewing::SewResidue::matched_residues_, protocols::legacy_sewing::SewSegment::model_id_, protocols::legacy_sewing::SewSegment::residues_, protocols::legacy_sewing::SewResidue::resnum_, protocols::legacy_sewing::Model::segments_, and protocols::legacy_sewing::TR().
std::set< core::Size > protocols::legacy_sewing::Assembly::model_ids | ( | ) | const |
References all_segments_.
Referenced by to_multichain_pose().
std::set< core::Size > protocols::legacy_sewing::Assembly::native_positions | ( | core::pose::Pose const & | pose | ) | const |
Records which positions in the given pose match the sequence identify of at least one of the amino acids from the underlying models at that position.
References core::chemical::CENTROID, core::chemical::FA_STANDARD, core::pose::Pose::is_centroid(), core::pose::Pose::is_fullatom(), core::chemical::ResidueTypeBase::name3(), core::pose::Pose::residue(), segments_, protocols::legacy_sewing::TR(), and core::conformation::Residue::type().
Referenced by natives_select(), and percent_native().
std::string protocols::legacy_sewing::Assembly::natives_select | ( | core::pose::Pose const & | pose, |
std::string | object_name = "" |
||
) | const |
print pymol selection of "native" positions
References native_positions().
utility::vector1< std::pair< core::Size, core::Size > > protocols::legacy_sewing::Assembly::path | ( | ) | const |
References path_.
core::Real protocols::legacy_sewing::Assembly::percent_native | ( | core::pose::Pose const & | pose | ) | const |
count the amount of 'native' residues retained in the pose
References native_positions(), and core::pose::Pose::size().
utility::vector1< core::Size > protocols::legacy_sewing::Assembly::pose_loop_anchors | ( | ) | const |
References protocols::legacy_sewing::SegmentGraph::has_next(), pose_num(), and segments_.
core::Size protocols::legacy_sewing::Assembly::pose_num | ( | int | model_id, |
core::Size | resnum | ||
) | const |
References segments_, and core::id::to_string().
Referenced by find_possible_orders(), pose_loop_anchors(), and to_pose().
void protocols::legacy_sewing::Assembly::prepare_for_packing | ( | core::pose::Pose & | pose, |
core::pack::task::TaskFactoryOP | task_factory, | ||
core::Real | base_native_bonus, | ||
core::Size | neighbor_cutoff | ||
) | const |
Update the task factory such that the 'native' rotamers are added to the rotamer set, and the native residues are favored.
prepare the pose for packing by adding all the rotmaers defined by the chi-angles in SewResidue. Also, add residue type constraints to the Pose for each of the 'native' residue types for each position in the pose.
References core::chemical::FA_STANDARD, generate_native_rotamers_map(), and core::pose::Pose::update_residue_neighbors().
Model protocols::legacy_sewing::Assembly::regenerate_model | ( | int | model_id | ) | const |
void protocols::legacy_sewing::Assembly::reorder | ( | utility::vector1< core::Size > | new_order | ) |
bool protocols::legacy_sewing::Assembly::reorder_randomly | ( | core::Real | max_loop_distance | ) |
reorder segments in a random fashion that satisfies the maximum loop distance cutoff If this is not possible then return false, otherwise true
References find_possible_orders(), protocols::legacy_sewing::SegmentGraph::reorder(), and segments_.
utility::vector1< SewSegment > protocols::legacy_sewing::Assembly::segments | ( | ) | const |
References segments_.
Referenced by append_segments().
void protocols::legacy_sewing::Assembly::set_partner | ( | core::pose::PoseOP | partner_pose | ) |
References partner_pose_.
ModelNode const * protocols::legacy_sewing::Assembly::starting_node | ( | ) | const |
References edge_path_.
std::string protocols::legacy_sewing::Assembly::string_blosum | ( | utility::vector1< std::pair< core::Real, core::Size > > | blosum_history | ) | const |
std::string protocols::legacy_sewing::Assembly::string_path | ( | ) | const |
References path_.
core::pose::Pose protocols::legacy_sewing::Assembly::to_multichain_pose | ( | std::string | residue_type_set | ) | const |
for testing purposes, create a pose that includes all untrimmed segments. These will (or at least, should) heavily overlap with one another. Make each model a new chain
References protocols::legacy_sewing::SewResidue::basis_atoms_, core::conformation::Conformation::chain_endings(), protocols::legacy_sewing::SewResidue::chi_angles_, core::conformation::Residue::clone(), core::pose::Pose::conformation(), core::conformation::ResidueFactory::create_residue(), get_model_segments(), core::conformation::idealize_hydrogens(), core::pose::make_pose_from_sequence(), model_ids(), core::pose::Pose::replace_residue(), core::pose::Pose::residue(), core::pose::Pose::size(), and core::conformation::Residue::type().
core::pose::Pose protocols::legacy_sewing::Assembly::to_pose | ( | std::string | residue_type_set, |
bool | create_cuts = true |
||
) | const |
convert this assembly to a pose. This involves creating ideal residues and placing them on the backbone atom coordinates held by the assembly. This function assembles the pose residues in the order they are contained in the segments_ vector to re-order segments, use the reorder function
References core::kinematics::FoldTree::add_edge(), core::pose::append_pose_to_pose(), protocols::legacy_sewing::SewResidue::basis_atoms_, protocols::legacy_sewing::SewResidue::chi_angles_, core::conformation::Residue::clone(), core::pose::Pose::conformation(), core::conformation::ResidueFactory::create_residue(), core::pose::Pose::fold_tree(), core::conformation::idealize_hydrogens(), core::chemical::ResidueType::is_lower_terminus(), core::chemical::ResidueType::is_upper_terminus(), core::chemical::LOWER_TERMINUS_VARIANT, core::pose::make_pose_from_sequence(), partner_pose_, core::kinematics::Edge::PEPTIDE, pose_num(), core::pose::Pose::replace_residue(), core::pose::Pose::residue(), segments_, core::pose::Pose::size(), core::util::switch_to_residue_type_set(), core::conformation::Residue::type(), and core::chemical::UPPER_TERMINUS_VARIANT.
Referenced by reorder().
core::Size protocols::legacy_sewing::Assembly::total_residue | ( | ) | const |
References segments_, and core::simple_metrics::metrics::sum.
Referenced by generate_native_rotamers_map().
void protocols::legacy_sewing::Assembly::update_coords_from_pose | ( | core::pose::Pose const & | pose | ) |
|
friend |
|
protected |
Referenced by add_loop_segment(), add_model(), align_model(), all_segments(), protocols::legacy_sewing::ContinuousAssembly::append_model(), protocols::legacy_sewing::DisembodiedAssembly::append_model(), append_segments(), delete_segments(), get_matching_model_segments(), get_model_segments(), map_residues(), and model_ids().
|
protected |
Referenced by add_model(), follow_edge(), and get_next_reference_node().
utility::vector1< std::pair<core::Real, core::Size> > protocols::legacy_sewing::Assembly::blosum_history_ |
|
protected |
Referenced by edges(), ending_node(), follow_edge(), and starting_node().
|
protected |
Referenced by get_partner(), set_partner(), and to_pose().
|
protected |
Referenced by follow_edge(), path(), and string_path().
|
protected |
Referenced by add_loop_segment(), add_model(), protocols::legacy_sewing::ContinuousAssembly::append_model(), protocols::legacy_sewing::DisembodiedAssembly::append_model(), append_segments(), assembly_begin(), assembly_end(), delete_segments(), disconnected_segments(), find_possible_orders(), generate_native_rotamers_map(), get_chimera_segments(), native_positions(), pose_loop_anchors(), pose_num(), reorder(), reorder_randomly(), segments(), to_pose(), and total_residue().