Rosetta  2018.48
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
core::kinematics::FoldTree Class Reference

The FoldTree is a residue-based tree-like representation of a molecule. More...

#include <FoldTree.hh>

Inheritance diagram for core::kinematics::FoldTree:
Inheritance graph
[legend]

Public Types

typedef std::vector< EdgeEdgeList
 
typedef EdgeList::iterator iterator
 
typedef EdgeList::const_iterator const_iterator
 

Public Member Functions

 ~FoldTree () override
 Automatically generated virtual destructor for class deriving directly from ReferenceCount. More...
 
 FoldTree ()
 constructor More...
 
 FoldTree (int const nres_in)
 Constructs a simple FoldTree. More...
 
FoldTreeoperator= (FoldTree const &src)
 operator= More...
 
FoldTree clone ()
 
Size boundary_left (Size res) const
 Return the starting residue of the first kinematic Edge to which res belongs. More...
 
Size boundary_right (Size res) const
 Return the ending residue of the first kinematic Edge to which res belongs. More...
 
int size () const
 Returns the number of edges in the FoldTree. More...
 
const_iterator begin () const
 begin iterator of the edge_list More...
 
const_iterator end () const
 end iterator of the edge_list More...
 
void show (std::ostream &out) const
 Displays the FoldTree information. More...
 
void add_edge (core::Size const start, core::Size const stop, int const label)
 Adds an edge from <start> to <stop> More...
 
void add_edge (Size const start, Size const stop, std::string const &start_atom, std::string const &stop_atom)
 Especially useful version of add_edge for chemical edge construction. More...
 
void add_edge (Edge const &new_edge)
 Add the edge <new_edge> More...
 
void prepend_edge (Edge const &new_edge)
 Prepend the edge <new_edge>. Useful alternative to add_edge for setting root. More...
 
void replace_edge (Edge const &old_edge, Edge const &replacement_edge)
 Find and replace an Edge in the FoldTree. More...
 
void delete_edge (iterator edge)
 Deletes the edge <edge> in the FoldTree by iterator. More...
 
void delete_edge (Edge const &edge)
 Delete the edge <edge> in the fold tree by example edge. More...
 
void delete_unordered_edge (Size const start, Size const stop, int const label)
 Find an edge in fold tree and delete it. More...
 
void update_edge_label (Size const start, Size const stop, int const old_label, int const new_label)
 Changes the label of an edge in fold tree. More...
 
int edge_label (Size const start, Size const stop)
 Returns the edge label of the edge from <start> to <stop> More...
 
void split_existing_edge_at_residue (Size const resNo)
 Splits an edge into two at a specified position. More...
 
void clear ()
 Deletes all edge in the FoldTree. More...
 
void renumber_jumps ()
 Renumbers the jump edges in the FoldTree How? More...
 
void renumber_jumps_ordered ()
 Renumbers the jump edges in the FoldTree while. More...
 
void delete_self_edges ()
 Deletes edges with start==stop allowable 1->1 edge for single residue FoldTree. More...
 
void delete_extra_vertices ()
 Delete vertices that are no longer necessary any more How is this determined? More...
 
void delete_segment (Size const seg_begin, Size const seg_end)
 Deletes a continuous segment from <seq_begin> to <seq_end> More...
 
void delete_seqpos (Size const seqpos)
 Deletes the residue <seqpos> from the FoldTree. Will rearrange topology if necessary. More...
 
void insert_polymer_residue (Size const seqpos, bool const join_lower, bool const join_upper)
 Inserts a polymer residue at position <seqpos> How? More...
 
void insert_residue_by_chemical_bond (Size const seqpos, Size const anchor_residue, std::string const &anchor_atom, std::string const &root_atom)
 Inserts a bonded residue at position <seqpos> More...
 
void insert_residue_by_jump (Size const seqpos, Size anchor_pos, std::string const &anchor_atom="", std::string const &root_atomno="")
 Inserts a residue attached only by a jump. precondition is that seqpos-1 is a cutpoint. More...
 
void insert_fold_tree_by_jump (FoldTree const &subtree, Size const insert_seqpos, Size const insert_jumppos, Size const anchor_pos, Size anchor_jump_number=0, std::string const &anchor_atom="", std::string const &root_atom="")
 Inserts a fold_tree as a subtree. More...
 
void apply_sequence_mapping (id::SequenceMapping const &old2new)
 Renumber all vertices according to an input sequence mapping. More...
 
core::Size new_jump (Size const jump_pos1, Size const jump_pos2, Size const cutpoint)
 Adds a new jump edge from <pos1> to <pos2> with cutpoint <cutpoint> More...
 
void new_chemical_bond (Size const anchor_pos, Size const root_pos, std::string const &anchor_atom, std::string const &root_atom, Size const new_cutpoint)
 
void simple_tree (Size const nres_in)
 Produces a 1-edge FoldTree that is <nres_in> long No jumps or extraneous features. More...
 
bool is_simple_tree () const
 Returns true if the FoldTree has 1-edge (non-jump) More...
 
bool random_tree_from_jump_points (Size const nres_in, Size const num_jump_in, ObjexxFCL::FArray2D< Size > const &jump_point, ObjexxFCL::FArray1D_float const &cut_bias, Size const root_in=1, bool const allow_jump_at_1_or_NRES=false)
 Builds a FoldTree from a list of <jump_points> and random cut points based on some biased probability Returns bool about success. More...
 
bool random_tree_from_jump_points (Size const nres_in, Size const num_jump_in, ObjexxFCL::FArray2D< Size > const &jump_point, std::vector< Size > const &obligate_cut_points, ObjexxFCL::FArray1D_float const &cut_bias, Size const root_in=1, bool const allow_jump_at_1_or_NRES=false)
 Builds a FoldTree from a list of <jump_points> and random cut points based on some biased probability and any user-defined obligate cutpoints Returns bool about success. More...
 
bool tree_from_jumps_and_cuts (Size const nres_in, Size const num_jump_in, ObjexxFCL::FArray2D< Size > const &jump_point, ObjexxFCL::FArray1D< Size > const &cuts, Size const root_in=1, bool const verbose=false)
 Constructs a FoldTree from listed <jump point>=""> and <cuts> Returns bool about success. More...
 
void append_residue (bool const attach_by_jump=false, core::Size const jump_anchor_residue=0, std::string const &jump_upstream_atom="", std::string const &jump_downstream_atom="")
 Appends a new residue to the tree, either by a jump or as a continuation of a peptide segment. More...
 
void append_residue_by_chemical_bond (core::Size const anchor_residue, std::string const &anchor_atom, std::string const &root_atom)
 Appends a new residue to the tree using a chemical (APL-style) connection. More...
 
bool reorder (Size const start_residue, bool const verbose_if_fail=true)
 Reorders the FoldTree to start at residue <start_residue> More...
 
bool check_fold_tree () const
 Returns true if this is a valid FoldTree. More...
 
bool connected () const
 Returns true if the FoldTree is connected. More...
 
bool check_edges_for_atom_info () const
 chemical edges should have atom info More...
 
Size upstream_jump_residue (Size const jump_number) const
 the starting residue for this jump More...
 
Size downstream_jump_residue (Size const jump_number) const
 the stopping residue for this jump More...
 
void partition_by_jump (Size const jump_number, FoldTree &f1, FoldTree &f2) const
 partition into two foldtrees by cutting at jump= jump_number More...
 
void partition_by_jump (Size const jump_number, ObjexxFCL::FArray1D_bool &partner1) const
 partition the fold tree in two parts if the jump is disconnected. More...
 
utility::vector1< boolpartition_by_jump (Size const jump_nr) const
 partition the fold tree in two parts if the jump is disconnected. More...
 
utility::vector1< Sizepartition_coloring (utility::vector1< Size > const &jump_numbers) const
 partition the fold tree into n parts based on specified jumps. More...
 
void partition_by_residue (Size const seqpos, ObjexxFCL::FArray1D_bool &partner1) const
 partition the fold tree in two parts if a cut would be introduced between seqpos and seqpos+1 More...
 
Size cutpoint_by_jump (Size const jump_number) const
 Returns the corresponding cutpoint position for jump <jump_number> WARNING: if you look for all cutpoints by cycling thru jump_numbers you may be dissapointed you will get most likely the same cutpoint for several different jump_numbers however: the method cutpoint( nr ) will give you the number you are looking for. More...
 
std::string upstream_atom (Size const jump_number) const
 the jump atom on the staring side More...
 
std::string downstream_atom (Size const jump_number) const
 the jump atom on the stopping side More...
 
int get_polymer_residue_direction (Size const seqpos) const
 Returns the direction (n2c, c2n) in which the given (peptide) residue is built during folding. More...
 
bool residue_is_in_fold_tree (Size seqpos) const
 Check if the seqpos is covered by an edge in the FoldTree (Mainly useful for FoldTrees as they are being built.) More...
 
Edge const & get_residue_edge (Size const seqpos) const
 Returns the edge that builds the residue <seqpos> Does not work for root atom (will fail) More...
 
utility::vector1< Edgeget_outgoing_edges (Size const seqpos) const
 Returns all edges that build a residue directly off of <seqpos> More...
 
utility::vector1< Edgeget_jump_edges () const
 Return all jump Edges from the FoldTree. More...
 
utility::vector1< Edgeget_chemical_edges () const
 Returns all chemical edges from fold tree. More...
 
core::Size get_jump_that_builds_residue (Size const seqpos) const
 Get the number of the jump that builds (connects to) a given residue It's an error if the residue isn't built directly by a jump. More...
 
core::Size get_parent_residue (Size const seqpos, bool &connected_by_jump) const
 Get the residue that is immediately upstream of this residue (and tell us whether connection is jump or bond). More...
 
core::Size get_parent_residue (Size const seqpos) const
 Get the residue that is immediately upstream of this residue. More...
 
void set_jump_atoms (Size const jump_number, std::string const &upstream_atom, std::string const &downstream_atom, bool bKeepStubInResidue=false)
 define the specific atoms that should be connected by this jump More...
 
void set_jump_atoms (Size const jump_number, core::Size res1, std::string const &atom1, core::Size res2, std::string const &atom2, bool bKeepStubInResidue=false)
 
void put_jump_stubs_intra_residue ()
 this reorganizes upstream/downstream atoms of all jumps such that stubs are N-CA-C More...
 
void reassign_atoms_for_intra_residue_stubs ()
 this reorganizes upstream/downstream atoms of jumps that have flag keep_stub_in_resiue = true such that stubs are N-CA-C More...
 
std::size_t hash_value () const
 computes a fixed-length, hash-based identifier for this FoldTree, permitting efficient comparison between a pair of FoldTrees More...
 
std::string to_string () const
 easy output of string More...
 
Size nres () const
 Returns the number of residues in the FoldTree. More...
 
Size num_jump () const
 Returns the number of jumps in the FoldTree. More...
 
Size jump_point (Size const lower_higher, Size const jump_number) const
 starting or stopping residue of a jump edge More...
 
bool is_jump_point (Size const seqpos) const
 Returns true if <seqpos> is a starting or stopping residue of a jump edge. More...
 
Size cutpoint (Size const cut) const
 Returns the cutpoint position of jump number <cut> More...
 
Size num_cutpoint () const
 Returns the number of cutpoints in the FoldTree. More...
 
bool is_cutpoint (Size const seqpos) const
 Returns true is position <seqpos> is a cutpoint. More...
 
Size cutpoint_map (Size const seqpos) const
 cutpoint number for this residue More...
 
Edge const & jump_edge (Size const jump_number) const
 Returns the jump edge with jump number <jump_number> (const) More...
 
Edgejump_edge (Size const jump_number)
 Returns the jump edge with jump number <jump_number> (non-const) More...
 
core::Size jump_nr (core::Size upstream_res, core::Size downstream_res) const
 get the jump_nr connected to jump upstream->downstream, returns 0 if not found More...
 
bool empty () const
 Returns true if the FoldTree is empty. More...
 
bool is_root (Size const seqpos) const
 Returns true if <seqpos> the the root. More...
 
bool possible_root (Size const &seqpos) const
 Returns true if <seqpos> is the root. More...
 
Size root () const
 Returns the root vertex position of the FoldTree. More...
 
bool jump_exists (Size const pos1, Size const pos2) const
 Return true if a jump exists between <pos1> and <pos2> More...
 
Size count_fixed_residues (Size const begin_res, Size const size, Size &min_edge_count_out) const
 
utility::vector1< Sizecutpoints () const
 get all cutpoints More...
 
bool is_equivalent (FoldTree const &b) const
 Check if the two FoldTrees build in a similar fashion That is, if their roots are the same and if all edges correspond to each other – Does not necessarily check that the order of the edges are the same. More...
 
void slide_cutpoint (Size const current_cut, Size const target_cut)
 Slide a polymer cutpoint from one location to another. More...
 
void slide_jump (Size const jump_number, Size const new_res1, Size const new_res2)
 change an existing jump to start and end in new positions More...
 
void delete_jump_and_intervening_cutpoint (Size jump_begin, Size jump_end, Size cut=0)
 Useful for removing a loop modeling jump+cut. More...
 
void delete_jump_and_intervening_cutpoint (Size const jump_number)
 Useful for removing a loop modeling jump+cut. More...
 
bool cut_edge (Size const cut_point)
 helper function to try cutting an edge in a tree. More...
 

Private Member Functions

void delete_seqpos_simple (Size const seqpos)
 delete a polymer residue (non-jump,non-root) More...
 
void delete_jump_seqpos (Size const seqpos)
 delete a root/jump_point residue More...
 
iterator begin ()
 non-const begin iterator of edge_list More...
 
iterator end ()
 non-const end iterator of edge_list More...
 
void add_vertex (Size const v)
 Helper function. More...
 
bool check_topology () const
 update fold tree topology (when edges are changed) if necessary More...
 
bool check_order () const
 update fold tree order (when edges are same but the order in the edge_list is changed) if necessary More...
 
void update_nres () const
 update total number residues in the fold tree More...
 
void update_num_jump () const
 update number of jumps in the fold tree More...
 
void update_jump_points () const
 update jump residues list More...
 
void update_jump_edge () const
 update the index of jump edges in the edge list More...
 
void update_cutpoints () const
 update cutpoints info in the fold tree More...
 
void setup_edge_counts () const
 update edge counts info More...
 
void update_edge_labels ()
 update edge labels based on whether edges are separating or not. More...
 
bool cut_random_edge (ObjexxFCL::FArray1D_float const &cut_bias_sum, Size const nres_in)
 cut an edge randomly based on probability without disconnecting fold tree More...
 

Private Attributes

EdgeList edge_list_
 
bool new_topology
 edges in the edge_list_ have been changed. More...
 
bool new_order
 edges in the edge_list_ have been reordered. More...
 
Size nres_
 just the largest vertex in edge_list_ More...
 
Size num_jump_
 number of jump edges (edges in edge_list_ with label>0) More...
 
Size num_cutpoint_
 number of cutpoints in the fold tree. More...
 
utility::vector1< std::pair
< Size, Size > > 
jump_point_
 jump number to jump residue number. dimensioned as (2,num_jump_) More...
 
utility::vector1< boolis_jump_point_
 whehter a residue is a jump_point, dimensioned as nres_ More...
 
utility::vector1< Sizecutpoint_
 cutpoint number to cutpoint residue number, dimesioned as num_cutpoint_. More...
 
utility::vector1< Sizecutpoint_map_
 residue number of cutpoint number, 0 if it is not a cutpoint. dimensioned as nres_. More...
 
ObjexxFCL::FArray1D_bool is_cutpoint_
 whether a residue is a cutpoint, dimensioned as nres_ More...
 
utility::vector1< Sizejump_edge_
 jump number to edge index number in the edge_list_, dimensioned as num_jump_. More...
 
utility::vector1< Sizeedge_count
 dimensioned as nres_, see setup_edge_counts for more info More...
 
Size min_edge_count
 the minimum number in edge_count and jump_edge_count. More...
 
utility::vector1< Sizejump_edge_count
 dimensioned as num_jump, see setup_edge_counts for more info More...
 
ObjexxFCL::FArray1D_bool linked_
 Used as scratch space by a couple of functions. More...
 
ObjexxFCL::FArray1D_bool seen_
 
boost::hash< std::string > hasher
 computes fixed-size identifier for a string input More...
 

Friends

std::istream & operator>> (std::istream &is, FoldTree &t)
 input operator More...
 
std::ostream & operator<< (std::ostream &os, FoldTree const &t)
 output operator More...
 
bool operator== (FoldTree const &a, FoldTree const &b)
 equal to operator More...
 
bool operator!= (FoldTree const &a, FoldTree const &b)
 Not equal to operator. More...
 

Detailed Description

The FoldTree is a residue-based tree-like representation of a molecule.

Note
all the derived data is "mutable", so that we can update them as needed on the fly inside "const" member functions this emphasizes that the core data is just the edge_list_
see FoldTree overview and concepts for details

Common Methods: FoldTree.check_fold_tree FoldTree.clear FoldTree.new_jump FoldTree.nres FoldTree.num_jump FoldTree.simple_tree Foldtree.size

Member Typedef Documentation

typedef EdgeList::const_iterator core::kinematics::FoldTree::const_iterator
typedef EdgeList::iterator core::kinematics::FoldTree::iterator

Constructor & Destructor Documentation

core::kinematics::FoldTree::~FoldTree ( )
overridedefault

Automatically generated virtual destructor for class deriving directly from ReferenceCount.

core::kinematics::FoldTree::FoldTree ( )
inline

constructor

core::kinematics::FoldTree::FoldTree ( int const  nres_in)
inline

Constructs a simple FoldTree.

ft = FoldTree( nres_in )

int nres_in /the number of residues in this simple tree

References simple_tree().

Member Function Documentation

void core::kinematics::FoldTree::add_edge ( core::Size const  start,
core::Size const  stop,
int const  label 
)

Adds an edge from <start> to <stop>

do not allow self edge and do not order the edge list here

Referenced by protocols::forge::methods::add_edges(), protocols::simple_moves::ResetFoldTree::apply(), protocols::simple_moves::SwitchChainOrderMover::apply(), protocols::protein_interface_design::movers::SetAtomTree::apply(), protocols::metal_interface::ZincHeterodimerMover::apply(), protocols::simple_moves::SetTorsion::apply(), protocols::pose_length_moves::PossibleLoop::assign_phi_psi_omega_from_lookback(), protocols::fold_from_loops::utils::attach_n_and_c_unfolded_poses_to_pose(), core::pose::create_chemical_edge(), protocols::pose_length_moves::NearNativeLoopCloser::create_maximum_length_pose(), protocols::loop_modeling::LoopBuilder::do_apply(), protocols::star::Extender::extend_unaligned(), protocols::loophash::LoopHashLibrary::extract_data_from_pose(), protocols::splice::SpliceManager::fold_tree(), protocols::splice::Splice::fold_tree(), protocols::loops::fold_tree_from_loops(), protocols::denovo_design::components::FoldGraph::fold_tree_rec(), protocols::simple_moves::CutChainMover::foldTree(), core::conformation::symmetry::get_asymm_unit_fold_tree(), protocols::splice::RBOutMover::get_disulf_jump(), protocols::rna::denovo::get_rnp_docking_fold_tree(), protocols::loophash::get_rt_over_leap(), protocols::loophash::get_rt_over_leap_fast(), protocols::denovo_design::insert_peptide_edges(), core::kinematics::linearize_fold_tree(), protocols::features::PoseConformationFeatures::load_fold_tree(), protocols::enzdes::EnzdesFlexibleRegion::minimize_region(), protocols::protein_interface_design::MinimizeInterface(), partition_by_jump(), protocols::protein_interface_design::movers::PlaceStubMover::place_stub(), core::kinematics::remodel_fold_tree_to_account_for_insertion(), protocols::denovo_design::remove_all_jump_atoms(), protocols::denovo_design::remove_missing_jump_atoms(), protocols::ligand_docking::LigandBaseProtocol::reorder_foldtree_around_mobile_regions(), protocols::relax::RepeatProteinRelax::seal_jumps(), protocols::splice::RBInMover::set_fold_tree(), protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints(), protocols::docking::setup_dock_jump(), protocols::docking::setup_edges_for_partner(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_fold_tree_through_build_full_model_info(), protocols::toolbox::match_enzdes_util::AlignPoseToInvrotTreeMover::setup_foldtree_around_anchor_invrot(), protocols::denovo_design::slide_jump(), protocols::protein_interface_design::star_fold_tree(), protocols::comparative_modeling::steal_ligands(), protocols::loophash::LoopHashLibrary::test_loop_sample(), protocols::legacy_sewing::Assembly::to_pose(), and protocols::hybridization::HybridizeFoldtreeDynamic::update().

void core::kinematics::FoldTree::add_edge ( Size const  start,
Size const  stop,
std::string const &  start_atom,
std::string const &  stop_atom 
)

Especially useful version of add_edge for chemical edge construction.

This 'add_edge' calls the edge constructor with the same args and is used to form chemical edges.

void core::kinematics::FoldTree::add_edge ( Edge const &  new_edge)

Add the edge <new_edge>

example(s): ft.add_edge(edge1) See also: FoldTree FoldTree.check_fold_tree FoldTree.delete_edge FoldTree.jump_edge FoldTree.nres FoldTree.num_jump

Does not ensure proper folding order

void core::kinematics::FoldTree::add_vertex ( Size const  v)
private

Helper function.

After this call you're guaranteed that v is a vertex of the tree, ie not contained in the interior of a peptide edge

References protocols::mean_field::max(), protocols::mean_field::min(), protocols::make_rot_lib::PEPTIDE, protocols::loops::start, and protocols::loops::stop.

void core::kinematics::FoldTree::append_residue ( bool const  attach_by_jump = false,
core::Size const  jump_anchor_residue = 0,
std::string const &  jump_upstream_atom = "",
std::string const &  jump_downstream_atom = "" 
)

Appends a new residue to the tree, either by a jump or as a continuation of a peptide segment.

Add a new residue – either polymer or jump – to the end of the tree if the new residue is appended by polymer connection, add it at the end of polymer. if the new residue is appended by jump connection, the cutpoint is the original polymer end

References protocols::make_rot_lib::PEPTIDE.

void core::kinematics::FoldTree::append_residue_by_chemical_bond ( core::Size const  anchor_residue,
std::string const &  anchor_atom,
std::string const &  root_atom 
)

Appends a new residue to the tree using a chemical (APL-style) connection.

void core::kinematics::FoldTree::apply_sequence_mapping ( id::SequenceMapping const &  old2new)

Renumber all vertices according to an input sequence mapping.

Renumber all vertices according to an input sequence mapping

const_iterator core::kinematics::FoldTree::begin ( ) const
inline
iterator core::kinematics::FoldTree::begin ( )
inlineprivate

non-const begin iterator of edge_list

References edge_list_.

Size core::kinematics::FoldTree::boundary_left ( Size  res) const
inline

Return the starting residue of the first kinematic Edge to which res belongs.

References get_residue_edge(), and core::kinematics::Edge::start().

Size core::kinematics::FoldTree::boundary_right ( Size  res) const
inline

Return the ending residue of the first kinematic Edge to which res belongs.

References get_residue_edge(), and core::kinematics::Edge::stop().

bool core::kinematics::FoldTree::check_edges_for_atom_info ( ) const
bool core::kinematics::FoldTree::check_fold_tree ( ) const

Returns true if this is a valid FoldTree.

example(s): ft.check_fold_tree() See also: FoldTree FoldTree.check_fold_tree FoldTree.clear FoldTree.is_simple_tree FoldTree.new_jump FoldTree.nres FoldTree.num_jump FoldTree.simple_tree

Check to see if a foldtree is in valid folding order. To be valid, a fold tree needs to be connected, but not cyclic. So the tree is traversed from the root residue and if any residue has not been visited or has been visited multiple times, the fold tree is bad.

References protocols::loops::start, protocols::loops::stop, and TR().

Referenced by protocols::denovo_design::movers::AlignResiduesMover::align_residues(), protocols::frag_picker::nonlocal::NonlocalFrags::apply(), protocols::denovo_design::movers::FoldTreeFromFoldGraphMover::apply(), protocols::nonlocal::SingleFragmentMover::apply(), protocols::loops::apply_sequence_mapping(), protocols::jumping::JumpSample::apply_to(), core::conformation::membrane::MembraneInfo::check_membrane_fold_tree(), protocols::splice::SpliceManager::fold_tree(), protocols::splice::RBOutMover::get_disulf_jump(), core::fragment::make_pose_from_frags(), protocols::enzdes::EnzdesFlexibleRegion::minimize_region(), protocols::denovo_design::components::modify_ft_for_residue_insertion(), protocols::denovo_design::movers::new_jump_and_cutpoint(), core::kinematics::operator>>(), protocols::splice::RBInMover::set_fold_tree(), protocols::rigid::RigidBodyMotionMover::set_fold_tree(), protocols::docking::setup_foldtree(), and protocols::denovo_design::slide_jump().

bool core::kinematics::FoldTree::check_order ( ) const
inlineprivate

update fold tree order (when edges are same but the order in the edge_list is changed) if necessary

returns true if order has changed see details for check_topology

References check_topology(), new_order, and update_jump_edge().

bool core::kinematics::FoldTree::check_topology ( ) const
inlineprivate

update fold tree topology (when edges are changed) if necessary

check_topology and check_order handle the updating of data that depends on tree topology and/or tree order.

any routine that depends on the stored derived data (eg any of the access methods ) should call check_topology() or check_order() at the beginning.

Note
also, any method function that changes the tree topology or order should set the private data members new_topology and/or new_topology to true.

References new_order, new_topology, update_cutpoints(), update_jump_points(), update_nres(), and update_num_jump().

Referenced by check_order(), cutpoint(), cutpoint_map(), is_cutpoint(), is_jump_point(), nres(), num_cutpoint(), and num_jump().

void core::kinematics::FoldTree::clear ( )
inline

Deletes all edge in the FoldTree.

example(s): ft.clear() See also: FoldTree FoldTree.add_edge FoldTree.check_fold_tree FoldTree.delete_edge FoldTree.new_jump FoldTree.nres FoldTree.num_jump FoldTree.simple_tree FoldTree.size

References edge_list_, and new_topology.

Referenced by protocols::antibody_legacy::Antibody::all_cdr_fold_tree(), protocols::chemically_conjugated_docking::UBQ_GTPaseMover::analyze_and_filter(), protocols::simple_moves::ResetFoldTree::apply(), protocols::simple_moves::SwitchChainOrderMover::apply(), protocols::protein_interface_design::movers::SetAtomTree::apply(), protocols::simple_moves::SetTorsion::apply(), protocols::pose_length_moves::PossibleLoop::assign_phi_psi_omega_from_lookback(), protocols::metal_interface::MatchGrafter::build_combined_pose_with_zinc_overlay(), protocols::analysis::LoopAnalyzerMover::calculate_all_chainbreaks(), protocols::protein_interface_design::movers::copy_hotspot_to_pose(), protocols::pose_length_moves::NearNativeLoopCloser::create_maximum_length_pose(), protocols::pose_length_moves::PossibleLoop::extendRegion(), protocols::pose_length_moves::NearNativeLoopCloser::extendRegion(), protocols::splice::SpliceManager::fold_tree(), protocols::splice::Splice::fold_tree(), protocols::loops::fold_tree_from_loops(), protocols::simple_moves::CutChainMover::foldTree(), protocols::splice::RBOutMover::get_disulf_jump(), core::kinematics::get_foldtree_which_partitions(), protocols::topology_broker::AsymFoldandDockClaimer::initialize_dofs(), protocols::grafting::insert_pose_into_pose(), protocols::pose_length_moves::PossibleLoop::kic_closure(), protocols::protein_interface_design::movers::HotspotDisjointedFoldTreeMover::make_disjointed_foldtree(), protocols::protein_interface_design::make_hotspot_foldtree(), protocols::pose_length_moves::PossibleLoop::minimize_loop(), protocols::protein_interface_design::MinimizeInterface(), partition_by_jump(), protocols::protein_interface_design::movers::PlaceStubMover::place_stub(), core::import_pose::atom_tree_diffs::pose_from_atom_tree_diff(), protocols::protein_interface_design::movers::PlacementMinimizationMover::refresh_bbstub_constraints(), protocols::grafting::return_region(), protocols::relax::RepeatProteinRelax::seal_jumps(), core::pose::symmetry::sealed_symmetric_fold_tree(), protocols::protein_interface_design::movers::SetAtomTree::set_ab_fold_tree(), protocols::splice::RBInMover::set_fold_tree(), protocols::splice::Splice::set_fold_tree(), core::conformation::symmetry::set_fold_tree_from_symm_data(), protocols::flexpep_docking::FlexPepDockingProtocol::setup_foldtree(), protocols::docking::setup_foldtree(), protocols::rbsegment_relax::setup_pose_rbsegs_keep_loops(), protocols::grafting::setup_single_loop_double_arm_remodeling_foldtree(), protocols::grafting::setup_single_loop_single_arm_remodeling_foldtree(), protocols::antibody::simple_fold_tree(), protocols::antibody::simple_one_loop_fold_tree(), protocols::protein_interface_design::star_fold_tree(), core::conformation::symmetry::symmetrize_fold_tree(), and protocols::hybridization::HybridizeFoldtreeDynamic::update().

FoldTree core::kinematics::FoldTree::clone ( )
inline
bool core::kinematics::FoldTree::connected ( ) const

Returns true if the FoldTree is connected.

Is the tree connected? returns true if fold_tree is connected doesn't assume that the fold_tree is in valid folding order, or even a tree

Size core::kinematics::FoldTree::count_fixed_residues ( Size const  begin_res,
Size const  size,
Size min_edge_count_out 
) const
bool core::kinematics::FoldTree::cut_edge ( Size const  cut_point)
bool core::kinematics::FoldTree::cut_random_edge ( ObjexxFCL::FArray1D_float const &  cut_bias_sum,
Size const  nres_in 
)
private

cut an edge randomly based on probability without disconnecting fold tree

Cuts a random edge chosen with per-rsd frequency given by cut_bias_sum. private: returns true if success, false if failure. operates on the edge_list_. doesnt assume any derived data is up-to-date. only an non-separating edge (label==-2) can be cut, otherwise fold tree will not be valid.

References protocols::loops::cut_point, core::kinematics::pick_loopy_cutpoint(), and TR().

Size core::kinematics::FoldTree::cutpoint ( Size const  cut) const
inline

Returns the cutpoint position of jump number <cut>

example(s): ft.cutpoint(1) See also: FoldTree FoldTree.jump_edge FoldTree.is_cutpoint FoldTree.is_jump_point FoldTree.num_cutpoint FoldTree.num_jump

References check_topology(), and cutpoint_.

Referenced by protocols::toolbox::pose_manipulation::add_chainbreaks_according_to_jumps(), protocols::loops::add_cutpoint_variants(), protocols::RBSegmentRelaxImpl::apply(), protocols::protein_interface_design::movers::AddSidechainConstraintsToHotspots::apply(), protocols::topology_broker::TopologyBroker::apply(), protocols::loops::apply_sequence_mapping(), protocols::jumping::JumpSample::apply_to(), protocols::jumping::close_chainbreaks(), protocols::abinitio::AbrelaxMover::close_with_idealization(), protocols::medal::cutpoint_probabilities(), core::scoring::methods::DistanceChainbreakEnergy::finalize_total_energy(), protocols::abinitio::find_sampling_cuts(), core::fragment::FindBoundaries(), protocols::abinitio::AbrelaxApplication::fold(), core::conformation::symmetry::get_component_contiguous_foldtree(), protocols::environment::inherit_cuts(), protocols::topology_broker::TopologyBroker::initialize_cuts(), core::scoring::motif::Xfrag::insert(), protocols::medal::invalidate_residues_spanning_cuts(), protocols::stepwise::legacy::modeler::rna::output_fold_tree_info(), protocols::toolbox::pose_manipulation::remove_chainbreaks_according_to_jumps(), protocols::loops::remove_cutpoint_variants(), protocols::hybridization::HybridizeFoldtreeDynamic::reset(), core::fragment::steal_constant_length_frag_set_from_pose(), protocols::rigid::RigidBodyMotionMover::update_chunks(), and protocols::nonlocal::BiasedFragmentMover::verify_probabilities_or_die().

Size core::kinematics::FoldTree::cutpoint_by_jump ( Size const  jump_number) const

Returns the corresponding cutpoint position for jump <jump_number> WARNING: if you look for all cutpoints by cycling thru jump_numbers you may be dissapointed you will get most likely the same cutpoint for several different jump_numbers however: the method cutpoint( nr ) will give you the number you are looking for.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

To keep the fold tree non-cyclic, for each jump added, there should be a corresponding cutpoint. First call partition_by_jump() and the cutpoint for this jump would be those two sequentially adjacent residues which are not connected any more if the jump is disconnected.

Note
This cutpoint is not necessarily unique if the foldtree is sufficiently complex. Chooses the first cutpoint with the desired property, starting at the N-terminus. Will be unique eg if the jump is the intra-template jump used to support a single loop region during loop modeling.

References protocols::mean_field::max(), protocols::mean_field::min(), and TR().

Referenced by protocols::simple_task_operations::DockingNoRepack1::apply(), protocols::docking::InterfaceSidechainMinMover::apply(), protocols::simple_task_operations::DockingNoRepack2::apply(), protocols::loop_grower::LoopGrower::apply(), protocols::docking::DockTaskFactory::create_and_attach_task_factory(), protocols::loop_grower::LoopComparator::fill_pose(), protocols::docking::DockingEnsemblePrepackProtocol::finalize_setup(), protocols::docking::DockingProtocol::finalize_setup(), protocols::scoring::Interface::set_pack(), protocols::docking::DockingHighResLegacy::setup_packing(), and protocols::loop_grower::LoopGrower::update_and_writelps().

Size core::kinematics::FoldTree::cutpoint_map ( Size const  seqpos) const
inline

cutpoint number for this residue

cutpoint_map is the inverse of cutpoint_, ie it assigns each sequence position that is a cutpoint to the cutpoint number associated with that cutpoint (cutpoints are numbered in increasing residue number from the beginning of the chain)

References check_topology(), cutpoint_, cutpoint_map_, and is_cutpoint_.

Referenced by protocols::topology_broker::TopologyBroker::initialize_cuts().

utility::vector1< Size > core::kinematics::FoldTree::cutpoints ( ) const
void core::kinematics::FoldTree::delete_edge ( FoldTree::iterator  edge)

Deletes the edge <edge> in the FoldTree by iterator.

die if the iterator is out of range

References TR().

Referenced by protocols::denovo_design::insert_peptide_edges(), and protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints().

void core::kinematics::FoldTree::delete_edge ( Edge const &  edge)

Delete the edge <edge> in the fold tree by example edge.

example(s): ft.delete_edge(edge1) See also: FoldTree FoldTree.add_edge FoldTree.check_fold_tree FoldTree.jump_edge FoldTree.nres FoldTree.num_jump

References core::kinematics::Edge::label(), core::kinematics::Edge::start(), and core::kinematics::Edge::stop().

void core::kinematics::FoldTree::delete_extra_vertices ( )

Delete vertices that are no longer necessary any more How is this determined?

after deleting a jump, there may be vertices of the tree which are neither jumps nor cutpoints. So delete them! this will combine two adjacent short edges into a long one

References protocols::make_rot_lib::PEPTIDE.

Referenced by protocols::enzdes::EnzdesFlexibleRegion::minimize_region(), and protocols::ligand_docking::LigandBaseProtocol::reorder_foldtree_around_mobile_regions().

void core::kinematics::FoldTree::delete_jump_and_intervening_cutpoint ( Size  jump_begin,
Size  jump_end,
Size  cut = 0 
)
void core::kinematics::FoldTree::delete_jump_and_intervening_cutpoint ( Size const  jump_number)

Useful for removing a loop modeling jump+cut.

Useful for removing a loop modeling jump+cut

Note
This will trigger a renumbering of the jumps if jump_number < num_jump()
void core::kinematics::FoldTree::delete_jump_seqpos ( Size const  seqpos)
private

delete a root/jump_point residue

Delete a position from the foldtree that is either a jump_point or the root. Will require some rearranging of the topology. LOGIC: note that there are 0 or 1 incoming edges to this vertex need a replacement vertex for edges involving this guy: (note that this number will have to be adjusted) I. if seqpos is polymer residue (ie contained in a polymer edge)

  1. if there's an incoming polymer segment, choose the previous rsd in this segment
  2. choose the next residue in the first outgoing polymer edge II. if there's an incoming edge, choose the start of this edge III. (non-polymer root residue) choose stop of first edge in foldtree

References protocols::loops::apply_sequence_mapping(), core::id::SequenceMapping::delete_target_residue(), core::sequence::end, core::kinematics::Edge::is_jump(), core::kinematics::Edge::is_polymer(), core::kinematics::Edge::label(), protocols::make_rot_lib::PEPTIDE, core::kinematics::Edge::polymer_direction(), core::kinematics::Edge::start(), core::kinematics::Edge::stop(), TR(), and core::kinematics::Edge::valid().

void core::kinematics::FoldTree::delete_segment ( Size const  seg_begin,
Size const  seg_end 
)

Deletes a continuous segment from <seq_begin> to <seq_end>

example(s): ft.delete_segment(13,37) See also: FoldTree FoldTree.check_fold_tree FoldTree.delete_edge FoldTree.new_jump FoldTree.nres FoldTree.simple_tree

it assumes that the segment is completely contained in a single edge of the tree. Only edge_list is updated and new topology is set true. No derived data is updated.

References protocols::rigid::c2n, protocols::rigid::n2c, and TR().

void core::kinematics::FoldTree::delete_self_edges ( )

Deletes edges with start==stop allowable 1->1 edge for single residue FoldTree.

Delete self-edges in the foldtree, allowing the edge 1->1 for a single residue tree

Referenced by protocols::splice::SpliceManager::fold_tree(), protocols::splice::RBOutMover::get_disulf_jump(), protocols::splice::RBInMover::set_fold_tree(), and protocols::docking::setup_foldtree().

void core::kinematics::FoldTree::delete_seqpos ( Size const  seqpos)

Deletes the residue <seqpos> from the FoldTree. Will rearrange topology if necessary.

example(s): ft.delete_seqpos(3) See also: FoldTree FoldTree.check_fold_tree FoldTree.clear FoldTree.new_jump FoldTree.nres FoldTree.num_jump FoldTree.simple_tree

Delete a sequence position from a foldtree. If the residue is a jump point or the root of the tree, we will have to rearrange the topology.

Referenced by protocols::forge::methods::replace().

void core::kinematics::FoldTree::delete_seqpos_simple ( Size const  seqpos)
private

delete a polymer residue (non-jump,non-root)

Delete a sequence position from a foldtree. This will not work at positions that are jump points, ie start or stop vertices for jump edges. (or the root of the tree!) So basically only works for polymer residues.

References protocols::loops::apply_sequence_mapping(), core::id::SequenceMapping::delete_target_residue(), core::sequence::end, and TR().

void core::kinematics::FoldTree::delete_unordered_edge ( Size const  start,
Size const  stop,
int const  label 
)

Find an edge in fold tree and delete it.

needs to match start residue number, end residue number and label index. abort if the edge is not found.

References protocols::loops::start, protocols::loops::stop, and TR().

std::string core::kinematics::FoldTree::downstream_atom ( Size const  jump_number) const

the jump atom on the stopping side

Get the downstream connection atomno (connection atom # at the "stop" vertex) If it hasn't been set return 0. Also see set_jump_atoms, which sets this data.

References core::kinematics::Edge::downstream_atom(), and core::kinematics::Edge::has_atom_info().

Referenced by protocols::stepwise::sampler::rigid_body::RigidBodyStepWiseSampler::calculate_jump(), core::conformation::symmetry::get_component_contiguous_foldtree(), protocols::stepwise::legacy::modeler::rna::output_fold_tree_info(), and protocols::rna::denovo::movers::RNA_Minimizer::setup_movemap().

Size core::kinematics::FoldTree::downstream_jump_residue ( Size const  jump_number) const

the stopping residue for this jump

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Get the sequence position of the downstream vertex of the jump indicated by the jump_number argument. Downstream means that if we traverse the tree starting at the root then we hit that vertex second.

return 0 if failed

Referenced by protocols::abinitio::MembraneAbinitio::add_spanning_region(), protocols::indel::IndelOptimizationMover::apply(), protocols::enzdes::DetectProteinLigandInterface::apply(), protocols::jumping::JumpSample::apply_to(), core::optimization::symmetry::atom_tree_get_atompairE_deriv(), core::import_pose::libraries::ChunkSet::check_fold_tree_OK(), protocols::simple_filters::InterfaceHbondsFilter::compute_hbonds(), protocols::enzdes::EnzdesBaseProtocol::create_enzdes_movemap(), protocols::ligand_docking::MinimizeBackbone::create_fold_tree_with_ligand_jumps_from_attach_pts(), core::conformation::symmetry::SymmetryInfo::dependent_dofs(), protocols::toolbox::rigid_body::figure_out_moving_partition_res(), protocols::stepwise::modeler::figure_out_moving_partition_res_for_jump(), protocols::stepwise::modeler::working_parameters::figure_out_rebuild_bulge_mode(), protocols::toolbox::rigid_body::figure_out_reference_res_for_jump(), core::pose::rna::fill_in_default_jump_atoms(), protocols::enzdes::SecondaryMatchProtocol::find_all_allowed_positions(), protocols::ligand_docking::find_attach_pt(), protocols::stepwise::modeler::find_jump_number_at_suite(), core::pose::symmetry::find_symmetric_basejump_anchor(), core::conformation::symmetry::fold_tree_entry_point(), core::environment::FoldTreeSketch::FoldTreeSketch(), protocols::loop_grower::SheetSampler::generate_jump_frags(), protocols::jumping::JumpSample::generate_jump_frags(), protocols::jumping::JumpSample::generate_jump_frames(), protocols::stepwise::modeler::rna::get_anchor_res(), core::import_pose::get_anchor_rsd(), core::pose::get_chain_from_jump_id(), core::pose::get_chain_id_from_jump_id(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_docking_split_move_elements(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_intramolecular_split_move_elements(), core::pose::get_jump_ids_from_chain(), core::pose::get_jump_ids_from_chain_ids(), protocols::ligand_docking::LigandBaseProtocol::get_ligand_id(), protocols::hybridization::InsertChunkMover::get_local_sequence_mapping(), core::pose::rna::get_rigid_body_jumps(), protocols::recces::sampler::initialize_sampler(), core::scoring::motif::Xfrag::insert(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::insert_base_pair_jumps(), protocols::hybridization::HybridizeFoldtreeDynamic::jumps_and_cuts_from_foldtree(), protocols::forge::methods::jumps_and_cuts_from_pose(), protocols::stepwise::modeler::look_for_unique_jump_to_moving_res(), core::optimization::symmetry::SymAtomTreeMinimizer::make_asymmetric_movemap(), core::pose::symmetry::make_symmetric_movemap(), protocols::stepwise::modeler::rna::sugar::VirtualSugarSampler::minimize_sugar(), protocols::stepwise::modeler::output_movemap(), protocols::enzdes::PredesignPerturbMover::parse_my_tag(), protocols::hybridization::ChunkTrialMover::pick_random_chunk(), core::import_pose::put_in_cutpoint(), core::import_pose::RNA_JumpMover::random_jump_change(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::randomize_rnp_rigid_body_orientations(), core::conformation::symmetry::SymmetricConformation::recalculate_transforms(), core::import_pose::remove_cutpoint_closed(), protocols::simple_ddg::AlaScan::report(), core::kinematics::residues_downstream_of_jump(), core::pose::symmetry::sealed_symmetric_fold_tree(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::search_rigid_body_orientation(), protocols::hybridization::InsertChunkMover::set_bb_xyz_aligned(), core::conformation::symmetry::SymmetricConformation::set_dof(), protocols::rna::denovo::movers::RNA_HelixMover::set_pose(), protocols::analysis::InterfaceAnalyzerMover::set_pose_info(), protocols::hydrate::set_task_and_movemap(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::setup_fold_tree(), protocols::rna::denovo::coarse::MultipleDomainMover::setup_jump_numbers_and_partner(), protocols::rna::denovo::movers::RNA_Minimizer::setup_movemap(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::setup_rna_protein_docking_mover(), protocols::membrane::split_topology_by_jump_noshift(), core::conformation::symmetry::symmetrize_fold_tree(), protocols::rna::denovo::coarse::MultipleDomainMover::try_to_slide_into_contact(), core::import_pose::update_fixed_domain_from_extra_minimize_jump_pairs(), protocols::magnesium::update_jump_atoms_for_mg_bound_water(), protocols::environment::CoMTrackerCM::update_tracking_residue(), core::kinematics::visualize_fold_tree(), and protocols::environment::claims::VirtResClaim::yield_elements().

int core::kinematics::FoldTree::edge_label ( Size const  start,
Size const  stop 
)

Returns the edge label of the edge from <start> to <stop>

this is an internal function, used for testing if an edge is separating

References protocols::loops::start, protocols::loops::stop, and TR().

Referenced by protocols::docking::setup_foldtree().

bool core::kinematics::FoldTree::empty ( ) const
inline
const_iterator core::kinematics::FoldTree::end ( ) const
inline
iterator core::kinematics::FoldTree::end ( )
inlineprivate

non-const end iterator of edge_list

References edge_list_.

utility::vector1< Edge > core::kinematics::FoldTree::get_chemical_edges ( ) const

Returns all chemical edges from fold tree.

Author
Morgan Nance

Referenced by protocols::docking::setup_foldtree(), and core::kinematics::visualize_fold_tree().

utility::vector1< Edge > core::kinematics::FoldTree::get_jump_edges ( ) const

Return all jump Edges from the FoldTree.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Author
Labonte JWLab.nosp@m.onte.nosp@m.@jhu..nosp@m.edu

Referenced by protocols::fold_from_loops::movers::DisplayPoseLabelsMover::is_nubinitio_tree(), and protocols::docking::setup_foldtree().

Size core::kinematics::FoldTree::get_jump_that_builds_residue ( Size const  seqpos) const

Get the number of the jump that builds (connects to) a given residue It's an error if the residue isn't built directly by a jump.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Get the number of the jump that builds (connects to) a given residue

References core::kinematics::Edge::is_jump(), and core::kinematics::Edge::label().

Referenced by core::optimization::symmetry::SymMinimizerMap::asymmetric_dof(), core::optimization::symmetry::atom_tree_get_atompairE_deriv(), core::conformation::symmetry::SymmetryInfo::dependent_dofs(), protocols::peptide_deriver::PeptideDeriverFilter::derive_peptide(), protocols::enzdes::DiversifyStoredRBConfs::diversify_all_confs(), protocols::simple_ddg::ddG::do_minimize(), core::conformation::symmetry::SymmetryInfo::dof_is_independent(), protocols::magnesium::fix_water_jump(), protocols::stepwise::modeler::freeze_waters(), core::conformation::symmetry::SymmetryInfo::get_dof_derivative_weight(), protocols::cyclic_peptide::CrosslinkerMover::get_jump_index_for_crosslinker(), protocols::cyclic_peptide::CrosslinkerMover::get_jump_indices_for_symmetric_crosslinker(), core::optimization::symmetry::SymAtomTreeMinimizer::make_asymmetric_movemap(), protocols::enzdes::MinimizeStoredRBConfs::rb_minimize_all_confs(), protocols::enzdes::RepackLigandSiteWithoutLigandMover::separate_protein_and_ligand(), protocols::stepwise::monte_carlo::mover::ResampleMover::slide_jump_randomly(), and protocols::magnesium::update_jump_atoms_for_mg_bound_water().

utility::vector1< Edge > core::kinematics::FoldTree::get_outgoing_edges ( Size const  seqpos) const
Size core::kinematics::FoldTree::get_parent_residue ( Size const  seqpos,
bool connected_by_jump 
) const

Get the residue that is immediately upstream of this residue (and tell us whether connection is jump or bond).

References core::kinematics::Edge::is_jump(), core::kinematics::Edge::start(), and core::kinematics::Edge::stop().

Referenced by protocols::stepwise::modeler::protein::StepWiseProteinBackboneSampler::define_moving_res(), protocols::stepwise::monte_carlo::mover::ensure_appropriate_foldtree_for_move(), protocols::stepwise::modeler::protein::figure_out_protein_modeling_info(), protocols::stepwise::modeler::figure_out_reference_res_for_suite(), protocols::stepwise::modeler::figure_out_root_and_moving_partition_res(), protocols::magnesium::find_bound_waters_that_are_daughters_in_fold_tree(), protocols::stepwise::modeler::find_downstream_connection_res(), protocols::stepwise::modeler::get_domain_boundary_res(), protocols::stepwise::monte_carlo::mover::ResampleMover::get_remodel_res(), protocols::stepwise::monte_carlo::mover::StepWiseMasterMover::moves_for_pose(), protocols::rna::denovo::RNA_FragmentMonteCarlo::reroot_pose_before_align_and_return_moving_res(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::reverse_add_move(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::reverse_add_submotif_move(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::reverse_delete_move(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::reverse_resample_move(), protocols::stepwise::modeler::revise_root_and_moving_res(), protocols::stepwise::modeler::revise_root_and_moving_res_list(), protocols::stepwise::monte_carlo::mover::AddMover::setup_initial_jump(), protocols::magnesium::MgHydrater::setup_virtual_waters_around_magnesiums(), protocols::stepwise::modeler::working_parameters::setup_working_parameters_explicit(), protocols::stepwise::modeler::working_parameters::setup_working_parameters_for_swa(), protocols::stepwise::modeler::split_pose(), and protocols::loop_grower::LoopGrower::store_sheets().

Size core::kinematics::FoldTree::get_parent_residue ( Size const  seqpos) const

Get the residue that is immediately upstream of this residue.

int core::kinematics::FoldTree::get_polymer_residue_direction ( Size const  seqpos) const

Returns the direction (n2c, c2n) in which the given (peptide) residue is built during folding.

Returns the folding direction of a given polymer (peptide) residue. If the residue is in a peptide edge this is the direction in which that edge is traveled if we traverse the tree starting at the root. Will die if residue is root or if residue is built by jump or chemical bond.

Edge const & core::kinematics::FoldTree::get_residue_edge ( Size const  seqpos) const
size_t core::kinematics::FoldTree::hash_value ( ) const

computes a fixed-length, hash-based identifier for this FoldTree, permitting efficient comparison between a pair of FoldTrees

Computes a fixed-length, hash-based identifier for this FoldTree, permitting efficient comparison of a pair of FoldTrees. The need for this functionality arose from a desire to reuse an object that was unaware of changes to the FoldTree. Rather than perform a costly deep comparison by evaluating edge lists, we wanted a simple method for quickly testing whether the naive object should be reinstantiated. This method is most useful in situations where there are many edges in the FoldTree.

References core::id::to_string().

void core::kinematics::FoldTree::insert_fold_tree_by_jump ( FoldTree const &  subtree,
Size const  insert_seqpos,
Size const  insert_jumppos,
Size const  anchor_pos,
Size  anchor_jump_number = 0,
std::string const &  anchor_atom = "",
std::string const &  root_atom = "" 
)

Inserts a fold_tree as a subtree.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Insert another fold_tree as a subtree. Residues are inserted as a contiguous block beginning at insert_seqpos. Jumps are inserted as a contiguous block beginning at insert_jumppos. Note that insert_seqpos could be equal to nres()+1, ie subtree is being appended at the end. The jump anchoring subtree runs from the residue currently numbered "anchor_pos" to the residue insert_seqpos + subtree.root() - 1, and has label/number anchor_jump_number

References protocols::forge::methods::add_vertex(), nres(), num_jump(), root(), and TR().

Referenced by protocols::fold_from_loops::utils::append_pose_to_pose_keep_fold_tree().

void core::kinematics::FoldTree::insert_polymer_residue ( Size const  seqpos,
bool const  join_lower,
bool const  join_upper 
)

Inserts a polymer residue at position <seqpos> How?

(ie between current rsds seqpos-1 and seqpos, so that the sequence position of the new residue is seqpos) if seqpos-1 is a cutpoint in the current fold_tree – we have a choice about how to connect the new residue: it could be joined to the preceding peptide segment (join to seqpos-1) or to the following segment (joined to the residue currently at seqpos). join_upper and join_lower control the behavior in this case.

Note
seqpos may be greater than current nres, ie we may be "inserting" at end

References protocols::make_rot_lib::PEPTIDE.

void core::kinematics::FoldTree::insert_residue_by_chemical_bond ( Size const  seqpos,
Size const  anchor_residue,
std::string const &  anchor_atom,
std::string const &  root_atom 
)

Inserts a bonded residue at position <seqpos>

(ie between current rsds seqpos-1 and seqpos, so that the sequence position of the new residue is seqpos) if seqpos-1 is a cutpoint in the current fold_tree – we have a choice about how to connect the new residue: it could be joined to the preceding peptide segment (join to seqpos-1) or to the following segment (joined to the residue currently at seqpos). join_upper and join_lower control the behavior in this case.

Note
seqpos may be greater than current nres, ie we may be "inserting" at end
void core::kinematics::FoldTree::insert_residue_by_jump ( Size const  seqpos,
Size  anchor_pos,
std::string const &  anchor_atom = "",
std::string const &  root_atom = "" 
)

Inserts a residue attached only by a jump. precondition is that seqpos-1 is a cutpoint.

Note
that anchor_pos is wrt the current numbering system (ie before insertion)

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Insert a new residue into the tree at position seqpos, anchoring it to the rest of the tree by a jump

the residue at position seqpos moves to position seqpos+1

vertices remapped, only question is cutpoint at seqpos-1, should it move to seqpos?

bool core::kinematics::FoldTree::is_cutpoint ( Size const  seqpos) const
inline

Returns true is position <seqpos> is a cutpoint.

example(s): ft.is_cutpoint(37) See also: FoldTree FoldTree.cutpoint FoldTree.new_jump FoldTree.nres FoldTree.num_cutpoint FoldTree.num_jump

References check_topology(), cutpoint_, cutpoint_map_, is_cutpoint_, and nres_.

Referenced by protocols::environment::EnvClaimBroker::add_chainbreak_variants(), protocols::topology_broker::TopologyBroker::add_chainbreak_variants(), protocols::splice::Splice::add_coordinate_constraints(), protocols::splice::SpliceManager::add_coordinate_constraints(), protocols::forge::methods::add_cutpoint_variants(), core::import_pose::add_virtual_sugar_res(), core::import_pose::RNA_HelixAssembler::append_Aform_residue(), protocols::cyclic_peptide::PeptideStubMover::apply(), protocols::stepwise::modeler::precomputed::PrecomputedLibraryMover::apply(), protocols::simple_moves::MissingDensityToJumpMover::apply(), protocols::rbsegment_relax::OptimizeThreadingMover::apply(), protocols::rbsegment_relax::RBSegmentRelax::apply(), protocols::fold_from_loops::selectors::CutpointResidueSelector::apply(), protocols::rna::movers::RNAIdealizeMover::apply(), protocols::hybridization::CartesianHybridize::apply(), protocols::loop_grower::LoopGrower::apply(), protocols::hybridization::CartesianSampler::apply_fragcsts(), protocols::loops::apply_sequence_mapping(), core::pose::rna::apply_virtual_rna_residue_variant_type(), core::pose::toolbox::AtomID_Mapper::calculate_atom_id_map(), protocols::hybridization::FragmentBiasAssigner::chainbreak(), protocols::topology_broker::TopologyBroker::check_chainbreak_variants(), core::scoring::loop_graph::LoopGraph::check_for_unexpected_cutpoints(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::check_from_scratch(), core::scoring::rna::check_rna_loop(), protocols::jumping::close_chainbreaks(), protocols::hybridization::FragmentBiasAssigner::compute_frag_bias(), protocols::loop_grower::LoopGrower::coordinate_filter(), protocols::topology_broker::copy_internal_coords(), core::pose::correctly_add_cutpoint_variants(), protocols::hybridization::create_fragment_set(), protocols::hybridization::create_fragment_set_no_ssbias(), protocols::rna::denovo::create_rna_vall_torsions(), core::import_pose::define_chains(), protocols::stepwise::modeler::align::StepWisePoseAligner::do_checks(), protocols::anchored_design::dump_cutpoint_info(), protocols::rna::denovo::coarse::CoarseRNA_LoopCloser::figure_out_dof_ids_and_offsets(), protocols::stepwise::modeler::protein::loop_close::StepWiseProteinKIC_LoopBridger::figure_out_loop(), protocols::stepwise::modeler::figure_out_moving_chain_break_res(), protocols::stepwise::modeler::figure_out_moving_chain_breaks(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::figure_out_partition_definition(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::figure_out_Prepend_Internal(), protocols::stepwise::modeler::working_parameters::figure_out_rebuild_bulge_mode(), protocols::rna::denovo::coarse::CoarseRNA_LoopCloser::figure_out_which_cutpoints_were_affected(), core::io::silent::BinarySilentStruct::fill_struct(), protocols::electron_density::findLoopFromDensity(), protocols::loop_grower::LoopGrower::GDThatonative(), protocols::stepwise::modeler::align::StepWisePoseAligner::get_calc_rms_atom_id_map(), core::import_pose::RNA_HelixAssembler::get_cutpoint(), protocols::rna::denovo::get_default_allowed_bulge_res(), protocols::stepwise::modeler::get_domain_boundary_suites(), protocols::stepwise::modeler::get_endpoints_from_pose(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_intramolecular_split_move_elements(), protocols::stepwise::monte_carlo::submotif::SubMotifLibrary::get_matches_for_one_submotif_sequence_set(), protocols::recces::sampler::get_recces_turner_sampler_from_secstruct(), protocols::recces::sampler::get_recces_turner_sampler_legacy(), protocols::stepwise::monte_carlo::submotif::SubMotifLibrary::get_submotif_sequence_set(), protocols::hybridization::CartesianSampler::get_transform(), protocols::seeded_abinitio::GrowPeptides::grow_from_vertices(), protocols::loops::Loops::grow_loop(), protocols::loops::Loops::grow_loop_away_from_sheets(), protocols::stepwise::modeler::precomputed::PrecomputedLibraryMover::has_precomputed_move(), protocols::seeded_abinitio::SegmentHybridizer::hybridize(), core::conformation::idealize_position(), protocols::abinitio::abscript::RigidChunkCM::initialize(), protocols::nonlocal::SingleFragmentMover::initialize_chunks(), protocols::stepwise::modeler::rna::phosphate::MultiPhosphateSampler::initialize_phosphate_move_list(), protocols::recces::sampler::initialize_sampler(), protocols::recces::sampler::initialize_thermal_sampler(), core::conformation::insert_ideal_bonds_at_polymer_junction(), protocols::stepwise::modeler::rna::sugar::VirtualSugarJustInTimeInstantiator::instantiate_sugars_at_cutpoint_closed(), core::pose::rna::is_cutpoint_open(), core::conformation::is_ideal_position(), core::scoring::methods::is_lower_cutpoint(), core::pose::rna::is_torsion_valid(), core::scoring::methods::is_upper_cutpoint(), protocols::forge::methods::linear_chainbreak(), protocols::stepwise::modeler::rna::sugar::look_for_non_jump_reference_to_next(), protocols::stepwise::modeler::rna::sugar::look_for_non_jump_reference_to_previous(), protocols::stepwise::modeler::make_cut_at_moving_suite(), protocols::forge::methods::make_star_foldtree(), core::scoring::electron_density::ElectronDensity::matchRes(), protocols::stepwise::modeler::merge_two_poses(), protocols::loops::loop_mover::perturb::LoopMover_Perturb_CCD::model_loop(), protocols::loops::loop_mover::perturb::LoopMover_Perturb_KIC::model_loop(), protocols::stepwise::sampler::rna::modeler_sugar_at_five_prime(), protocols::stepwise::sampler::rna::modeler_sugar_at_three_prime(), protocols::forge::build::Bridge::modify_impl(), protocols::forge::build::SegmentRebuild::modify_impl(), protocols::forge::build::SegmentInsert::modify_impl(), protocols::stepwise::monte_carlo::rna::RNA_AddDeleteMonteCarlo::output_silent_file(), core::pose::rna::output_stems(), protocols::forge::methods::overlap_chainbreak(), core::pose::pdbslice(), possible_root(), core::import_pose::RNA_HelixAssembler::prepend_Aform_residue(), protocols::forge::methods::quadratic_chainbreak(), protocols::rbsegment_relax::OptimizeThreadingMover::rebuild_unaligned(), protocols::loop_grower::LoopGrower::refine_cycle(), protocols::forge::methods::remove_cutpoint(), protocols::forge::methods::remove_cutpoint_variants(), core::import_pose::remove_cutpoints_closed(), protocols::features::ProteinBondGeometryFeatures::report_interres_angles(), protocols::features::ProteinBondGeometryFeatures::report_interres_lengths(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::reverse_delete_move(), protocols::loop_grower::LoopGrower::RMStonative(), protocols::moves::PyMOLMover::send_foldtree(), protocols::recces::set_gaussian_stdevs_recces_turner_from_secstruct(), protocols::recces::set_gaussian_stdevs_recces_turner_legacy(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_chainbreak_variants(), core::import_pose::setup_fold_trees(), protocols::stepwise::modeler::working_parameters::setup_working_parameters_explicit(), protocols::fold_from_loops::movers::DisplayPoseLabelsMover::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree_and_movemap(), core::kinematics::simple_visualize_fold_tree_and_movemap_bb_chi(), protocols::stepwise::modeler::slice(), protocols::stepwise::modeler::split_pose(), protocols::loop_grower::transform_to_closest_symmunit(), protocols::hybridization::MRMover::trim_target_pose(), core::import_pose::libraries::RNA_ChunkLibrary::update_atom_level_domain_map(), protocols::rna::denovo::movers::RNA_Minimizer::update_atom_level_domain_map_with_extra_minimize_res(), protocols::rna::denovo::movers::RNA_FragmentMover::update_insert_map(), core::pose::rna::virtualize_5prime_phosphates(), and core::pose::rna::virtualize_free_rna_moieties().

bool core::kinematics::FoldTree::is_equivalent ( FoldTree const &  b) const

Check if the two FoldTrees build in a similar fashion That is, if their roots are the same and if all edges correspond to each other – Does not necessarily check that the order of the edges are the same.

References edge_list_, and root().

bool core::kinematics::FoldTree::is_jump_point ( Size const  seqpos) const
inline
bool core::kinematics::FoldTree::is_root ( Size const  seqpos) const
inline
bool core::kinematics::FoldTree::is_simple_tree ( ) const

Returns true if the FoldTree has 1-edge (non-jump)

Returns true if this tree is a simple 1->total_residue FoldTree, returns false otherwise.

example(s): ft.is_simple_tree() See also: FoldTree FoldTree.check_fold_tree FoldTree.num_jump FoldTree.simple_tree

Referenced by protocols::fldsgn::potentials::sspot::get_foldtree_seqsep(), core::scoring::SecondaryStructurePotential::get_foldtree_seqsep(), and core::io::silent::BinarySilentStruct::resize().

Edge const & core::kinematics::FoldTree::jump_edge ( Size const  jump_number) const

Returns the jump edge with jump number <jump_number> (const)

example(s): ft.jump_edge(1) See also: FoldTree FoldTree.new_jump FoldTree.num_jump

Referenced by protocols::seeded_abinitio::CoordinateCst::apply(), protocols::protein_interface_design::movers::SpinMover::apply(), protocols::topology_broker::RigidBodyRandomTMHMover::apply(), protocols::rigid::RotateJumpAxisMover::apply(), protocols::cryst::UpdateCrystInfo::apply(), protocols::denovo_design::movers::RotateSegmentMover::apply(), core::optimization::symmetry::SymMinimizerMap::asymmetric_dof(), core::kinematics::ShortestPathInFoldTree::build_jumpres_distmap(), protocols::hybridization::downstream_residues_from_jump(), core::scoring::electron_density::ElecDensAllAtomCenEnergy::eval_atom_derivative(), core::scoring::electron_density::ElecDensCenEnergy::eval_atom_derivative(), core::scoring::electron_density::ElecDensEnergy::eval_atom_derivative(), core::scoring::electron_density::FastDensEnergy::eval_residue_pair_derivatives(), core::io::silent::BinarySilentStruct::fill_pose(), protocols::topology_broker::MembraneTopologyClaimer::generate_claims(), core::kinematics::get_foldtree_which_partitions(), core::conformation::get_root_residue_root_atomno(), protocols::simple_filters::JumpEvaluator::JumpEvaluator(), protocols::topology_broker::TMHTopologySamplerClaimer::move_spans(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), protocols::moves::PyMOLMover::send_foldtree(), protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints(), protocols::docking::setup_dock_jump(), protocols::docking::setup_foldtree(), protocols::fold_from_loops::movers::DisplayPoseLabelsMover::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree_and_movemap(), core::kinematics::simple_visualize_fold_tree_and_movemap_bb_chi(), protocols::denovo_design::slide_jump(), and core::pose::transfer_jumps().

Edge & core::kinematics::FoldTree::jump_edge ( Size const  jump_number)

Returns the jump edge with jump number <jump_number> (non-const)

bool core::kinematics::FoldTree::jump_exists ( Size const  pos1,
Size const  pos2 
) const
inline
core::Size core::kinematics::FoldTree::jump_nr ( core::Size  upstream_res,
core::Size  downstream_res 
) const
inline

get the jump_nr connected to jump upstream->downstream, returns 0 if not found

whether a jump exists between these residues

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

References jump_point(), and num_jump().

Referenced by protocols::stepwise::monte_carlo::mover::AddMover::append_residue(), protocols::stepwise::modeler::check_jump_to_next_residue_in_chain(), protocols::stepwise::modeler::check_jump_to_previous_residue_in_chain(), protocols::stepwise::modeler::protein::StepWiseProteinBackboneSampler::define_moving_res(), protocols::stepwise::modeler::working_parameters::figure_out_rebuild_bulge_mode(), protocols::stepwise::modeler::figure_out_root_and_moving_partition_res(), core::import_pose::get_tree(), protocols::topology_broker::TopologyBroker::initialize_dofs(), protocols::stepwise::modeler::rna::sugar::look_for_jumps_to_next(), protocols::stepwise::modeler::rna::sugar::look_for_jumps_to_previous(), core::optimization::symmetry::SymAtomTreeMinimizer::make_asymmetric_movemap(), protocols::stepwise::monte_carlo::mover::AddMover::prepend_residue(), protocols::stepwise::legacy::modeler::rna::remove_chain_break_jump_point(), protocols::rna::denovo::RNA_FragmentMonteCarlo::reroot_pose_before_align_and_return_moving_res(), protocols::stepwise::modeler::revise_root_and_moving_res_list(), protocols::stepwise::modeler::working_parameters::setup_working_parameters_for_swa(), protocols::stepwise::modeler::split_pose(), core::pose::transfer_jumps(), core::import_pose::update_fixed_domain_from_extra_minimize_jump_pairs(), and protocols::stepwise::modeler::rna::sugar::VirtualSugarSampler::virtualize_distal_partition().

Size core::kinematics::FoldTree::jump_point ( Size const  lower_higher,
Size const  jump_number 
) const

starting or stopping residue of a jump edge

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Referenced by jump_exists(), jump_nr(), and protocols::stepwise::legacy::modeler::rna::output_fold_tree_info().

void core::kinematics::FoldTree::new_chemical_bond ( Size const  anchor_pos,
Size const  root_pos,
std::string const &  anchor_atom,
std::string const &  root_atom,
Size const  new_cutpoint 
)

Add a new jump to an existing fold tree, returns the jump_number of the new jump.

References protocols::forge::methods::add_vertex(), core::kinematics::Edge::is_chemical_bond(), and protocols::make_rot_lib::PEPTIDE.

Size core::kinematics::FoldTree::new_jump ( Size const  jump_pos1,
Size const  jump_pos2,
Size const  new_cutpoint 
)

Adds a new jump edge from <pos1> to <pos2> with cutpoint <cutpoint>

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Add a new jump to an existing fold tree, returns the jump_number of the new jump.

References protocols::forge::methods::add_vertex(), and protocols::make_rot_lib::PEPTIDE.

Referenced by protocols::frag_picker::nonlocal::NonlocalFrags::apply(), protocols::loops::loop_closure::ccd::ShortLoopClosure::apply(), protocols::simple_moves::MissingDensityToJumpMover::apply(), protocols::hybridization::DomainAssembly::apply(), core::import_pose::RNA_HelixAssembler::build_init_pose(), protocols::stepwise::modeler::protein::StepWiseProteinBackboneSampler::figure_out_fold_tree(), core::pose::rna::figure_out_reasonable_rna_fold_tree(), protocols::stepwise::sampler::protein::generate_beta_database_test(), protocols::enzdes::EnzdesFlexBBProtocol::generate_ensemble_for_region(), core::import_pose::RNA_HelixAssembler::get_rid_of_capping_base_pairs(), protocols::stepwise::monte_carlo::submotif::SubMotifLibrary::initialize_from_jump_library(), protocols::forge::methods::linear_chainbreak(), protocols::stepwise::modeler::make_cut_at_moving_suite(), protocols::forge::build::SegmentSwap::modify_impl(), protocols::denovo_design::movers::new_jump_and_cutpoint(), protocols::forge::methods::overlap_chainbreak(), protocols::recces::pose_setup_from_file(), core::import_pose::put_in_cutpoint(), protocols::forge::methods::quadratic_chainbreak(), and protocols::rna::movers::RNA_LoopCloser::rna_ccd_close().

Size core::kinematics::FoldTree::nres ( ) const
inline

Returns the number of residues in the FoldTree.

routines for retrieving the derived data will call check_topology and/or check_order first

example(s): ft.nres() See also: FoldTree FoldTree.check_fold_tree FoldTree.num_jump FoldTree.simple_tree FoldTree.size

References check_topology(), and nres_.

Referenced by protocols::jumping::JumpSample::apply_to(), core::kinematics::ShortestPathInFoldTree::build_peptide_table(), protocols::jumping::close_chainbreaks(), protocols::ligand_docking::MinimizeBackbone::create_fold_tree_with_ligand_jumps_from_attach_pts(), core::pose::create_subpose(), protocols::forge::methods::find_connecting_jump(), protocols::stepwise::modeler::find_first_root_residue(), protocols::denovo_design::find_jump_rec(), protocols::stepwise::modeler::find_root_without_virtual_ribose(), core::fragment::FindBoundaries(), core::conformation::Conformation::fold_tree(), core::conformation::symmetry::fold_tree_entry_point(), protocols::loops::fold_tree_from_loops(), core::environment::FoldTreeSketch::FoldTreeSketch(), protocols::topology_broker::MembraneTopologyClaimer::generate_claims(), core::conformation::symmetry::get_component_contiguous_foldtree(), core::kinematics::get_foldtree_which_partitions(), insert_fold_tree_by_jump(), core::conformation::insert_residue_into_atom_tree(), core::kinematics::jump_which_partitions(), protocols::forge::methods::merge(), possible_root(), protocols::backrub::read_fold_tree_from_file(), protocols::forge::methods::remove_cutpoint(), protocols::forge::methods::remove_cutpoints(), protocols::environment::Environment::remove_nonpermenant_features(), protocols::forge::methods::replace(), protocols::rbsegment_relax::setup_disconnected(), protocols::rbsegment_relax::setup_pose_rbsegs_keep_loops(), protocols::forge::methods::shift_jumps(), protocols::fold_from_loops::movers::DisplayPoseLabelsMover::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree_and_movemap(), core::kinematics::simple_visualize_fold_tree_and_movemap_bb_chi(), protocols::hybridization::HybridizeFoldtreeDynamic::update(), and core::kinematics::visualize_fold_tree().

Size core::kinematics::FoldTree::num_cutpoint ( ) const
inline

Returns the number of cutpoints in the FoldTree.

example(s): ft.num_cutpoint() See also: FoldTree FoldTree.cutpoint FoldTree.is_cutpoint FoldTree.nres FoldTree.num_jump

References check_topology(), and num_cutpoint_.

Referenced by protocols::loops::add_cutpoint_variants(), protocols::abinitio::MembraneAbinitio::add_spanning_region(), protocols::RBSegmentRelaxImpl::apply(), protocols::protein_interface_design::movers::AddSidechainConstraintsToHotspots::apply(), protocols::rna::movers::ErraserMinimizerMover::apply(), protocols::topology_broker::TopologyBroker::apply(), protocols::loop_grower::LoopGrower::apply(), protocols::loops::apply_sequence_mapping(), protocols::abinitio::abscript::AbscriptLoopCloserCM::attempt_idealize(), protocols::forge::remodel::RemodelLoopMover::boost_closure_stage(), protocols::jumping::close_chainbreaks(), protocols::abinitio::AbrelaxMover::close_with_idealization(), protocols::medal::cutpoint_probabilities(), core::scoring::methods::DistanceChainbreakEnergy::finalize_total_energy(), protocols::abinitio::find_sampling_cuts(), core::fragment::FindBoundaries(), protocols::abinitio::AbrelaxApplication::fold(), core::conformation::symmetry::get_component_contiguous_foldtree(), protocols::forge::remodel::RemodelLoopMover::independent_stage(), protocols::environment::inherit_cuts(), core::scoring::motif::Xfrag::insert(), protocols::medal::invalidate_residues_spanning_cuts(), protocols::forge::methods::linear_chainbreak(), protocols::denovo_design::linear_chainbreak(), protocols::stepwise::legacy::modeler::rna::output_fold_tree_info(), protocols::forge::methods::overlap_chainbreak(), protocols::forge::methods::quadratic_chainbreak(), protocols::loops::remove_cutpoint_variants(), protocols::hybridization::HybridizeFoldtreeDynamic::reset(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::setup_fold_tree(), protocols::forge::remodel::RemodelLoopMover::simultaneous_stage(), core::fragment::steal_constant_length_frag_set_from_pose(), protocols::rigid::RigidBodyMotionMover::update_chunks(), and protocols::nonlocal::BiasedFragmentMover::verify_probabilities_or_die().

Size core::kinematics::FoldTree::num_jump ( ) const
inline

Returns the number of jumps in the FoldTree.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

example(s): ft.num_jump() See also: FoldTree FoldTree.check_fold_tree FoldTree.jump_edge FoldTree.new_jump FoldTree.nres

References check_topology(), and num_jump_.

Referenced by protocols::toolbox::pose_manipulation::add_chainbreaks_according_to_jumps(), protocols::cryst::MakeLatticeMover::add_monomers_to_lattice(), protocols::cryst::MakeLayerMover::add_monomers_to_layer(), protocols::denovo_design::components::add_to_pose(), protocols::pose_metric_calculators::append_rsd_by_jump_near_atom(), protocols::magnesium::MgMonteCarlo::apply(), protocols::simple_ddg::ddG::apply(), protocols::indel::IndelOptimizationMover::apply(), protocols::splice::SpliceOut::apply(), core::select::jump_selector::JumpIndexSelector::apply(), protocols::cryst::UpdateCrystInfo::apply(), protocols::splice::Splice::apply(), protocols::enzdes::DetectProteinLigandInterface::apply(), protocols::membrane::AddMembraneMover::apply(), protocols::cryst::MakeLayerMover::apply(), protocols::cryst::MakeLatticeMover::apply(), protocols::loop_grower::LoopGrower::apply(), protocols::jumping::JumpSample::apply_to(), protocols::topology_broker::TMHTopologySamplerClaimer::build_fold_tree(), core::kinematics::ShortestPathInFoldTree::build_jumpres_distmap(), protocols::cryst::MakeLatticeMover::build_lattice_of_virtuals(), protocols::cryst::MakeLayerMover::build_layer_of_virtuals(), protocols::ligand_docking::MinimizeBackbone::create_fold_tree_with_ligand_jumps_from_attach_pts(), protocols::pose_metric_calculators::dock_waters_to_atom(), protocols::abinitio::KinematicAbinitio::dump_jump_log(), protocols::toolbox::rigid_body::figure_out_moving_partition_res(), protocols::stepwise::modeler::working_parameters::figure_out_rebuild_bulge_mode(), protocols::toolbox::rigid_body::figure_out_reference_res_for_jump(), core::pose::rna::fill_in_default_jump_atoms(), core::io::silent::ScoreJumpFileSilentStruct::fill_pose(), core::io::silent::BinarySilentStruct::fill_pose(), core::io::silent::RNA_SilentStruct::fill_pose(), protocols::loop_grower::LoopComparator::fill_pose(), core::io::silent::ScoreJumpFileSilentStruct::fill_struct(), core::io::silent::BinarySilentStruct::fill_struct(), core::io::silent::RNA_SilentStruct::fill_struct(), protocols::stepwise::modeler::find_jump_number_at_suite(), core::pose::symmetry::find_symmetric_basejump_anchor(), core::conformation::symmetry::SymmetricConformation::fold_tree(), core::conformation::symmetry::fold_tree_entry_point(), protocols::loops::fold_tree_from_loops(), protocols::denovo_design::components::FoldGraph::fold_tree_rec(), core::environment::FoldTreeSketch::FoldTreeSketch(), protocols::topology_broker::MembraneTopologyClaimer::generate_claims(), core::conformation::symmetry::get_component_contiguous_foldtree(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_docking_split_move_elements(), core::kinematics::get_foldtree_which_partitions(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_intramolecular_split_move_elements(), core::pose::rna::get_rigid_body_jumps(), core::conformation::get_root_residue_root_atomno(), core::io::silent::BinarySilentStruct::init_from_lines(), protocols::cryst::DockLatticeMover::initialize(), protocols::topology_broker::AsymFoldandDockClaimer::initialize_dofs(), core::conformation::symmetry::MirrorSymmetricConformation::insert_conformation_by_jump(), core::conformation::symmetry::SymmetricConformation::insert_conformation_by_jump(), insert_fold_tree_by_jump(), core::import_pose::libraries::ChunkSet::insert_protein_chunk_into_pose(), protocols::motif_grafting::movers::MotifGraftMover::join_two_poses_by_jump(), jump_exists(), jump_nr(), core::kinematics::jump_which_partitions(), protocols::hybridization::HybridizeFoldtreeDynamic::jumps_and_cuts_from_foldtree(), protocols::forge::methods::jumps_and_cuts_from_pose(), protocols::stepwise::modeler::look_for_unique_jump_to_moving_res(), core::optimization::symmetry::SymAtomTreeMinimizer::make_semisymmetric_movemap(), protocols::forge::methods::merge(), protocols::enzdes::EnzdesFlexibleRegion::minimize_region(), protocols::stepwise::modeler::rna::sugar::VirtualSugarSampler::minimize_sugar(), protocols::denovo_design::components::num_strands(), protocols::stepwise::modeler::output_movemap(), core::io::silent::ScoreJumpFileSilentStruct::print_conformation(), core::io::silent::BinarySilentStruct::print_conformation(), core::io::silent::RNA_SilentStruct::print_conformation(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::randomize_rnp_rigid_body_orientations(), core::conformation::symmetry::SymmetricConformation::recalculate_transforms(), protocols::cryst::DockLatticeMover::regenerate_lattice(), protocols::toolbox::pose_manipulation::remove_chainbreaks_according_to_jumps(), core::import_pose::remove_cutpoint_closed(), protocols::ligand_docking::LigandBaseProtocol::reorder_foldtree_around_mobile_regions(), core::pose::symmetry::sealed_symmetric_fold_tree(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::search_rigid_body_orientation(), protocols::pose_metric_calculators::SemiExplicitWaterUnsatisfiedPolarsCalculator::semiexpl_water_hbgeom_score(), protocols::moves::PyMOLMover::send_foldtree(), protocols::hydrate::set_task_and_movemap(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::setup_dock_into_density_mover(), protocols::docking::setup_dock_jump(), protocols::docking::setup_edges_for_partner(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_fold_tree_through_build_full_model_info(), protocols::rna::denovo::coarse::MultipleDomainMover::setup_jump_numbers_and_partner(), protocols::rna::denovo::movers::RNA_Minimizer::setup_movemap(), core::pose::toolbox::AtomLevelDomainMap::setup_movemap(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::setup_rna_protein_docking_mover(), core::conformation::symmetry::setup_symmetric_conformation(), core::kinematics::ShortestPathInFoldTree::ShortestPathInFoldTree(), protocols::fold_from_loops::movers::DisplayPoseLabelsMover::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree(), core::kinematics::simple_visualize_fold_tree_and_movemap(), core::kinematics::simple_visualize_fold_tree_and_movemap_bb_chi(), protocols::denovo_design::slide_jump(), protocols::denovo_design::symmetric_fold_tree(), core::conformation::symmetry::symmetrize_fold_tree(), core::conformation::symmetry::MirrorSymmetricConformation::synch_mirror_jumps_with_atomtree(), protocols::environment::CoMTrackerCM::update_tracking_residue(), core::kinematics::visualize_fold_tree(), and protocols::environment::claims::VirtResClaim::yield_elements().

FoldTree& core::kinematics::FoldTree::operator= ( FoldTree const &  src)
inline

operator=

Note
this version doesn't copy any of the derived data! will this be too slow? it will trigger re-calculating of everything every time we reject a move....

References edge_list_, and new_topology.

void core::kinematics::FoldTree::partition_by_jump ( Size const  jump_number,
FoldTree f1,
FoldTree f2 
) const

partition into two foldtrees by cutting at jump= jump_number

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Create two new foldtrees f1 and f2 by splitting myself at jump jump_number Uses the following routine to figure out which vertices should be in each tree.

Note
The N-terminal vertex of jump "jump_number" goes to tree f1

References add_edge(), and clear().

Referenced by protocols::ligand_docking::LigandDockProtocol::append_ligand_docking_scores(), protocols::protein_interface_design::movers::BackrubDDMover::apply(), protocols::protein_interface_design::movers::DesignMinimizeHbonds::apply(), core::select::residue_selector::JumpDownstreamSelector::apply(), core::select::residue_selector::JumpUpstreamSelector::apply(), protocols::simple_task_operations::RestrictToInterface::apply(), protocols::rna::denovo::coarse::CoarseRNA_LoopCloser::apply_after_jump_change(), protocols::simple_filters::EnergyPerResidueFilter::apply_helper(), core::scoring::sc::MolecularSurfaceCalculator::Calc(), protocols::docking::calc_Fnat(), protocols::docking::calc_Fnonnat(), protocols::docking::calc_Lrmsd(), protocols::docking::calc_P1rmsd(), protocols::docking::calc_P2rmsd(), protocols::geometry::centroids_by_jump(), protocols::geometry::centroids_by_jump_int(), protocols::matdes::InterfacePackingFilter::compute(), protocols::protein_interface_design::filters::AtomicContactCountFilter::compute(), protocols::matdes::OligomericAverageDegreeFilter::compute(), protocols::optimize_weights::IterativeOptEDriver::compute_rotamers_around_ligands(), protocols::simple_ddg::ddG::duplicate_waters_across_jump(), protocols::toolbox::rigid_body::figure_out_moving_partition_res(), protocols::ligand_docking::LigandBaseProtocol::find_interface_backbone(), protocols::ligand_docking::LigandBaseProtocol::find_interface_rsds(), core::select::util::find_jump_partners_within_CB_cutoff(), core::pose::symmetry::get_full_intracomponent_and_neighbor_subs(), protocols::docking::EllipsoidalRandomizationMover::get_interface_residues(), core::pose::symmetry::get_intracomponent_and_neighbor_subs(), protocols::ligand_docking::LigandBaseProtocol::get_ligand_id(), protocols::stepwise::modeler::get_partition_definition_by_jump(), core::pose::symmetry::get_symdof_subunits(), core::pose::symmetry::intracomponent_contact(), core::kinematics::jump_which_partitions(), core::pose::partition_pose_by_jump(), core::import_pose::remove_cutpoint_closed(), core::kinematics::residues_downstream_of_jump(), core::kinematics::residues_upstream_of_jump(), protocols::calc_taskop_movers::DesignRepackMover::setup_packer_and_movemap(), core::import_pose::update_fixed_domain_from_extra_minimize_jump_pairs(), and protocols::stepwise::modeler::rna::sugar::VirtualSugarSampler::virtualize_distal_partition().

void core::kinematics::FoldTree::partition_by_jump ( Size const  jump_number,
ObjexxFCL::FArray1D_bool &  partner1 
) const

partition the fold tree in two parts if the jump is disconnected.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

utility::vector1< bool > core::kinematics::FoldTree::partition_by_jump ( Size const  jump_nr) const

partition the fold tree in two parts if the jump is disconnected.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

when a jump edge is removed, the fold tree is separated into two parts. This fucntion is to find all residues connecting to the jump starting residue and flag them in the partner1(n_res) array as true. The residues on the other side are flagged as false. Useful to distinguish two docking partners when fold tree is properly set up.

void core::kinematics::FoldTree::partition_by_residue ( Size const  seqpos,
ObjexxFCL::FArray1D_bool &  partner1 
) const

partition the fold tree in two parts if a cut would be introduced between seqpos and seqpos+1

partition the fold tree in two parts if a cut would be introduced between seqpos and seqpos+1. Function is an analog to partition_by_jump() – its goal to find all residues connecting to the jump starting residue and flag them in the partner1(n_res) array as true. The residues on the other side are flagged as false. Useful to distinguish two docking partners when fold tree is properly set up.

References protocols::mean_field::max(), protocols::mean_field::min(), core::kinematics::Edge::start(), protocols::loops::start, core::kinematics::Edge::stop(), and protocols::loops::stop.

Referenced by protocols::rna::denovo::coarse::CoarseRNA_LoopCloser::apply(), protocols::stepwise::modeler::figure_out_moving_chain_break_res(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::figure_out_partition_definition(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::figure_out_partition_definition(), and protocols::stepwise::modeler::get_partition_definition().

utility::vector1< Size > core::kinematics::FoldTree::partition_coloring ( utility::vector1< Size > const &  jump_numbers) const

partition the fold tree into n parts based on specified jumps.

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

partition the fold tree into n parts based on specified jumps. Just uses partition_by_jump over and over again.

bool core::kinematics::FoldTree::possible_root ( Size const &  seqpos) const
inline
void core::kinematics::FoldTree::prepend_edge ( Edge const &  new_edge)

Prepend the edge <new_edge>. Useful alternative to add_edge for setting root.

Does not ensure proper folding order

void core::kinematics::FoldTree::put_jump_stubs_intra_residue ( )
bool core::kinematics::FoldTree::random_tree_from_jump_points ( Size const  nres_in,
Size const  num_jump_in,
ObjexxFCL::FArray2D< Size > const &  jump_point,
ObjexxFCL::FArray1D_float const &  cut_bias,
Size const  root_in = 1,
bool const  allow_jump_at_1_or_NRES = false 
)

Builds a FoldTree from a list of <jump_points> and random cut points based on some biased probability Returns bool about success.

Referenced by protocols::abinitio::LoopJumpFoldCst::add_rigidity_jumps(), protocols::jumping::MembraneJump::setup_fold_tree(), and protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_fold_tree_legacy().

bool core::kinematics::FoldTree::random_tree_from_jump_points ( Size const  nres_in,
Size const  num_jump_in,
ObjexxFCL::FArray2D< Size > const &  jump_point,
std::vector< Size > const &  obligate_cut_points,
ObjexxFCL::FArray1D_float const &  cut_bias,
Size const  root_in = 1,
bool const  allow_jump_at_1_or_NRES = false 
)

Builds a FoldTree from a list of <jump_points> and random cut points based on some biased probability and any user-defined obligate cutpoints Returns bool about success.

void core::kinematics::FoldTree::reassign_atoms_for_intra_residue_stubs ( )

this reorganizes upstream/downstream atoms of jumps that have flag keep_stub_in_resiue = true such that stubs are N-CA-C

References core::kinematics::Edge::is_jump(), core::kinematics::Edge::start(), protocols::loops::start, core::kinematics::Edge::stop(), core::chemical::orbitals::strip_whitespace(), and TR().

Referenced by protocols::stepwise::modeler::fix_up_jump_atoms(), and core::import_pose::get_tree().

void core::kinematics::FoldTree::renumber_jumps ( )

Renumbers the jump edges in the FoldTree How?

Assign new numbers to the jumps. after we delete a jump, we may want to re-number the others. note of course this will invalidate the jump_transform array of any pose with this fold_tree, so be sure to call jumps_from_positions or something

References TR().

Referenced by protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), and protocols::docking::setup_foldtree().

void core::kinematics::FoldTree::renumber_jumps_ordered ( )

Renumbers the jump edges in the FoldTree while.

Referenced by core::conformation::symmetry::get_asymm_unit_fold_tree().

bool core::kinematics::FoldTree::reorder ( Size const  start_residue,
bool const  verbose_if_fail = true 
)

Reorders the FoldTree to start at residue <start_residue>

Reorder the tree so that start_residue is the new root. returns false if no re-ordering allowed! To reorder successfully, start_residue needs to be a vertex in the original fold tree.

References core::kinematics::Edge::is_polymer(), protocols::mean_field::max(), protocols::mean_field::min(), core::kinematics::Edge::start(), core::kinematics::Edge::start_atom(), core::kinematics::Edge::stop(), core::kinematics::Edge::stop_atom(), and TR().

Referenced by protocols::stepwise::legacy::modeler::rna::StepWiseRNA_PoseSetup::add_aa_virt_rsd_as_root(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::add_aa_virt_rsd_as_root(), protocols::fold_from_loops::utils::Nub::add_binders(), protocols::membrane::symmetry::SymmetricAddMembraneMover::add_membrane_virtual(), protocols::cryst::MakeLatticeMover::add_monomers_to_lattice(), protocols::cryst::MakeLayerMover::add_monomers_to_layer(), protocols::abinitio::LoopJumpFoldCst::add_rigidity_jumps(), protocols::denovo_design::components::add_to_pose(), protocols::rna::movers::ErraserMinimizerMover::add_virtual_res(), protocols::toolbox::sample_around::add_virtual_res(), core::pose::addVirtualResAsRoot(), protocols::topology_broker::MembraneTopologyClaimer::addVirtualResAsRootMembrane(), protocols::simple_moves::SwitchChainOrderMover::apply(), protocols::protein_interface_design::movers::SetAtomTree::apply(), protocols::simple_moves::SetTorsion::apply(), protocols::rna::movers::RNAIdealizeMover::apply(), protocols::membrane::OptimizeProteinEmbeddingMover::apply(), protocols::membrane::MembranePositionFromTopologyMover::apply(), protocols::relax::membrane::MPRangeRelaxMover::apply(), protocols::membrane::OptimizeMembranePositionMover::apply(), protocols::membrane::AddMPLigandMover::apply(), protocols::idealize::IdealizeMover::apply(), protocols::rna::movers::RNAThreadAndMinimizeMover::apply(), protocols::membrane::FlipMover::apply(), protocols::membrane::TransformIntoMembraneMover::apply(), protocols::docking::membrane::MPDockingMover::apply(), protocols::forge::remodel::RemodelMover::apply(), protocols::loops::apply_sequence_mapping(), protocols::stepwise::monte_carlo::mover::ensure_appropriate_foldtree_for_move(), protocols::docking::membrane::QuickRelaxPartnersSeparately::finalize_setup(), protocols::relax::RangeRelaxMover::finalize_setup(), protocols::splice::SpliceManager::fold_tree(), protocols::loops::fold_tree_from_loops(), core::conformation::symmetry::get_component_contiguous_foldtree(), protocols::splice::RBOutMover::get_disulf_jump(), core::import_pose::RNA_HelixAssembler::get_rid_of_capping_base_pairs(), protocols::rna::denovo::get_rnp_docking_fold_tree(), protocols::protein_interface_design::MinimizeInterface(), protocols::denovo_design::components::modify_ft_for_residue_insertion(), protocols::forge::build::SegmentRebuild::modify_impl(), core::kinematics::operator>>(), protocols::membrane::reorder_membrane_foldtree(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), core::pose::reroot(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::reroot_fold_tree(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::reroot_fold_tree(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::reroot_fold_tree_simple(), protocols::rbsegment_relax::restore_pose_from_rbsegs(), protocols::splice::RBInMover::set_fold_tree(), protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_fold_tree_through_build_full_model_info(), protocols::docking::setup_foldtree(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_jumps(), protocols::relax::RepeatProteinRelax::setup_repeat_pose(), protocols::protein_interface_design::star_fold_tree(), and protocols::hybridization::MRMover::trim_target_pose().

void core::kinematics::FoldTree::replace_edge ( Edge const &  old_edge,
Edge const &  replacement_edge 
)

Find and replace an Edge in the FoldTree.

This function is used primarily to restore CHEMICAL Edges that have been replaced by JUMPs after other FoldTree manipulations.

Author
Labonte JWLab.nosp@m.onte.nosp@m.@jhu..nosp@m.edu

References TR().

Referenced by protocols::docking::setup_foldtree().

bool core::kinematics::FoldTree::residue_is_in_fold_tree ( Size  seqpos) const

Check if the seqpos is covered by an edge in the FoldTree (Mainly useful for FoldTrees as they are being built.)

If true, seqpos is either the root or get_residue_edge() will return an edge.

Size core::kinematics::FoldTree::root ( ) const
inline

Returns the root vertex position of the FoldTree.

example(s): ft.empty() See also: FoldTree FoldTree.is_root FoldTree.clear FoldTree.simple_tree

References edge_list_, and empty().

Referenced by protocols::stepwise::legacy::modeler::rna::StepWiseRNA_PoseSetup::add_aa_virt_rsd_as_root(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::add_aa_virt_rsd_as_root(), core::scoring::constraints::add_coordinate_constraints(), protocols::stepwise::modeler::align::StepWisePoseAligner::add_coordinate_constraints_from_map(), protocols::relax::add_coordinate_constraints_to_pose(), protocols::loops::add_coordinate_constraints_to_pose(), protocols::chemically_conjugated_docking::add_extra_bodies(), protocols::stepwise::legacy::modeler::rna::StepWiseRNA_PoseSetup::add_terminal_res_repulsion(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::add_terminal_res_repulsion(), protocols::rna::movers::ErraserMinimizerMover::add_virtual_res(), protocols::toolbox::sample_around::add_virtual_res(), core::pose::addVirtualResAsRoot(), protocols::topology_broker::MembraneTopologyClaimer::addVirtualResAsRootMembrane(), protocols::stepwise::modeler::align::align_pose_and_add_rmsd_constraints(), protocols::fold_from_loops::utils::append_pose_to_pose_keep_fold_tree(), protocols::simple_moves::VirtualRootMover::apply(), protocols::constraint_generator::CoordinateConstraintGenerator::apply(), protocols::rna::movers::RNAIdealizeMover::apply(), protocols::comparative_modeling::LoopRelaxMover::apply(), protocols::rna::movers::RNAThreadAndMinimizeMover::apply(), protocols::forge::remodel::RemodelLoopMover::apply(), protocols::forge::components::VarLengthBuild::apply(), protocols::loophash::BackboneSegment::apply_to_pose(), core::kinematics::ShortestPathInFoldTree::build_jumpres_distmap(), core::conformation::build_residue_tree(), core::conformation::build_tree(), protocols::stepwise::legacy::modeler::protein::StepWiseProteinPoseSetup::check_superimpose_res(), protocols::electron_density::dockPoseIntoMap(), protocols::stepwise::monte_carlo::mover::ensure_appropriate_foldtree_for_move(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::figure_out_best_working_alignment(), protocols::residue_optimization::MetapatchEnumeration::final_sampling(), protocols::denovo_design::find_jump_rec(), core::conformation::symmetry::fold_tree_entry_point(), protocols::forge::methods::fold_tree_from_loops(), protocols::loops::fold_tree_from_loops(), protocols::topology_broker::MembraneTopologyClaimer::generate_claims(), protocols::relax::AtomCoordinateCstMover::generate_constraints(), core::conformation::get_anchor_atomno(), core::kinematics::get_foldtree_which_partitions(), protocols::stepwise::modeler::align::StepWisePoseAligner::get_rmsd_res_and_superimpose_res_in_pose(), core::conformation::get_root_residue_root_atomno(), protocols::stepwise::modeler::align::StepWisePoseAligner::get_root_triad_atom_id_map(), protocols::loophash::get_rt_over_leap(), protocols::loophash::get_rt_over_leap_fast(), protocols::stepwise::modeler::get_unique_connection_res(), protocols::residue_optimization::MetapatchEnumeration::initial_sampling(), protocols::stepwise::modeler::rna::o2prime::O2PrimePacker::initialize_o2prime_green_packer(), protocols::stepwise::modeler::rna::phosphate::MultiPhosphateSampler::initialize_phosphate_move_list(), insert_fold_tree_by_jump(), is_equivalent(), protocols::forge::methods::linear_chainbreak(), protocols::forge::methods::merge(), protocols::forge::build::SegmentRebuild::modify_impl(), protocols::forge::build::SegmentInsert::modify_impl(), protocols::topology_broker::TMHTopologySamplerClaimer::output_membrane_vector(), protocols::forge::methods::overlap_chainbreak(), protocols::topology_broker::TMHTopologySamplerClaimer::pre_process(), protocols::constraint_generator::CoordinateConstraintGenerator::prepare_constraint_target_pose(), protocols::forge::methods::quadratic_chainbreak(), protocols::forge::methods::replace(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::reroot_fold_tree(), protocols::stepwise::modeler::revise_root_and_moving_res_list(), core::pose::symmetry::sealed_symmetric_fold_tree(), protocols::relax::RelaxProtocolBase::set_up_constraints(), protocols::rbsegment_relax::setup_disconnected(), protocols::rbsegment_relax::setup_pose_rbsegs_keep_loops(), protocols::stepwise::modeler::rna::checker::RNA_VDW_BinChecker::setup_using_user_input_VDW_pose(), protocols::stepwise::modeler::slice(), protocols::denovo_design::slide_jump(), protocols::fldsgn::CircularPermutation::split_chains(), protocols::denovo_design::symmetric_fold_tree(), core::conformation::symmetry::symmetrize_fold_tree(), protocols::hybridization::MRMover::trim_target_pose(), and protocols::environment::CoMTrackerCM::update_tracking_residue().

void core::kinematics::FoldTree::set_jump_atoms ( Size const  jump_number,
std::string const &  upstream_atom,
std::string const &  downstream_atom,
bool  bKeepStubInResidue = false 
)

define the specific atoms that should be connected by this jump

This information can then be used in setting up the AtomTree from the FoldTree. Data is stored in the Edge corresponding to this Jump. If not specified, residue-specific defaults will be used.

Set connection atoms for a jump. This is not used by the foldtree, only to communicate to the AtomTree during construction of an atomtree from a foldtree.

References core::kinematics::Edge::downstream_atom(), core::kinematics::Edge::keep_stub_in_residue(), and core::kinematics::Edge::upstream_atom().

Referenced by protocols::stepwise::monte_carlo::mover::AddMover::append_residue(), protocols::frag_picker::nonlocal::NonlocalFrags::apply(), protocols::topology_broker::TMHTopologySamplerClaimer::build_fold_tree(), core::import_pose::RNA_HelixAssembler::build_init_pose(), core::pose::rna::figure_out_reasonable_rna_fold_tree(), core::pose::rna::fill_in_default_jump_atoms(), protocols::stepwise::modeler::fix_protein_jump_atom(), core::conformation::symmetry::get_component_contiguous_foldtree(), core::import_pose::RNA_HelixAssembler::get_rid_of_capping_base_pairs(), core::import_pose::get_tree(), core::import_pose::make_coarse_pose(), protocols::protein_interface_design::movers::PlaceStubMover::place_stub(), protocols::recces::pose_setup_from_file(), protocols::stepwise::monte_carlo::mover::AddMover::prepend_residue(), core::import_pose::put_in_cutpoint(), protocols::environment::Environment::remove_nonpermenant_features(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::setup_fold_tree(), and protocols::magnesium::update_jump_atoms_for_mg_bound_water().

void core::kinematics::FoldTree::set_jump_atoms ( Size const  jump_number,
core::Size  res1,
std::string const &  atom1,
core::Size  res2,
std::string const &  atom2,
bool  bKeepStubInResidue = false 
)
void core::kinematics::FoldTree::setup_edge_counts ( ) const
private

update edge counts info

  • edge_count(i): delete the edge (i-1,i), how many residues are in the component of the graph containing i-1?
  • jump_edge_count(i): delete jump_number i. How many residues are in the component of the graph containing the jump point on the N-terminal side of the jump.
Note
edge_count(cutpoint+1) doesn't really make sense currently set to 0 but routines should avoid looking at this value (see eg refold_reorder(...) )
Not checked out for chemical links

References protocols::mean_field::max(), protocols::mean_field::min(), protocols::loops::start, and protocols::loops::stop.

void core::kinematics::FoldTree::show ( std::ostream &  out) const

Displays the FoldTree information.

example(s): ft.show() See Also: Pose

References core::chemical::element::I.

Referenced by protocols::membrane::AddMembraneMover::add_membrane_virtual(), protocols::cyclic_peptide::PeptideStubMover::apply(), protocols::simple_moves::SetTorsion::apply(), protocols::membrane::SetMembranePositionMover::apply(), protocols::membrane::MPMutateRelaxMover::apply(), protocols::membrane::OptimizeProteinEmbeddingMover::apply(), protocols::membrane::MembranePositionFromTopologyMover::apply(), protocols::docking::membrane::QuickRelaxPartnersSeparately::apply(), protocols::docking::membrane::MPFindInterfaceMover::apply(), protocols::relax::membrane::MPRangeRelaxMover::apply(), protocols::membrane::OptimizeMembranePositionMover::apply(), protocols::membrane::AddMPLigandMover::apply(), protocols::membrane::MPQuickRelaxMover::apply(), protocols::relax::RangeRelaxMover::apply(), protocols::docking::membrane::MPDockingSetupMover::apply(), protocols::membrane::FlipMover::apply(), protocols::membrane::TiltMover::apply(), protocols::membrane::SpinAroundPartnerMover::apply(), protocols::membrane::TransformIntoMembraneMover::apply(), protocols::membrane::TranslationMover::apply(), protocols::docking::membrane::MPDockingMover::apply(), protocols::membrane::AddMembraneMover::apply(), protocols::membrane::RotationMover::apply(), protocols::membrane::TranslationRotationMover::apply(), protocols::abinitio::FragmentSampler::check_loops(), protocols::docking::membrane::QuickRelaxPartnersSeparately::finalize_setup(), protocols::relax::RangeRelaxMover::finalize_setup(), protocols::topology_broker::MembraneTopologyClaimer::generate_claims(), and protocols::simple_filters::PoseInfoFilter::report().

void core::kinematics::FoldTree::simple_tree ( Size const  nres_in)
int core::kinematics::FoldTree::size ( ) const
inline
void core::kinematics::FoldTree::slide_cutpoint ( Size const  current_cut,
Size const  target_cut 
)

Slide a polymer cutpoint from one location to another.

Slide a cutpoint from one position to another.

References protocols::forge::methods::add_vertex(), protocols::make_rot_lib::PEPTIDE, and TR().

void core::kinematics::FoldTree::slide_jump ( Size const  jump_number,
Size const  new_res1,
Size const  new_res2 
)
void core::kinematics::FoldTree::split_existing_edge_at_residue ( Size const  resNo)
std::string core::kinematics::FoldTree::to_string ( ) const

easy output of string

easy output of string

Referenced by protocols::simple_moves::CopyDofMover::pose_string().

bool core::kinematics::FoldTree::tree_from_jumps_and_cuts ( Size const  nres_in,
Size const  num_jump_in,
ObjexxFCL::FArray2D< Size > const &  jump_point,
ObjexxFCL::FArray1D< Size > const &  cuts,
Size const  root_in = 1,
bool const  verbose = false 
)

Constructs a FoldTree from listed <jump point>=""> and <cuts> Returns bool about success.

Construct a new tree (self) from a set of jump points and cutpoints this assumes that we can make a tree, ie that the number of cuts is equal to the number of jumps.

Note
The root vertex of new tree is 1.

References protocols::make_rot_lib::PEPTIDE, protocols::loops::start, protocols::loops::stop, and TR().

Referenced by protocols::hybridization::FoldTreeHybridize::add_strand_pairing(), protocols::loops::apply_sequence_mapping(), protocols::topology_broker::TMHTopologySamplerClaimer::build_fold_tree(), core::conformation::symmetry::get_component_contiguous_foldtree(), core::import_pose::get_tree(), protocols::dna::make_base_pair_aware_fold_tree(), core::fragment::make_simple_fold_tree_from_jump_frame(), core::import_pose::remove_cutpoint_closed(), core::environment::FoldTreeSketch::render(), core::pose::symmetry::sealed_symmetric_fold_tree(), protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints(), protocols::nonlocal::StarTreeBuilder::set_up(), protocols::rbsegment_relax::setup_disconnected(), protocols::rna::movers::ErraserMinimizerMover::setup_fold_tree(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::setup_fold_tree(), protocols::star::StarAbinitio::setup_kinematics(), protocols::rbsegment_relax::setup_pose_rbsegs_keep_loops(), core::conformation::symmetry::symmetrize_fold_tree(), and protocols::hybridization::HybridizeFoldtreeDynamic::update().

void core::kinematics::FoldTree::update_cutpoints ( ) const
private

update cutpoints info in the fold tree

Internal routine for updating data that is derived from the edge list (which is the only primary data).

References protocols::mean_field::max(), and protocols::mean_field::min().

Referenced by check_topology().

void core::kinematics::FoldTree::update_edge_label ( Size const  start,
Size const  stop,
int const  old_label,
int const  new_label 
)

Changes the label of an edge in fold tree.

this is an internal function, used for testing if an edge is separating

References protocols::loops::start, protocols::loops::stop, and TR().

Referenced by protocols::docking::setup_dock_jump(), and protocols::docking::setup_foldtree().

void core::kinematics::FoldTree::update_edge_labels ( )
private

update edge labels based on whether edges are separating or not.

this routine assigns labels to the edges of a graph based on whether or not those edges are separating – ie whether they can be cut without disconnecting the graph. we know we have a tree when all the edges are separating

edge labels:

  • +N means that the edge corresponds to jump #N (=> uncuttable)
  • -2 means cuttable
  • -1 means separating == PEPTIDE
  • 0 means cut

we assume that the only possible change in edge labeling that we need to make is from a -2 to a -1 ie, the -1's are still correct also, there shouldn't be any 0's before this is called 0's are for communicating between this function and the logical function connected_graph(g)

References protocols::make_rot_lib::PEPTIDE, and TR().

void core::kinematics::FoldTree::update_jump_edge ( ) const
private

update the index of jump edges in the edge list

fills jump_edge routines that use jump_edge should call check_order to ensure that its up to date

Note
that this is sensitive to the order of the tree so it's updated in check_order()

Internal routine for updating data that is derived from the edge list (which is the only primary data).

Referenced by check_order().

void core::kinematics::FoldTree::update_jump_points ( ) const
private

update jump residues list

Internal routine for updating data that is derived from the edge list (which is the only primary data). fills is_jump_point, jump_point

References protocols::mean_field::max(), and protocols::mean_field::min().

Referenced by check_topology().

void core::kinematics::FoldTree::update_nres ( ) const
private

update total number residues in the fold tree

Internal routine for updating data that is derived from the edge list (which is the only primary data).

References protocols::mean_field::max().

Referenced by check_topology().

void core::kinematics::FoldTree::update_num_jump ( ) const
private

update number of jumps in the fold tree

Internal routine for updating data that is derived from the edge list (which is the only primary data).

References protocols::mean_field::max(), and TR().

Referenced by check_topology().

std::string core::kinematics::FoldTree::upstream_atom ( Size const  jump_number) const

the jump atom on the staring side

Get the upstream connection resid (connection atom # at the "start" vertex) If it hasn't been set return 0. Also see set_jump_atoms, which sets this data.

References core::kinematics::Edge::has_atom_info(), and core::kinematics::Edge::upstream_atom().

Referenced by protocols::stepwise::legacy::modeler::rna::output_fold_tree_info(), and protocols::rna::denovo::movers::RNA_Minimizer::setup_movemap().

Size core::kinematics::FoldTree::upstream_jump_residue ( Size const  jump_number) const

the starting residue for this jump

See the documentation of Pose::num_chains() for details about chain numbers, chain letters and jumps.

Get the sequence position of the upstream vertex of the jump indicated by the jump_number argument. Upstream means that if we traverse the tree starting at the root then we hit that vertex first.

return 0 if failed

Referenced by protocols::abinitio::MembraneAbinitio::add_spanning_region(), core::select::jump_selector::InterchainJumpSelector::apply(), protocols::indel::IndelOptimizationMover::apply(), protocols::jumping::JumpSample::apply_to(), protocols::idealize::basic_idealize(), core::import_pose::libraries::ChunkSet::check_fold_tree_OK(), protocols::simple_filters::InterfaceHbondsFilter::compute_hbonds(), protocols::enzdes::EnzdesBaseProtocol::create_enzdes_movemap(), protocols::stepwise::monte_carlo::mover::ensure_appropriate_foldtree_for_move(), protocols::toolbox::rigid_body::figure_out_moving_partition_res(), protocols::stepwise::modeler::working_parameters::figure_out_rebuild_bulge_mode(), protocols::toolbox::rigid_body::figure_out_reference_res_for_jump(), core::pose::rna::fill_in_default_jump_atoms(), protocols::docking::membrane::QuickRelaxPartnersSeparately::finalize_setup(), protocols::stepwise::modeler::find_jump_number_at_suite(), core::pose::symmetry::find_symmetric_basejump_anchor(), core::conformation::symmetry::fold_tree_entry_point(), core::environment::FoldTreeSketch::FoldTreeSketch(), protocols::loop_grower::SheetSampler::generate_jump_frags(), protocols::jumping::JumpSample::generate_jump_frags(), protocols::jumping::JumpSample::generate_jump_frames(), protocols::stepwise::modeler::rna::get_anchor_res(), core::import_pose::get_anchor_rsd(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_docking_split_move_elements(), protocols::stepwise::monte_carlo::mover::StepWiseMoveSelector::get_intramolecular_split_move_elements(), protocols::stepwise::modeler::get_jump_partners_from_pose(), core::pose::rna::get_rigid_body_jumps(), core::scoring::motif::Xfrag::insert(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::insert_base_pair_jumps(), protocols::membrane::is_membrane_fixed(), protocols::hybridization::HybridizeFoldtreeDynamic::jumps_and_cuts_from_foldtree(), protocols::forge::methods::jumps_and_cuts_from_pose(), protocols::stepwise::modeler::rna::sugar::look_for_jumps_to_next(), protocols::stepwise::modeler::rna::sugar::look_for_jumps_to_previous(), protocols::stepwise::modeler::look_for_unique_jump_to_moving_res(), core::optimization::symmetry::SymAtomTreeMinimizer::make_asymmetric_movemap(), core::pose::symmetry::make_symmetric_movemap(), protocols::stepwise::modeler::rna::sugar::VirtualSugarSampler::minimize_sugar(), protocols::rna::movers::ErraserMinimizerMover::movemap_setup(), protocols::stepwise::modeler::output_movemap(), core::import_pose::put_in_cutpoint(), core::import_pose::RNA_JumpMover::random_jump_change(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::randomize_rnp_rigid_body_orientations(), core::conformation::symmetry::SymmetricConformation::recalculate_transforms(), core::import_pose::remove_cutpoint_closed(), protocols::simple_ddg::AlaScan::report(), core::kinematics::residues_upstream_of_jump(), core::pose::symmetry::sealed_symmetric_fold_tree(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::search_rigid_body_orientation(), protocols::rna::denovo::movers::RNA_HelixMover::set_pose(), protocols::analysis::InterfaceAnalyzerMover::set_pose_info(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::setup_dock_into_density_mover(), protocols::stepwise::legacy::modeler::rna::StepWiseWorkingParametersSetup::setup_fold_tree(), protocols::rna::denovo::coarse::MultipleDomainMover::setup_jump_numbers_and_partner(), protocols::rna::denovo::RNA_DeNovoPoseInitializer::setup_jumps(), protocols::rna::denovo::movers::RNA_Minimizer::setup_movemap(), protocols::rna::denovo::movers::RNA_DeNovoMasterMover::setup_rna_protein_docking_mover(), protocols::stepwise::modeler::slice(), core::pose::swap_transform(), core::conformation::symmetry::symmetrize_fold_tree(), protocols::rna::denovo::coarse::MultipleDomainMover::try_to_slide_into_contact(), protocols::magnesium::update_jump_atoms_for_mg_bound_water(), protocols::environment::CoMTrackerCM::update_tracking_residue(), core::kinematics::visualize_fold_tree(), and protocols::environment::claims::VirtResClaim::yield_elements().

Friends And Related Function Documentation

bool operator!= ( FoldTree const &  a,
FoldTree const &  b 
)
friend

Not equal to operator.

std::ostream& operator<< ( std::ostream &  os,
FoldTree const &  t 
)
friend

output operator

Foldtree output to stream

bool operator== ( FoldTree const &  a,
FoldTree const &  b 
)
friend

equal to operator

Checks that edges are in the same order and are equal That is, the order of the edges in the edge list is important to equality here

std::istream& operator>> ( std::istream &  is,
FoldTree t 
)
friend

input operator

Foldtree input from stream

Member Data Documentation

utility::vector1<Size> core::kinematics::FoldTree::cutpoint_
mutableprivate

cutpoint number to cutpoint residue number, dimesioned as num_cutpoint_.

Referenced by cutpoint(), cutpoint_map(), and is_cutpoint().

utility::vector1<Size> core::kinematics::FoldTree::cutpoint_map_
mutableprivate

residue number of cutpoint number, 0 if it is not a cutpoint. dimensioned as nres_.

Referenced by cutpoint_map(), and is_cutpoint().

utility::vector1<Size> core::kinematics::FoldTree::edge_count
mutableprivate

dimensioned as nres_, see setup_edge_counts for more info

EdgeList core::kinematics::FoldTree::edge_list_
private
Note
vector for fast traversal, but re-ordering, deleting are slow.

Referenced by begin(), clear(), empty(), end(), is_equivalent(), is_root(), operator=(), core::kinematics::operator==(), core::kinematics::operator>>(), root(), and size().

boost::hash<std::string> core::kinematics::FoldTree::hasher
private

computes fixed-size identifier for a string input

ObjexxFCL::FArray1D_bool core::kinematics::FoldTree::is_cutpoint_
mutableprivate

whether a residue is a cutpoint, dimensioned as nres_

Referenced by cutpoint_map(), and is_cutpoint().

utility::vector1<bool> core::kinematics::FoldTree::is_jump_point_
mutableprivate

whehter a residue is a jump_point, dimensioned as nres_

Referenced by is_jump_point().

utility::vector1<Size> core::kinematics::FoldTree::jump_edge_
mutableprivate

jump number to edge index number in the edge_list_, dimensioned as num_jump_.

utility::vector1<Size> core::kinematics::FoldTree::jump_edge_count
mutableprivate

dimensioned as num_jump, see setup_edge_counts for more info

utility::vector1< std::pair< Size, Size > > core::kinematics::FoldTree::jump_point_
mutableprivate

jump number to jump residue number. dimensioned as (2,num_jump_)

ObjexxFCL::FArray1D_bool core::kinematics::FoldTree::linked_
mutableprivate

Used as scratch space by a couple of functions.

Size core::kinematics::FoldTree::min_edge_count
mutableprivate

the minimum number in edge_count and jump_edge_count.

bool core::kinematics::FoldTree::new_order
mutableprivate

edges in the edge_list_ have been reordered.

Referenced by check_order(), and check_topology().

bool core::kinematics::FoldTree::new_topology
mutableprivate

edges in the edge_list_ have been changed.

Referenced by check_topology(), clear(), operator=(), and core::kinematics::operator>>().

Size core::kinematics::FoldTree::nres_
mutableprivate

just the largest vertex in edge_list_

Referenced by is_cutpoint(), and nres().

Size core::kinematics::FoldTree::num_cutpoint_
mutableprivate

number of cutpoints in the fold tree.

Note
number_cutpoint_ == num_jump_ (if a connected tree)

Referenced by num_cutpoint().

Size core::kinematics::FoldTree::num_jump_
mutableprivate

number of jump edges (edges in edge_list_ with label>0)

Referenced by num_jump().

ObjexxFCL::FArray1D_bool core::kinematics::FoldTree::seen_
mutableprivate

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