Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
core::conformation::Conformation Class Reference

A container of Residues and the kinematics to manage them. More...

#include <Conformation.hh>

Inheritance diagram for core::conformation::Conformation:
Inheritance graph
[legend]
Collaboration diagram for core::conformation::Conformation:
Collaboration graph
[legend]

Public Types

typedef kinematics::Jump Jump
 
typedef kinematics::FoldTree FoldTree
 
typedef kinematics::FoldTreeOP FoldTreeOP
 
typedef kinematics::AtomTree AtomTree
 
typedef kinematics::AtomTreeOP AtomTreeOP
 
typedef id::AtomID AtomID
 
typedef id::AtomID_Mask AtomID_Mask
 
typedef id::DOF_ID DOF_ID
 
typedef id::TorsionID TorsionID
 
typedef kinematics::DomainMap DomainMap
 
typedef
core::conformation::signals::ConnectionEvent 
ConnectionEvent
 
typedef
core::conformation::signals::GeneralEvent 
GeneralEvent
 
typedef
core::conformation::signals::IdentityEvent 
IdentityEvent
 
typedef
core::conformation::signals::LengthEvent 
LengthEvent
 
typedef
core::conformation::signals::XYZEvent 
XYZEvent
 
typedef std::map< id::AtomID,
Vector
FragXYZ
 
typedef std::map< id::StubID,
kinematics::RT
FragRT
 

Public Member Functions

 Conformation ()
 HIGHLY HIGHLY ILLEGAL ACCESS GRANTED TO CONFORMATION DATA. This function will be removed very very shortly. More...
 
virtual ~Conformation ()
 default destructor More...
 
 Conformation (Conformation const &src)
 copy constructor More...
 
virtual Conformationoperator= (Conformation const &src)
 operator More...
 
virtual ConformationOP clone () const
 clone the conformation More...
 
virtual bool same_type_as_me (Conformation const &other, bool recurse) const
 
bool sequence_matches (Conformation const &other) const
 do the names of all residues in this and src match? More...
 
Size size () const
 Returns the number of residues in the Conformation. More...
 
bool empty () const
 Returns true if this conformation does not have any residues. More...
 
Size chain_end (Size const chain) const
 Returns the position number of the last residue in <chain> More...
 
Size chain_begin (Size const chain) const
 Returns the position number of the first residue in <chain> More...
 
Size num_chains () const
 Returns the number of chains. More...
 
char secstruct (Size const seqpos) const
 Returns the secondary structure the position <seqpos> More...
 
virtual void set_secstruct (Size const seqpos, char const setting)
 Sets the secondary structure of the position <seqpos> to <setting> More...
 
virtual FoldTree const & fold_tree () const
 Returns the conformation's FoldTree. More...
 
AtomTree const & atom_tree () const
 Returns the conformation's AtomTree. More...
 
virtual void fold_tree (FoldTree const &fold_tree_in)
 Sets the FoldTree to <fold_tree_in> More...
 
utility::vector1< Size > const & chain_endings () const
 Returns the list of chain endings. More...
 
void chain_endings (utility::vector1< Size > const &endings)
 Sets the list of chain endings. More...
 
void insert_chain_ending (Size const seqpos)
 Marks <seqpos> as the end of a new chain. More...
 
void delete_chain_ending (Size const seqpos)
 Deletes <seqpos> from the list of chain endings. More...
 
void reset_chain_endings ()
 Resets chain data so that the Conformation is marked as a single chain. More...
 
void chains_from_termini ()
 Rederive the chains from the termini/polymer status. More...
 
chemical::AA const & aa (Size const seqpos) const
 Returns the AA enum for position <seqpos> More...
 
Residue const & residue (Size const seqpos) const
 access one of the residues; this access is inlined, since otherwise it shows up in the profiler. This will call non-inlined refold methods if necessary. More...
 
chemical::ResidueType const & residue_type (Size const seqpos) const
 access one of the residue's types – avoids coord/torsion update More...
 
virtual void append_residue_by_jump (conformation::Residue const &new_rsd, Size const anchor_residue, std::string const &anchor_atom="", std::string const &root_atom="", bool const start_new_chain=false)
 Append a new residue by a jump. More...
 
void insert_residue_by_jump (Residue const &new_rsd_in, Size const seqpos, Size anchor_pos, std::string const &anchor_atom="", std::string const &root_atom="", bool new_chain=false)
 Insert a new residue by jump. If new_chain is "true", then seqpos must be the last residue of one chain (i.e. residue(seqpos).chain() != residue(seqpos+1).chain() ) More...
 
void append_residue_by_bond (conformation::Residue const &new_rsd, bool const build_ideal_geometry=false, int connection_index=0, Size anchor_residue=0, int anchor_connection_index=0, bool const start_new_chain=false, bool const lookup_bond_length=false)
 Append a new residue by a bond. More...
 
void append_polymer_residue_after_seqpos (Residue const &new_rsd, Size const seqpos, bool const build_ideal_geometry)
 glues to seqpos and perhaps also seqpos+1 More...
 
void safely_append_polymer_residue_after_seqpos (Residue const &new_rsd, Size const seqpos, bool const build_ideal_geometry)
 glues to seqpos and perhaps also seqpos+1, removes termini variants if necessary More...
 
void prepend_polymer_residue_before_seqpos (Residue const &new_rsd, Size const seqpos, bool const build_ideal_geometry)
 glues to seqpos and perhaps also seqpos-1 More...
 
void safely_prepend_polymer_residue_before_seqpos (Residue const &new_rsd, Size const seqpos, bool const build_ideal_geometry)
 glues to seqpos and perhaps also seqpos-1, removes termini variants if necessary More...
 
virtual void replace_residue (Size const seqpos, Residue const &new_rsd, bool const orient_backbone)
 replace residue More...
 
virtual void replace_residue (Size const seqpos, Residue const &new_rsd, utility::vector1< std::pair< std::string, std::string > > const &atom_pairs)
 funtion to replace a residue based on superposition on More...
 
void delete_polymer_residue (Size const seqpos)
 Delete polymer residue at the given sequence position. More...
 
void delete_residue_slow (Size const seqpos)
 Slow method that relies on FoldTree::delete_seqpos, rebuilds atomtree, can handle jumps/root residue. More...
 
void delete_residue_range_slow (Size const range_begin, Size const range_end)
 Slow method that relies on FoldTree::delete_seqpos, rebuilds atomtree, can handle jumps/root residue. More...
 
void declare_chemical_bond (Size const seqpos1, std::string const &atom_name1, Size const seqpos2, std::string const &atom_name2)
 Declare that a chemical bond exists between two residues. More...
 
virtual void insert_conformation_by_jump (Conformation const &conf, Size const insert_seqpos, Size const insert_jumppos, Size const anchor_pos, Size const anchor_jump_number=0, std::string const &anchor_atom="", std::string const &root_atom="")
 Insert one conformation into another. See FoldTree::insert_fold_tree_by_jump. More...
 
void copy_segment (Size const size, Conformation const &src, Size const begin, Size const src_begin)
 copy a stretch of coordinates/torsions from another Conformation More...
 
void rebuild_polymer_bond_dependent_atoms (Size const seqpos)
 Rebuild the atoms ( like HN(seqpos), OC(seqpos+1) ) that are dependent on the polymer bond between seqpos and seqpos+1. More...
 
void set_stub_transform (id::StubID const &stub_id1, id::StubID const &stub_id2, kinematics::RT const &target_rt)
 Set the transform between two stubs – only works if there's a jump between the two sets of stubatoms. More...
 
kinematics::RT get_stub_transform (id::StubID const &stub_id1, id::StubID const &stub_id2) const
 get the transform between two stubs More...
 
void set_jump_atom_stub_id (id::StubID const &id)
 
kinematics::Stub stub_from_id (id::StubID const &id) const
 
void rebuild_residue_connection_dependent_atoms (Size const seqpos, Size const connid)
 
ResidueCAPs const_residues () const
 Inefficient – constructs copy of residues_. More...
 
Real dof (DOF_ID const &id) const
 Returns the AtomTree degree of freedom (DOF) <id> More...
 
virtual void set_dof (DOF_ID const &id, Real const setting)
 Sets the AtomTree degree of freedom (DOF) <id> to <setting> More...
 
Real torsion (TorsionID const &id) const
 Returns the torsion angle <id> More...
 
virtual void set_torsion (TorsionID const &id, Real const setting)
 Sets the AtomTree DOF and the torsion in the corresponding Residue. More...
 
void insert_ideal_geometry_at_polymer_bond (Size const seqpos)
 
void insert_ideal_geometry_at_residue_connection (Size const pos1, Size const connid1)
 
virtual void set_torsion_angle (AtomID const &atom1, AtomID const &atom2, AtomID const &atom3, AtomID const &atom4, Real const setting)
 Sets the torsion angle defined by <atom[1-4]> to <setting> More...
 
virtual void set_bond_angle (AtomID const &atom1, AtomID const &atom2, AtomID const &atom3, Real const setting)
 Sets the bond angle defined by <atom[1-3]> to <setting> More...
 
virtual void set_bond_length (AtomID const &atom1, AtomID const &atom2, Real const setting)
 Sets the cond length between <atom1> and <atom2> to <setting> More...
 
void insert_fragment (id::StubID const &instub_id, FragRT const &outstub_transforms, FragXYZ const &frag_xyz)
 
Real torsion_angle (AtomID const &atom1, AtomID const &atom2, AtomID const &atom3, AtomID const &atom4) const
 Returns the torsion angle defined by <atom[1-4]> More...
 
Real bond_angle (AtomID const &atom1, AtomID const &atom2, AtomID const &atom3) const
 Returns the bond angle defined by <atom[1-3]> More...
 
Real bond_length (AtomID const &atom1, AtomID const &atom2) const
 Returns the bond length between <atom1> and <atom2> More...
 
const Jumpjump (int const jump_number) const
 Returns the Jump with jump number <jump_number> More...
 
virtual void set_jump (int const jump_number, Jump const &new_jump)
 Sets the jump <jump_number> to <new_jump> More...
 
virtual void set_jump_now (int const jump_number, Jump const &new_jump)
 Sets a jump and forces immediate calculation of affected XYZ coords. More...
 
const Jumpjump (AtomID const &id) const
 access a jump More...
 
virtual void set_jump (AtomID const &id, Jump const &new_jump)
 set a jump More...
 
void set_polymeric_connection (Size res_id_lower, Size res_id_upper)
 identify polymeric connections More...
 
void update_polymeric_connection (Size const lower_seqpos)
 Update the polymer connection status between lower_seqpos and lower_seqpos+1 based on chainID's and termini. More...
 
void detect_bonds ()
 
void detect_pseudobonds ()
 
virtual void detect_disulfides ()
 Detect existing disulfides from the protein structure. More...
 
void fix_disulfides (utility::vector1< std::pair< Size, Size > > disulf_bonds)
 Assigns disulfide bonds based on a pre-determined list. More...
 
kinematics::Stub upstream_jump_stub (int const jump_number) const
 The upstream and downstream Stubs are the coordinate frames between which this jump is transforming. More...
 
kinematics::Stub downstream_jump_stub (int const jump_number) const
 The upstream and downstream Stubs are the coordinate frames between which this jump is transforming. More...
 
PointPosition const & xyz (AtomID const &id) const
 access xyz coordinates of an atom More...
 
virtual void set_xyz (AtomID const &id, PointPosition const &position)
 
virtual void batch_set_xyz (utility::vector1< AtomID > const &id, utility::vector1< PointPosition > const &position)
 
virtual void batch_get_xyz (utility::vector1< AtomID > const &id, utility::vector1< PointPosition > &position) const
 
void update_actcoords ()
 
void update_actcoord (Size resid)
 
void update_orbital_coords (Residue &rsd) const
 
void update_orbital_coords (Size resid)
 
DOF_ID dof_id_from_torsion_id (TorsionID const &id) const
 
id::AtomID jump_atom_id (int const jump_number) const
 
bool get_torsion_angle_atom_ids (TorsionID const &tor_id, AtomID &id1, AtomID &id2, AtomID &id3, AtomID &id4) const
 get four atoms which defined this torsion More...
 
void update_domain_map (DomainMap &domain_map) const
 Generate a domain_map from the current dof/xyz moved data. More...
 
bool structure_moved () const
 has the structure moved since the last call to reset_move_data or reset_structure_moved More...
 
void reset_structure_moved () const
 reset the structure_moved_ bool More...
 
void reset_move_data ()
 forget all the structure modifications More...
 
void clear ()
 clear data More...
 
void debug_residue_torsions (bool verbose=false) const
 debugging More...
 
void show_residue_connections () const
 Show residue connections for debugging purposes. More...
 
void show_residue_connections (std::ostream &os) const
 Show residue connections for debugging purposes. More...
 
AtomID inter_residue_connection_partner (Size const seqpos, int const connection_index) const
 This returns the AtomID of the atom in the other residue to which the "connection_index"-th. More...
 
utility::vector1
< core::id::AtomID
bonded_neighbor_all_res (core::id::AtomID atomid, bool virt=false) const
 get all atoms bonded to another More...
 
void fill_missing_atoms (id::AtomID_Mask missing)
 
bool atom_is_backbone_norefold (Size const pos, Size const atomno) const
 
virtual utility::vector1< boolget_residue_mask () const
 returns a mask of residues to be used in scoring More...
 
virtual Real get_residue_weight (core::Size, core::Size) const
 returns a residue-pair weight More...
 
template<typename MemFn , typename Ptr >
utility::signals::Link attach_connection_obs (MemFn fn, Ptr ptr) const
 attach ConnectionEvent observer function More...
 
template<typename MemFn , typename Ptr >
bool detach_connection_obs (MemFn fn, Ptr ptr) const
 detach ConnectionEvent observer function More...
 
template<typename MemFn , typename Ptr >
utility::signals::Link attach_general_obs (MemFn fn, Ptr ptr) const
 attach GeneralEvent observer function More...
 
template<typename MemFn , typename Ptr >
bool detach_general_obs (MemFn fn, Ptr ptr) const
 detach GeneralEvent observer function More...
 
template<typename MemFn , typename Ptr >
utility::signals::Link attach_identity_obs (MemFn fn, Ptr ptr) const
 attach IdentityEvent observer function More...
 
template<typename MemFn , typename Ptr >
bool detach_identity_obs (MemFn fn, Ptr ptr) const
 detach IdentityEvent observer function More...
 
template<typename MemFn , typename Ptr >
utility::signals::Link attach_length_obs (MemFn fn, Ptr ptr) const
 attach LengthEvent observer function More...
 
template<typename MemFn , typename Ptr >
bool detach_length_obs (MemFn fn, Ptr ptr) const
 detach LengthEvent observer function More...
 
template<typename MemFn , typename Ptr >
utility::signals::Link attach_xyz_obs (MemFn fn, Ptr ptr) const
 attach XYZEvent observer function More...
 
template<typename MemFn , typename Ptr >
bool detach_xyz_obs (MemFn fn, Ptr ptr) const
 detach XYZEvent observer function More...
 
void clear_observers ()
 clear all observers More...
 
void receive_observers_from (Conformation const &src)
 fire a ConnectionEvent::TRANSFER to transfer observers from some source Conformation More...
 
void debug_pause (bool const flag) const
 wait for stdin after sending a GeneralEvent signal More...
 
bool debug_pause () const
 waiting for stdin after sending a GeneralEvent signal? More...
 
bool is_residue_typeset (std::string tag) const
 convenience test for residue_type_set ( based on two middle residue – to avoid hitting on ligands or pseudos ) More...
 
bool is_fullatom () const
 convenience test for residue_type_set ( based on two middle residue – to avoid hitting on ligands or pseudos ) More...
 
bool is_centroid () const
 convenience test for residue_type_set ( based on two middle residue – to avoid hitting on ligands or pseudos ) More...
 
void buffer_signals ()
 block signals from being sent and buffer them to be sent after unblocking More...
 
void block_signals ()
 block signals from being sent More...
 
void unblock_signals ()
 allow signals to be sent More...
 
bool buffering_signals () const
 are signals being blocked and buffered? More...
 
bool blocking_signals () const
 are signals being blocked? More...
 

Protected Attributes

ResidueOPs residues_
 container of Residues More...
 

Private Member Functions

Residue const & residue_ (Size const seqpos) const
 Returns a residue without triggering coordinate/torsion update Use with care. Useful inside torsion/coordinate setters where we want chemical info about a given residue but don't want to trigger the coordinate/torsion updates that go along with a call to residue(seqpos) More...
 
void update_sequence_numbering (Size const new_size, utility::vector1< Size > const &old2new)
 remap *_moved arrays, sequence numbering in the residues_ arrays, etc, after insertion or deletion of rsds More...
 
void rebuild_polymer_bond_dependent_atoms (Size const seqpos, int const upper_lower)
 rebuild atoms in residue seqpos dependent on either the lower (-1) or upper(1) polymer residue More...
 
void insert_polymer_residue (Residue const &new_rsd_in, Size const seqpos, bool const join_lower, bool const join_upper)
 
void append_residue (Residue const &new_rsd_in, bool const attach_by_jump, std::string const &root_atom, id::NamedAtomID anchor_id, bool const start_new_chain)
 Now a private method public interface: append_residue_by_bond or append_residue_by_jump. More...
 
void residues_replace (Size const seqpos, Residue const &new_rsd)
 wrap direct access to the Residues container More...
 
void residues_insert (Size const seqpos, Residue const &new_rsd, bool const use_lower_chain=false, bool const new_chain=false)
 
void residues_append (Residue const &new_rsd, bool const start_new_chain)
 
void residues_delete (Size const seqpos)
 
void setup_atom_tree ()
 (re-)builds the AtomTree using the FoldTree and the Residues More...
 
Real atom_tree_torsion (TorsionID const &tor_id) const
 access a torsion from the atom_tree More...
 
bool backbone_torsion_angle_atoms (TorsionID const &id, AtomID &id1, AtomID &id2, AtomID &id3, AtomID &id4) const
 get four backbone atoms which define this backbone torsion More...
 
void set_xyz_moved (AtomID const &id)
 notify of xyz-change More...
 
void set_xyz_moved (utility::vector1< AtomID > const &ids)
 notify of mutiple-xyz-change More...
 
void set_dof_moved (AtomID const &id)
 notify of dof-change More...
 
void set_dof_moved (DOF_ID const &id)
 notify of dof-change More...
 
void update_residue_coordinates () const
 Will (if necessary) copy the xyz coordinates from the AtomTree to the Residues being managed Always safe to call. Nothing will happen unless coords_need_updating_ is true. More...
 
void update_residue_coordinates (Size const seqpos, bool const fire_signal=true) const
 called by above More...
 
void rederive_chain_endings ()
 
void rederive_chain_ids ()
 
void update_residue_torsions () const
 Will (if necessary) copy the torsion angles (mainchain/chi) from the AtomTree to the Residues being managed Always safe to call. Nothing will happen unless torsions_need_updating_ is true. More...
 
void update_residue_torsions (Size const seqpos, bool const fire_signal=true) const
 called by above More...
 
void add_pseudobond (Size lr, Size lr_connid, Size ur, Size ur_connid, Size nbonds)
 
void in_place_copy (Conformation const &src)
 Optimizing the common case of assigning a conformation to another with the same sequence. More...
 
void pre_nresidue_change ()
 The Conformation must transfer lazily accumulated "moved" data from the AtomTree before changing the number of residues. More...
 
void notify_connection_obs (ConnectionEvent const &e) const
 notify ConnectionEvent observers More...
 
void notify_general_obs (GeneralEvent const &e) const
 notify GeneralEvent observers More...
 
void notify_identity_obs (IdentityEvent const &e, bool const fire_general=true) const
 notify IdentityEvent observers More...
 
void notify_length_obs (LengthEvent const &e, bool const fire_general=true) const
 notify LengthEvent observers More...
 
void notify_xyz_obs (XYZEvent const &e, bool const fire_general=true) const
 notify XYZEvent observers More...
 

Private Attributes

utility::vector1< Sizechain_endings_
 ResidueCOPs const_residues_; // mirrors residues_ allowing const access – this will be reinstated soon. More...
 
FoldTreeOP fold_tree_
 fold tree for the kinematics More...
 
AtomTreeOP atom_tree_
 atom tree for the kinematics More...
 
bool residue_coordinates_need_updating_
 do we need to update the coordinates in the Residues? More...
 
bool residue_torsions_need_updating_
 do we need to update the torsion angles in the Residues? More...
 
AtomID_Mask dof_moved_
 book-keeping array for energy evaluations More...
 
AtomID_Mask xyz_moved_
 book-keeping array for energy evaluations More...
 
bool structure_moved_
 has the structure moved since the last call to reset_move_data? More...
 
utility::vector1< char > secstruct_
 
utility::signals::BufferedSignalHub
< void, ConnectionEvent
connection_obs_hub_
 ConnectionEvent observers. More...
 
utility::signals::PausableSignalHub
< void, GeneralEvent
general_obs_hub_
 GeneralEvent observers. More...
 
utility::signals::BufferedSignalHub
< void, IdentityEvent
identity_obs_hub_
 IdentityEvent observers. More...
 
utility::signals::BufferedSignalHub
< void, LengthEvent
length_obs_hub_
 LengthEvent observers. More...
 
utility::signals::BufferedSignalHub
< void, XYZEvent
xyz_obs_hub_
 LengthEvent observers. More...
 

Detailed Description

A container of Residues and the kinematics to manage them.

Member Typedef Documentation

Constructor & Destructor Documentation

core::conformation::Conformation::Conformation ( )

HIGHLY HIGHLY ILLEGAL ACCESS GRANTED TO CONFORMATION DATA. This function will be removed very very shortly.

APL Removing accessor functions that voilate the data integrity guarantees of this class. Conformation forbids non-const access to its residues. Iterate from 1 to total_residue and request a Residue const & instead of iterating from res_begin to res_end. Returns a random-access iterator that points at the first residue in the Conformation. ResidueOPs::iterator res_begin() { return residues_.begin(); } Returns a random-access iterator that points just beyond the last residue in the Conformation. ResidueOPs::iterator res_end () { return residues_.end (); } constructor if you are using PyRosetta, you should NOT BE HERE!

References atom_tree_.

Referenced by clone().

core::conformation::Conformation::~Conformation ( )
virtual

default destructor

core::conformation::Conformation::Conformation ( Conformation const &  src)

Member Function Documentation

chemical::AA const& core::conformation::Conformation::aa ( Size const  seqpos) const
inline

Returns the AA enum for position <seqpos>

References residues_, and size().

Referenced by core::conformation::symmetry::SymmetricConformation::get_upstream_vrt().

void core::conformation::Conformation::add_pseudobond ( Size  lr,
Size  lr_connid,
Size  ur,
Size  ur_connid,
Size  nbonds 
)
private
void core::conformation::Conformation::append_polymer_residue_after_seqpos ( Residue const &  new_rsd,
Size const  seqpos,
bool const  build_ideal_geometry 
)
void core::conformation::Conformation::append_residue ( conformation::Residue const &  new_rsd_in,
bool const  attach_by_jump,
std::string const &  root_atom,
id::NamedAtomID  anchor_id,
bool const  start_new_chain 
)
private

Now a private method public interface: append_residue_by_bond or append_residue_by_jump.

add a residue into residues_ container, update its seqpos, chainid as well fold tree and atoms. private now – this is our internal routine with everything determined ahead of time root_atomno and anchor_id.atomno() may not be filled in yet Fires a LengthEvent::RESIDUE_APPEND signal.

References core::id::NamedAtomID::atom(), core::conformation::Residue::atom_index(), atom_tree_, const_residues(), fold_tree_, core::conformation::insert_residue_into_atom_tree(), core::conformation::Residue::is_ligand(), core::conformation::Residue::is_lower_terminus(), core::conformation::Residue::lower_connect_atom(), core::conformation::Residue::name(), notify_length_obs(), pre_nresidue_change(), core::conformation::signals::LengthEvent::RESIDUE_APPEND, residue_torsions_need_updating_, residues_, residues_append(), core::id::NamedAtomID::rsd(), setup_atom_tree(), size(), and core::conformation::TR().

Referenced by append_residue_by_bond(), and append_residue_by_jump().

void core::conformation::Conformation::append_residue_by_bond ( conformation::Residue const &  new_rsd,
bool const  build_ideal_geometry = false,
int  residue_connection_index = 0,
Size  anchor_pos = 0,
int  anchor_residue_connection_index = 0,
bool const  start_new_chain = false,
bool const  lookup_bond_length = false 
)

Append a new residue by a bond.

The default behavior is to append by a polymeric connection to the preceding residue If we want to connect via a non-polymer connection, we give the connection number, anchor residue and the connection number for the anchor residue. These connection numbers are wrt the connections_ arrays in Residue and ResidueType If build_ideal_bond is TRUE it will transform the coordinates of the new residue so that the bond geometry of the new bond is ideal according to the icoor_internal data in the residues. Otherwise the incoming coordinates of new_rsd are preserved. Fires a LengthEvent::RESIDUE_APPEND signal.

References append_residue(), core::conformation::atom_id_to_named_atom_id(), core::conformation::Residue::atom_name(), core::id::AtomID::atomno(), core::chemical::ResidueConnection::atomno(), core::id::BOGUS_NAMED_ATOM_ID, core::conformation::Residue::clone(), core::conformation::Residue::is_lower_terminus(), core::conformation::Residue::is_polymer(), core::conformation::Residue::is_upper_terminus(), core::conformation::Residue::lower_connect(), core::conformation::Residue::lower_connect_atom(), core::chemical::ResidueType::lower_connect_id(), core::conformation::orient_residue_for_ideal_bond(), pre_nresidue_change(), rebuild_polymer_bond_dependent_atoms(), residue_(), core::conformation::Residue::residue_connection(), residue_coordinates_need_updating_, residues_, size(), core::conformation::Residue::type(), update_residue_coordinates(), core::conformation::Residue::upper_connect(), core::conformation::Residue::upper_connect_atom(), and core::chemical::ResidueType::upper_connect_id().

Referenced by protocols::comparative_modeling::ExtraThreadingMover::apply(), protocols::loops::loop_closure::kinematic_closure::KinematicMover::apply(), and core::conformation::is_ideal_position().

void core::conformation::Conformation::append_residue_by_jump ( conformation::Residue const &  new_rsd,
Size const  anchor_pos,
std::string const &  anchor_atom = "",
std::string const &  root_atom = "",
bool const  start_new_chain = false 
)
virtual

Append a new residue by a jump.

add a residue into residues_ container, update its seqpos, chainid as well fold tree and atoms. Fires a LengthEvent::RESIDUE_APPEND signal.

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References append_residue(), core::id::BOGUS_NAMED_ATOM_ID, pre_nresidue_change(), and size().

Referenced by protocols::comparative_modeling::ExtraThreadingMover::apply(), and core::conformation::symmetry::setup_symmetric_conformation().

bool core::conformation::Conformation::atom_is_backbone_norefold ( Size const  pos,
Size const  atomno 
) const
AtomTree const& core::conformation::Conformation::atom_tree ( ) const
inline
Real core::conformation::Conformation::atom_tree_torsion ( TorsionID const &  tor_id) const
private

access a torsion from the atom_tree

used when we want to copy torsions from the atomtree to the residues used when updating the torsion angles stashed in the Residues other torsion access calls look inside the residues since this will be faster than getting from the atomtree, at least in the current implementation of this routine

References atom_tree_, dof_id_from_torsion_id(), get_torsion_angle_atom_ids(), core::id::JUMP, and core::id::TorsionID::type().

Referenced by debug_residue_torsions(), and update_residue_torsions().

template<typename MemFn , typename Ptr >
utility::signals::Link core::conformation::Conformation::attach_connection_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

attach ConnectionEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( ConnectionEvent const & )
ptrpointer to observer object
Returns
Link that can be used to manage the connection
Remarks
ConnectionEvent observers will only be notified upon a change in the state of the connection with the Conformation, e.g. if the Conformation is destroyed or if the connection is being transferred. SUGGESTION: Try to use the Link objects that are returned when attaching observers instead of attaching via this function and watching for ConnectionEvents, as it typically makes connection management easier.

References connection_obs_hub_.

Referenced by core::pose::PDBInfo::attach_to(), and core::scoring::constraints::ConstraintSet::attach_to_conformation().

template<typename MemFn , typename Ptr >
utility::signals::Link core::conformation::Conformation::attach_general_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

attach GeneralEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( GeneralEvent const & )
ptrpointer to observer object
Returns
Link that can be used to manage the connection
Remarks
GeneralEvent observers will be notified whenever any signal derived from GeneralEvent occurs.

References general_obs_hub_.

template<typename MemFn , typename Ptr >
utility::signals::Link core::conformation::Conformation::attach_identity_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

attach IdentityEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( IdentityEvent const & )
ptrpointer to observer object
Returns
Link that can be used to manage the connection

References identity_obs_hub_.

Referenced by core::pose::PDBInfo::attach_to().

template<typename MemFn , typename Ptr >
utility::signals::Link core::conformation::Conformation::attach_length_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

attach LengthEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( LengthEvent const & )
ptrpointer to observer object
Returns
Link that can be used to manage the connection

References length_obs_hub_.

Referenced by protocols::toolbox::match_enzdes_util::EnzdesCacheableObserver::attach_impl(), core::pose::datacache::LengthEventCollector::attach_impl(), core::pose::datacache::SpecialSegmentsObserver::attach_impl(), protocols::forge::build::BuildInstruction::attach_to(), core::pose::PDBInfo::attach_to(), and core::scoring::constraints::ConstraintSet::attach_to_conformation().

template<typename MemFn , typename Ptr >
utility::signals::Link core::conformation::Conformation::attach_xyz_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

attach XYZEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( XYZEvent const & )
ptrpointer to observer object
Returns
Link that can be used to manage the connection

References xyz_obs_hub_.

bool core::conformation::Conformation::backbone_torsion_angle_atoms ( TorsionID const &  id,
AtomID id1,
AtomID id2,
AtomID id3,
AtomID id4 
) const
private
void core::conformation::Conformation::batch_get_xyz ( utility::vector1< AtomID > const &  id,
utility::vector1< PointPosition > &  position 
) const
virtual

References xyz().

void core::conformation::Conformation::batch_set_xyz ( utility::vector1< AtomID > const &  id,
utility::vector1< PointPosition > const &  position 
)
virtual
void core::conformation::Conformation::block_signals ( )

block signals from being sent

Warning
for safety, ConnectionEvent are never blocked
for safety, ConnectionEvents are never blocked

References general_obs_hub_, identity_obs_hub_, length_obs_hub_, and xyz_obs_hub_.

bool core::conformation::Conformation::blocking_signals ( ) const

are signals being blocked?

References general_obs_hub_.

Real core::conformation::Conformation::bond_angle ( AtomID const &  atom1,
AtomID const &  atom2,
AtomID const &  atom3 
) const

Returns the bond angle defined by <atom[1-3]>

References atom_tree_.

Referenced by protocols::topology_broker::fix_mainchain_connect(), and core::fragment::BBTorsionAndAnglesSRFD::steal().

Real core::conformation::Conformation::bond_length ( AtomID const &  atom1,
AtomID const &  atom2 
) const

Returns the bond length between <atom1> and <atom2>

References atom_tree_.

Referenced by protocols::topology_broker::fix_mainchain_connect().

utility::vector1< id::AtomID > core::conformation::Conformation::bonded_neighbor_all_res ( core::id::AtomID  atomid,
bool  virt = false 
) const
void core::conformation::Conformation::buffer_signals ( )

block signals from being sent and buffer them to be sent after unblocking

References general_obs_hub_, identity_obs_hub_, length_obs_hub_, and xyz_obs_hub_.

bool core::conformation::Conformation::buffering_signals ( ) const

are signals being blocked and buffered?

References general_obs_hub_.

Size core::conformation::Conformation::chain_begin ( Size const  chain) const
inline

Returns the position number of the first residue in <chain>

References chain_endings_.

Referenced by protocols::protein_interface_design::movers::Splice::add_sequence_constraints(), protocols::anchored_design::AnchorMoversData::anchor_noise_constraints_setup(), protocols::ligand_docking::append_ligand_RMSD(), protocols::protein_interface_design::movers::AddSidechainConstraintsToHotspots::apply(), protocols::seeded_abinitio::DefineMovableLoops::apply(), protocols::seeded_abinitio::SwapSegment::apply(), protocols::qsar::qsarMover::apply(), protocols::seeded_abinitio::CAcstGenerator::apply(), protocols::protein_interface_design::movers::SetAtomTree::apply(), protocols::seeded_abinitio::CloseFold::apply(), protocols::ligand_docking::LigandDesign::apply(), protocols::seeded_abinitio::SegmentHybridizer::apply(), protocols::ligand_docking::MinimizeLigand::apply(), protocols::ligand_docking::RandomConformers::apply(), protocols::ligand_docking::GrowLigand::apply(), protocols::ligand_docking::AddHydrogens::apply(), protocols::filters::HeavyAtomFilter::apply(), protocols::ligand_docking::TetherLigand::apply(), protocols::simple_moves::FavorSequenceProfile::apply(), protocols::ligand_docking::CompleteConnectionsFilter::apply(), protocols::protein_interface_design::movers::BackrubDDMover::apply(), protocols::ligand_docking::HBondDonorFilter::apply(), protocols::toolbox::task_operations::PreventChainFromRepackingOperation::apply(), protocols::toolbox::task_operations::RestrictChainToRepackingOperation::apply(), protocols::toolbox::task_operations::RestrictToAlignedSegmentsOperation::apply(), protocols::ligand_docking::AtomCountFilter::apply(), protocols::ligand_docking::HBondAcceptorFilter::apply(), protocols::ligand_docking::MolarMassFilter::apply(), protocols::ligand_docking::HeavyAtomFilter::apply(), protocols::ligand_docking::MolecularMassFilter::apply(), protocols::protein_interface_design::movers::PlacementAuctionMover::apply(), protocols::toolbox::task_operations::RestrictToTerminiOperation::apply(), protocols::ligand_docking::Transform::apply(), protocols::toolbox::task_operations::JointSequenceOperation::apply(), protocols::ligand_docking::Translate::apply(), protocols::protein_interface_design::movers::PlaceStubMover::apply(), protocols::fldsgn::CircularPermutation::apply(), protocols::anchored_design::AnchoredDesignMover::calculate_rmsd(), protocols::simple_moves::CutChainMover::chain_cut(), protocols::simple_filters::ResidueBurialFilter::compute(), protocols::simple_filters::NeighborTypeFilter::compute(), protocols::simple_filters::TerminusDistanceFilter::compute(), protocols::protein_interface_design::filters::AverageDegreeFilter::compute(), protocols::protein_interface_design::filters::AtomicContactCountFilter::compute(), protocols::protein_interface_design::filters::HbondsToResidueFilter::compute(), protocols::toolbox::task_operations::LayerOperations::compute(), protocols::protein_interface_design::movers::SetAtomTree::create_atom_tree(), protocols::floppy_tail::create_extra_output(), protocols::simple_moves::CutChainMover::create_subpose(), protocols::seeded_abinitio::define_movemap_chains(), protocols::ligand_docking::InterfaceBuilder::enforce_minimum_length(), core::pose::metrics::simple_calculators::InterfaceDefinitionCalculator::fill_in_chain_terminii(), protocols::ligand_docking::InterfaceBuilder::find_interface_residues(), protocols::protein_interface_design::find_lowest_constraint_energy_residue(), protocols::protein_interface_design::find_nearest_residue(), protocols::protein_interface_design::movers::find_nearest_residue_to_coord(), core::pack::task::operation::util::find_neighbors_within_CB_cutoff(), protocols::forge::methods::fold_tree_from_loops(), protocols::forge::methods::fold_tree_from_pose(), protocols::rosetta_scripts::foreach_movemap_tag(), protocols::protein_interface_design::movers::MapHotspot::GenerateMap(), core::conformation::symmetry::get_chain2range(), core::pose::get_chain_from_chain_id(), core::pose::get_chain_residues(), protocols::antibody2::AntibodyInfo::get_FoldTree_LH_A(), core::pose::get_hash_from_chain(), protocols::hotspot_hashing::HotspotStub::get_nearest_residue(), protocols::loops::loopfinder(), protocols::protein_interface_design::movers::HotspotDisjointedFoldTreeMover::make_disjointed_foldtree(), protocols::protein_interface_design::make_hotspot_foldtree(), protocols::protein_interface_design::movers::PlaceSimultaneouslyMover::minimize_all(), MinimizeInterface(), protocols::protein_interface_design::movers::MapHotspot::output_pose(), protocols::protein_interface_design::movers::PlaceOnLoop::parse_my_tag(), protocols::simple_moves::DesignRepackMover::parse_my_tag(), protocols::ligand_docking::Rotate::parse_my_tag(), protocols::protein_interface_design::movers::PlaceStubMover::parse_my_tag(), protocols::contact_map::ContactMap::parse_region_string(), protocols::protein_interface_design::movers::PlaceStubMover::place_stub(), protocols::protein_interface_design::movers::PlaceSimultaneouslyMover::place_stubs(), protocols::hotspot_hashing::HotspotStubSet::prepare_hashing_packer_task_(), protocols::protein_interface_design::movers::PlacementMinimizationMover::refresh_bbstub_constraints(), protocols::analysis::InterfaceAnalyzerMover::reorder_foldtree_find_jump(), protocols::forge::remodel::RemodelLoopMover::repeat_generation(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), protocols::forge::remodel::RemodelLoopMover::repeat_propagation(), protocols::features::ResidueGridScoresFeatures::report_features(), core::scoring::methods::NMerPSSMEnergy::residue_energy(), protocols::simple_filters::NonSequentialNeighborsFilter::residue_neighbors(), protocols::ligand_docking::Rotate::rotate_ligand(), protocols::ligand_docking::MoveMapBuilder::set_all_chi(), protocols::seeded_abinitio::SeedSetupMover::set_packerTasks_target_and_seeds(), protocols::qsar::scoring_grid::ChargeGrid::setup_charge_atoms(), core::scoring::constraints::SiteConstraint::setup_csts(), core::scoring::constraints::FabConstraint::setup_csts(), core::conformation::symmetry::setup_symmetric_conformation(), core::pose::Pose::split_by_chain(), protocols::fldsgn::CircularPermutation::split_chains(), protocols::protein_interface_design::star_fold_tree(), protocols::protein_interface_design::movers::PlaceStubMover::StubMinimize(), protocols::seeded_abinitio::SwapSegment::swap_chain(), protocols::protein_interface_design::transform_pose(), and protocols::fldsgn::CircularPermutation::which_chain().

Size core::conformation::Conformation::chain_end ( Size const  chain) const
inline

Returns the position number of the last residue in <chain>

References chain_endings_, and size().

Referenced by protocols::protein_interface_design::movers::Splice::add_sequence_constraints(), protocols::anchored_design::AnchorMoversData::anchor_noise_constraints_setup(), protocols::ligand_docking::append_ligand_RMSD(), protocols::protein_interface_design::movers::AddSidechainConstraintsToHotspots::apply(), protocols::seeded_abinitio::DefineMovableLoops::apply(), protocols::seeded_abinitio::CAcstGenerator::apply(), protocols::protein_interface_design::movers::SetAtomTree::apply(), protocols::seeded_abinitio::CloseFold::apply(), protocols::ligand_docking::LigandDesign::apply(), protocols::ligand_docking::MinimizeLigand::apply(), protocols::ligand_docking::RandomConformers::apply(), protocols::ligand_docking::AddHydrogens::apply(), protocols::ligand_docking::GrowLigand::apply(), protocols::filters::HeavyAtomFilter::apply(), protocols::simple_moves::FavorSequenceProfile::apply(), protocols::ligand_docking::CompleteConnectionsFilter::apply(), protocols::protein_interface_design::movers::BackrubDDMover::apply(), protocols::ligand_docking::HBondDonorFilter::apply(), protocols::toolbox::task_operations::PreventChainFromRepackingOperation::apply(), protocols::toolbox::task_operations::RestrictChainToRepackingOperation::apply(), protocols::toolbox::task_operations::RestrictToAlignedSegmentsOperation::apply(), protocols::ligand_docking::AtomCountFilter::apply(), protocols::ligand_docking::HBondAcceptorFilter::apply(), protocols::ligand_docking::MolarMassFilter::apply(), protocols::ligand_docking::MolecularMassFilter::apply(), protocols::ligand_docking::HeavyAtomFilter::apply(), protocols::protein_interface_design::movers::PlacementAuctionMover::apply(), protocols::toolbox::task_operations::RestrictToTerminiOperation::apply(), protocols::toolbox::task_operations::ProteinInterfaceDesignOperation::apply(), protocols::toolbox::task_operations::JointSequenceOperation::apply(), protocols::protein_interface_design::movers::PlaceStubMover::apply(), protocols::fldsgn::CircularPermutation::apply(), protocols::anchored_design::AnchoredDesignMover::calculate_rmsd(), protocols::simple_moves::CutChainMover::chain_cut(), protocols::simple_filters::ResidueBurialFilter::compute(), protocols::simple_filters::TerminusDistanceFilter::compute(), protocols::protein_interface_design::filters::AverageDegreeFilter::compute(), protocols::protein_interface_design::filters::AtomicContactCountFilter::compute(), protocols::toolbox::task_operations::LayerOperations::compute(), protocols::protein_interface_design::movers::SetAtomTree::create_atom_tree(), protocols::ligand_docking::Rotate::create_random_rotations(), protocols::simple_moves::CutChainMover::create_subpose(), protocols::seeded_abinitio::define_movemap_chains(), protocols::ligand_docking::InterfaceBuilder::enforce_minimum_length(), core::pose::metrics::simple_calculators::InterfaceDefinitionCalculator::fill_in_chain_terminii(), protocols::ligand_docking::InterfaceBuilder::find_interface_residues(), protocols::protein_interface_design::find_lowest_constraint_energy_residue(), protocols::protein_interface_design::find_nearest_residue(), protocols::protein_interface_design::movers::find_nearest_residue_to_coord(), core::pack::task::operation::util::find_neighbors_within_CB_cutoff(), protocols::forge::methods::fold_tree_from_loops(), protocols::forge::methods::fold_tree_from_pose(), protocols::simple_moves::CutChainMover::foldTree(), protocols::rosetta_scripts::foreach_movemap_tag(), core::conformation::symmetry::get_chain2range(), core::pose::get_chain_residues(), protocols::antibody2::AntibodyInfo::get_FoldTree_L_HA(), protocols::antibody2::AntibodyInfo::get_FoldTree_LA_H(), protocols::antibody2::AntibodyInfo::get_FoldTree_LH_A(), core::pose::get_hash_from_chain(), protocols::hotspot_hashing::HotspotStub::get_nearest_residue(), protocols::antibody2::AntibodyInfo::identify_antibody(), insert_conformation_by_jump(), protocols::loops::loopfinder(), protocols::protein_interface_design::movers::HotspotDisjointedFoldTreeMover::make_disjointed_foldtree(), protocols::protein_interface_design::make_hotspot_foldtree(), protocols::protein_interface_design::movers::PlaceSimultaneouslyMover::minimize_all(), MinimizeInterface(), protocols::protein_interface_design::movers::PlaceOnLoop::parse_my_tag(), protocols::simple_moves::DesignRepackMover::parse_my_tag(), protocols::ligand_docking::Rotate::parse_my_tag(), protocols::protein_interface_design::movers::PlaceStubMover::parse_my_tag(), protocols::contact_map::ContactMap::parse_region_string(), protocols::protein_interface_design::movers::PlaceStubMover::place_stub(), protocols::protein_interface_design::movers::PlaceSimultaneouslyMover::place_stubs(), protocols::hotspot_hashing::HotspotStubSet::prepare_hashing_packer_task_(), protocols::protein_interface_design::movers::PlacementMinimizationMover::refresh_bbstub_constraints(), protocols::analysis::InterfaceAnalyzerMover::reorder_foldtree_find_jump(), protocols::forge::remodel::RemodelLoopMover::repeat_generation(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), protocols::forge::remodel::RemodelLoopMover::repeat_propagation(), protocols::features::ResidueGridScoresFeatures::report_features(), core::scoring::methods::NMerPSSMEnergy::residue_energy(), protocols::simple_filters::NonSequentialNeighborsFilter::residue_neighbors(), protocols::ligand_docking::MoveMapBuilder::set_all_chi(), protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints(), protocols::analysis::InterfaceAnalyzerMover::set_pose_info(), protocols::qsar::scoring_grid::ChargeGrid::setup_charge_atoms(), core::scoring::constraints::SiteConstraint::setup_csts(), core::scoring::constraints::FabConstraint::setup_csts(), core::conformation::symmetry::setup_symmetric_conformation(), core::pose::Pose::split_by_chain(), protocols::fldsgn::CircularPermutation::split_chains(), protocols::protein_interface_design::star_fold_tree(), protocols::protein_interface_design::movers::PlaceStubMover::StubMinimize(), protocols::seeded_abinitio::SwapSegment::swap_chain(), protocols::protein_interface_design::transform_pose(), and protocols::fldsgn::CircularPermutation::which_chain().

utility::vector1< Size > const & core::conformation::Conformation::chain_endings ( ) const
void core::conformation::Conformation::chain_endings ( utility::vector1< Size > const &  endings)

Sets the list of chain endings.

Remarks
All positions must be strictly less than the number of residues in the Conformation, otherwise the routine will fail fast. Note that the last residue position is not counted as a chain end.

References chain_endings_, rederive_chain_ids(), and size().

void core::conformation::Conformation::chains_from_termini ( )

Rederive the chains from the termini/polymer status.

References chain_endings_, rederive_chain_ids(), residues_, and size().

void core::conformation::Conformation::clear ( )
void core::conformation::Conformation::clear_observers ( )
ConformationOP core::conformation::Conformation::clone ( ) const
virtual

clone the conformation

make a copy of this conformation( allocate actual memory for it )

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References Conformation().

ResidueCAPs core::conformation::Conformation::const_residues ( ) const

Inefficient – constructs copy of residues_.

References residues_, and size().

Referenced by append_residue(), insert_polymer_residue(), insert_residue_by_jump(), replace_residue(), and setup_atom_tree().

void core::conformation::Conformation::copy_segment ( Size const  size,
Conformation const &  src,
Size const  begin,
Size const  src_begin 
)

copy a stretch of coordinates/torsions from another Conformation

copy a stretch of coordinates/torsions from another pose Fires IdentityEvent signals as residues are replaced.

References replace_residue(), residue(), and size().

void core::conformation::Conformation::debug_pause ( bool const  flag) const

wait for stdin after sending a GeneralEvent signal

References general_obs_hub_.

bool core::conformation::Conformation::debug_pause ( ) const

waiting for stdin after sending a GeneralEvent signal?

References general_obs_hub_.

void core::conformation::Conformation::debug_residue_torsions ( bool  verbose = false) const
void core::conformation::Conformation::declare_chemical_bond ( Size const  seqpos1,
std::string const &  atom_name1,
Size const  seqpos2,
std::string const &  atom_name2 
)
void core::conformation::Conformation::delete_chain_ending ( Size const  seqpos)

Deletes <seqpos> from the list of chain endings.

Remarks
The last residue position is not counted as a chain ending.

References chain_endings_, and rederive_chain_ids().

Referenced by protocols::forge::build::SegmentRebuild::modify_impl().

void core::conformation::Conformation::delete_polymer_residue ( Size const  seqpos)
void core::conformation::Conformation::delete_residue_range_slow ( Size const  range_begin,
Size const  range_end 
)
void core::conformation::Conformation::delete_residue_slow ( Size const  seqpos)

Slow method that relies on FoldTree::delete_seqpos, rebuilds atomtree, can handle jumps/root residue.

Delete a residue from the Conformation the slow way – triggers a rebuild of the atomtree Fires a LengthEvent::RESIDUE_DELETE signal.

Note
Could be upstream and/or downstream of a jump or chemical edge, or the root of the tree
Not well-tested. Expect funny behavior in new or different situations (email pbrad.nosp@m.ley@.nosp@m.fhcrc.nosp@m..org)

LOGIC: uses fold_tree.delete_seqpos to handle shifting the topology around if necessary, then calls setup_atom_tree

References atom_tree_, fold_tree_, notify_length_obs(), pre_nresidue_change(), core::conformation::signals::LengthEvent::RESIDUE_DELETE, residue_torsions_need_updating_, residues_delete(), setup_atom_tree(), and size().

Referenced by protocols::comparative_modeling::PartialThreadingMover::apply(), protocols::toolbox::task_operations::RestrictNativeResiduesOperation::apply(), protocols::match::MatcherMover::apply(), protocols::enzdes::RepackLigandSiteWithoutLigandMover::apply(), protocols::forge::remodel::RemodelMover::apply(), protocols::forge::components::VarLengthBuild::apply(), protocols::loops::apply_sequence_mapping(), protocols::protein_interface_design::filters::SequenceRecoveryFilter::compute(), protocols::grafting::GraftMoverBase::delete_overhang_residues(), protocols::grafting::delete_region(), protocols::relax::delete_virtual_residues(), protocols::features::ReportToDB::initialize_pose(), core::pose::remove_ligand_canonical_residues(), protocols::toolbox::pose_manipulation::remove_non_protein_residues(), core::pose::remove_nonprotein_residues(), protocols::hybridization::remove_residues(), core::pose::remove_virtual_residues(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), protocols::swa::rna::StepWiseRNA_PoseSetup::setup_native_pose(), protocols::nonlocal::StarTreeBuilder::tear_down(), and protocols::star::StarAbinitio::tear_down_kinematics().

template<typename MemFn , typename Ptr >
bool core::conformation::Conformation::detach_connection_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

detach ConnectionEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( ConnectionEvent const & )
ptrpointer to observer object
Returns
true if disconnect successful, false if connection does not exist
Remarks
ConnectionEvent observers will only be notified upon a change in the state of the connection with the Conformation, e.g. if the Conformation is destroyed or if the connection is being transferred. SUGGESTION: Try to use the Link objects that are returned when attaching observers instead of attaching via this function and watching for ConnectionEvents, as it typically makes connection management easier.

References connection_obs_hub_.

Referenced by core::pose::PDBInfo::detach_from(), and core::scoring::constraints::ConstraintSet::detach_from_conformation().

template<typename MemFn , typename Ptr >
bool core::conformation::Conformation::detach_general_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

detach GeneralEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( GeneralEvent const & )
ptrpointer to observer object
Returns
true if disconnect successful, false if connection does not exist
Remarks
GeneralEvent observers will be notified whenever any signal derived from GeneralEvent occurs.

References general_obs_hub_.

template<typename MemFn , typename Ptr >
bool core::conformation::Conformation::detach_identity_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

detach IdentityEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( IdentityEvent const & )
ptrpointer to observer object
Returns
true if disconnect successful, false if connection does not exist

References identity_obs_hub_.

Referenced by core::pose::PDBInfo::detach_from().

template<typename MemFn , typename Ptr >
bool core::conformation::Conformation::detach_length_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

detach LengthEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( LengthEvent const & )
ptrpointer to observer object
Returns
true if disconnect successful, false if connection does not exist

References length_obs_hub_.

Referenced by core::pose::PDBInfo::detach_from(), and core::scoring::constraints::ConstraintSet::detach_from_conformation().

template<typename MemFn , typename Ptr >
bool core::conformation::Conformation::detach_xyz_obs ( MemFn  fn,
Ptr  ptr 
) const
inline

detach XYZEvent observer function

Parameters
fnpointer to observer's unary member function with signature void( XYZEvent const & )
ptrpointer to observer object
Returns
true if disconnect successful, false if connection does not exist

References xyz_obs_hub_.

void core::conformation::Conformation::detect_bonds ( )
void core::conformation::Conformation::detect_disulfides ( )
virtual

Detect existing disulfides from the protein structure.

Note
Assumes full atom

looks at SG-SG distance. If the SG-SG are about 2.02 A apart, calls it a disulfide bond.

For full atom confomations, looks at SG-SG distance. If the SG-SG are about 2.02 A apart, calls it a disulfide bond. For centroid and other conformations, the less accurate CB-CB distance is used instead. In this case a CB-CB distance of 3.72 A is optimal.

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References core::conformation::Residue::aa(), core::chemical::aa_cys, core::conformation::Residue::atom(), core::conformation::Residue::atom_index(), core::conformation::Residue::atoms(), core::conformation::change_cys_state(), core::chemical::DISULFIDE, core::chemical::FA_STANDARD, core::conformation::find_neighbors(), core::chemical::ResidueType::has_atom_name(), core::conformation::Residue::has_variant_type(), core::conformation::Residue::nbr_atom(), core::conformation::Residue::nbr_radius(), residue(), core::chemical::ResidueType::residue_connection_id_for_atom(), residue_type(), residues_, size(), core::conformation::TR(), core::conformation::Residue::type(), core::conformation::Atom::xyz(), and xyz().

Referenced by protocols::simple_moves::SwitchChainOrderMover::apply(), protocols::protein_interface_design::movers::LoopMoverFromCommandLine::apply(), protocols::comparative_modeling::LoopRelaxMover::apply(), protocols::protein_interface_design::movers::Splice::apply(), core::pose::symmetry::extract_asymmetric_unit(), protocols::simple_moves::CutChainMover::foldTree(), core::pose::initialize_disulfide_bonds(), core::pose::symmetry::make_symmetric_pose(), protocols::frag_picker::FragmentCandidate::output_silent(), protocols::abinitio::AbrelaxApplication::relax(), protocols::forge::methods::restore_residues(), protocols::topology_broker::TopologyBroker::switch_to_fullatom(), and protocols::protein_interface_design::transform_pose().

void core::conformation::Conformation::detect_pseudobonds ( )
Real core::conformation::Conformation::dof ( DOF_ID const &  id) const

Returns the AtomTree degree of freedom (DOF) <id>

References atom_tree_.

Referenced by core::conformation::symmetry::SymmetricConformation::set_dof().

id::DOF_ID core::conformation::Conformation::dof_id_from_torsion_id ( TorsionID const &  id) const
kinematics::Stub core::conformation::Conformation::downstream_jump_stub ( int const  jump_number) const
bool core::conformation::Conformation::empty ( ) const
inline

Returns true if this conformation does not have any residues.

References residues_.

void core::conformation::Conformation::fill_missing_atoms ( id::AtomID_Mask  missing)
void core::conformation::Conformation::fix_disulfides ( utility::vector1< std::pair< Size, Size > >  disulf_bonds)
virtual FoldTree const& core::conformation::Conformation::fold_tree ( ) const
inlinevirtual

Returns the conformation's FoldTree.

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References fold_tree_.

Referenced by core::optimization::symmetry::SymMinimizerMap::asymmetric_dof(), core::conformation::symmetry::SymmetryInfo::dependent_dofs(), core::conformation::symmetry::SymmetryInfo::dof_is_independent(), protocols::simple_moves::asym_fold_and_dock::AsymFoldandDockMoveRbJumpMover::find_new_jump_residue(), core::pose::symmetry::find_new_symmetric_jump_residues(), core::pose::symmetry::find_symmetric_basejump_anchor(), core::conformation::symmetry::SymmetricConformation::fold_tree(), protocols::topology_broker::FoldandDockClaimer::generate_claims(), protocols::topology_broker::AsymFoldandDockClaimer::generate_claims(), protocols::topology_broker::FibrilModelingClaimer::generate_claims(), core::conformation::symmetry::get_asymm_unit_fold_tree(), core::conformation::symmetry::SymmetryInfo::get_dof_derivative_weight(), core::conformation::idealize_position(), protocols::hybridization::HybridizeFoldtreeDynamic::initialize(), core::conformation::symmetry::SymmetricConformation::insert_conformation_by_jump(), insert_conformation_by_jump(), core::conformation::insert_ideal_bonds_at_polymer_junction(), core::conformation::is_ideal_position(), core::optimization::symmetry::SymAtomTreeMinimizer::make_assymetric_movemap(), core::optimization::symmetry::SymAtomTreeMinimizer::make_semisymmetric_movemap(), core::conformation::symmetry::process_residue_request(), protocols::fibril::reorient_extended_fibril(), protocols::simple_filters::AlaScan::report(), protocols::features::PoseConformationFeatures::report_features_implementation(), protocols::hybridization::HybridizeFoldtreeDynamic::reset(), core::conformation::symmetry::set_asymm_unit_fold_tree(), core::conformation::symmetry::set_fold_tree_from_symm_data(), core::conformation::symmetry::setup_symmetric_conformation(), and core::conformation::symmetry::symmetrize_fold_tree().

void core::conformation::Conformation::fold_tree ( FoldTree const &  fold_tree_in)
virtual

Sets the FoldTree to <fold_tree_in>

setup atom tree as well from the fold tree

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References core::kinematics::FoldTree::nres(), setup_atom_tree(), size(), and update_residue_coordinates().

utility::vector1< bool > core::conformation::Conformation::get_residue_mask ( ) const
virtual

returns a mask of residues to be used in scoring

Returns a mask of residues over which scoring is restricted. Only these residues will be used in constructing the neighbor list.

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References residues_.

Referenced by core::scoring::NeighborList::setup().

Real core::conformation::Conformation::get_residue_weight ( core::Size  ,
core::Size   
) const
virtual

returns a residue-pair weight

Returns a weight to be used when scoring this residue.

Reimplemented in core::conformation::symmetry::SymmetricConformation.

Referenced by core::scoring::NeighborList::setup().

kinematics::RT core::conformation::Conformation::get_stub_transform ( id::StubID const &  stub_id1,
id::StubID const &  stub_id2 
) const
bool core::conformation::Conformation::get_torsion_angle_atom_ids ( TorsionID const &  tor_id,
AtomID id1,
AtomID id2,
AtomID id3,
AtomID id4 
) const
void core::conformation::Conformation::in_place_copy ( Conformation const &  src)
private

Optimizing the common case of assigning a conformation to another with the same sequence.

References atom_tree_, chain_endings_, dof_moved_, fold_tree_, residue_coordinates_need_updating_, residue_torsions_need_updating_, residues_, secstruct_, size(), structure_moved_, and xyz_moved_.

Referenced by operator=().

void core::conformation::Conformation::insert_chain_ending ( Size const  seqpos)

Marks <seqpos> as the end of a new chain.

Remarks
The last residue position is not counted as a chain ending. Also increases the chain ID number by 1 for all residues upstream from seqpos.

References chain_endings_, rederive_chain_ids(), and size().

Referenced by core::io::pdb::build_pose_as_is1(), core::pose::create_subpose(), core::fragment::make_pose_from_frags(), core::io::serialization::read_binary(), and protocols::fldsgn::CircularPermutation::split_chains().

void core::conformation::Conformation::insert_conformation_by_jump ( Conformation const &  conf,
Size const  insert_seqpos,
Size const  insert_jumppos,
Size const  anchor_pos,
Size const  anchor_jump_number = 0,
std::string const &  anchor_atom = "",
std::string const &  root_atom = "" 
)
virtual

Insert one conformation into another. See FoldTree::insert_fold_tree_by_jump.

Insert one conformation into another. Some tricky issues: (1) residue connections: assume all residue connections within conf carry over, after renumbering residues positions (2) jump numbers: see FoldTree::insert_fold_tree_by_jump (3) chains: chain endings are inserted before insert_seqpos, and after insert_seqpos+conf.size()-1 ie. at the beginning and ending of the inserted conformation; all internal chain endings from conf are used (4) atom_tree: setup_atom_tree is called to rebuild from scratch using the fold_tree

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References chain_end(), chain_endings_, core::id::AtomID_Map< T >::clear(), core::conformation::Residue::clone(), dof_moved_, fold_tree(), fold_tree_, num_chains(), pre_nresidue_change(), rederive_chain_ids(), residue(), residue_torsions_need_updating_, residues_, core::id::AtomID_Map< T >::resize(), secstruct_, setup_atom_tree(), size(), update_sequence_numbering(), and xyz_moved_.

Referenced by core::conformation::symmetry::SymmetricConformation::insert_conformation_by_jump(), and core::conformation::symmetry::setup_symmetric_conformation().

void core::conformation::Conformation::insert_fragment ( id::StubID const &  instub_id,
FragRT const &  outstub_transforms,
FragXYZ const &  frag_xyz 
)

References atom_tree_, and set_dof_moved().

void core::conformation::Conformation::insert_ideal_geometry_at_polymer_bond ( Size const  seqpos)
void core::conformation::Conformation::insert_ideal_geometry_at_residue_connection ( Size const  pos1,
Size const  connid1 
)

Set two bond angles and a bond length. DOES NOT DO ANY DIHEDRALS – NOT EVEN OMEGA IF ITS A PROTEIN

References rebuild_residue_connection_dependent_atoms(), residues_, set_bond_angle(), and set_bond_length().

void core::conformation::Conformation::insert_polymer_residue ( Residue const &  new_rsd_in,
Size const  seqpos,
bool const  join_lower,
bool const  join_upper 
)
private
void core::conformation::Conformation::insert_residue_by_jump ( Residue const &  new_rsd_in,
Size const  seqpos,
Size  anchor_pos,
std::string const &  anchor_atom = "",
std::string const &  root_atom = "",
bool  new_chain = false 
)

Insert a new residue by jump. If new_chain is "true", then seqpos must be the last residue of one chain (i.e. residue(seqpos).chain() != residue(seqpos+1).chain() )

insert a residue by jump Fires a LengthEvent::RESIDUE_PREPEND signal.

References atom_tree_, const_residues(), fold_tree_, core::conformation::insert_residue_into_atom_tree(), notify_length_obs(), pre_nresidue_change(), residue_(), core::conformation::signals::LengthEvent::RESIDUE_PREPEND, residue_torsions_need_updating_, residues_insert(), core::conformation::Residue::seqpos(), and size().

Referenced by core::conformation::symmetry::SymmetricConformation::append_residue_by_jump().

id::AtomID core::conformation::Conformation::inter_residue_connection_partner ( Size const  seqpos,
int const  connection_index 
) const

This returns the AtomID of the atom in the other residue to which the "connection_index"-th.

connection of residue seqpos is connected to.

References core::chemical::ResidueConnection::atomno(), core::conformation::Residue::residue_connection(), core::conformation::Residue::residue_connection_partner(), and residues_.

Referenced by core::chemical::ICoorAtomID::atom_id().

bool core::conformation::Conformation::is_centroid ( ) const

convenience test for residue_type_set ( based on two middle residue – to avoid hitting on ligands or pseudos )

this is not a good test –Doug

References core::chemical::CENTROID, and is_residue_typeset().

bool core::conformation::Conformation::is_fullatom ( ) const

convenience test for residue_type_set ( based on two middle residue – to avoid hitting on ligands or pseudos )

this is not a good test –Doug

References core::chemical::FA_STANDARD, and is_residue_typeset().

Referenced by core::conformation::form_disulfide().

bool core::conformation::Conformation::is_residue_typeset ( std::string  tag) const

convenience test for residue_type_set ( based on two middle residue – to avoid hitting on ligands or pseudos )

this is nt a good test –Doug

References core::chemical::ResidueTypeSet::name(), residue_type(), core::chemical::ResidueType::residue_type_set(), and size().

Referenced by is_centroid(), and is_fullatom().

Conformation::Jump const & core::conformation::Conformation::jump ( int const  jump_number) const

Returns the Jump with jump number <jump_number>

References atom_tree_, and jump_atom_id().

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

Conformation::Jump const & core::conformation::Conformation::jump ( AtomID const &  id) const

access a jump

References atom_tree_.

id::AtomID core::conformation::Conformation::jump_atom_id ( int const  jump_number) const
void core::conformation::Conformation::notify_connection_obs ( ConnectionEvent const &  e) const
private

notify ConnectionEvent observers

Remarks
called upon a change in the state of connection between the Conformation and the observer (e.g. destruction of Conformation or transfer of connection)

References connection_obs_hub_.

Referenced by clear_observers(), and receive_observers_from().

void core::conformation::Conformation::notify_general_obs ( GeneralEvent const &  e) const
private

notify GeneralEvent observers

Remarks
should only be called when there are no other suitable event types since specific event notifications will automatically fire a GeneralEvent signal

References general_obs_hub_.

Referenced by notify_identity_obs(), notify_length_obs(), and notify_xyz_obs().

void core::conformation::Conformation::notify_identity_obs ( IdentityEvent const &  e,
bool const  fire_general = true 
) const
private

notify IdentityEvent observers

Parameters
ethe event
fire_generalfire a GeneralEvent afterwards? default true

References identity_obs_hub_, and notify_general_obs().

Referenced by operator=(), and replace_residue().

void core::conformation::Conformation::notify_length_obs ( LengthEvent const &  e,
bool const  fire_general = true 
) const
private

notify LengthEvent observers

Parameters
ethe event
fire_generalfire a GeneralEvent afterwards? default true

References length_obs_hub_, and notify_general_obs().

Referenced by append_residue(), delete_polymer_residue(), delete_residue_range_slow(), delete_residue_slow(), insert_polymer_residue(), insert_residue_by_jump(), and operator=().

void core::conformation::Conformation::notify_xyz_obs ( XYZEvent const &  e,
bool const  fire_general = true 
) const
private

notify XYZEvent observers

Parameters
ethe event
fire_generalfire a GeneralEvent afterwards? default true

References notify_general_obs(), and xyz_obs_hub_.

Referenced by operator=(), update_residue_coordinates(), and update_residue_torsions().

Size core::conformation::Conformation::num_chains ( ) const
inline

Returns the number of chains.

References chain_endings_.

Referenced by protocols::anchored_design::AnchorMoversData::anchor_noise_constraints_setup(), protocols::seeded_abinitio::SwapSegment::apply(), protocols::simple_filters::EnergyPerResidueFilter::apply(), protocols::seeded_abinitio::PlaceFragments::apply(), protocols::protein_interface_design::movers::PrepackMover::apply(), protocols::seeded_abinitio::SeedFoldTree::apply(), protocols::seeded_abinitio::SegmentHybridizer::apply(), protocols::toolbox::task_operations::SelectBySASAOperation::apply(), protocols::protein_interface_design::movers::BackrubDDMover::apply(), protocols::toolbox::task_operations::RestrictToTerminiOperation::apply(), protocols::toolbox::task_operations::ProteinInterfaceDesignOperation::apply(), protocols::analysis::InterfaceAnalyzerMover::apply(), protocols::protein_interface_design::movers::Splice::apply(), protocols::enzdes::LigInterfaceEnergyFilter::apply(), protocols::simple_filters::ResidueBurialFilter::compute(), protocols::protein_interface_design::filters::AverageDegreeFilter::compute(), protocols::simple_filters::ResidueIEFilter::compute(), protocols::protein_interface_design::filters::SpecificResiduesNearInterfaceFilter::compute(), protocols::protein_interface_design::filters::AtomicContactCountFilter::compute(), core::pose::conf2pdb_chain(), protocols::floppy_tail::create_extra_output(), protocols::seeded_abinitio::define_movemap_chains(), protocols::ligand_docking::InterfaceBuilder::enforce_minimum_length(), protocols::forge::methods::fold_tree_from_loops(), protocols::forge::methods::fold_tree_from_pose(), core::conformation::symmetry::get_chain2range(), core::pose::get_chain_ids_from_chain(), core::pose::has_chain(), protocols::antibody2::AntibodyInfo::identify_antibody(), insert_conformation_by_jump(), protocols::forge::build::SegmentRebuild::modify_impl(), protocols::seeded_abinitio::DefineMovableLoops::parse_my_tag(), protocols::seeded_abinitio::CloseFold::parse_my_tag(), protocols::toolbox::pose_metric_calculators::ResidueDecompositionByChainCalculator::recompute(), protocols::analysis::InterfaceAnalyzerMover::reorder_foldtree_find_jump(), protocols::forge::remodel::RemodelLoopMover::repeat_generation(), protocols::forge::remodel::RemodelLoopMover::repeat_generation_with_additional_residue(), protocols::forge::remodel::RemodelLoopMover::repeat_propagation(), protocols::pmut_scan::AlterSpecDisruptionDriver::score(), protocols::ligand_docking::MoveMapBuilder::set_all_chi(), protocols::anchored_design::AnchoredDesignMover::set_fold_tree_and_cutpoints(), protocols::seeded_abinitio::SeedSetupMover::set_packerTasks_target_and_seeds(), core::conformation::symmetry::setup_symmetric_conformation(), protocols::fldsgn::CircularPermutation::split_chains(), protocols::protein_interface_design::star_fold_tree(), and protocols::fldsgn::CircularPermutation::which_chain().

Conformation & core::conformation::Conformation::operator= ( Conformation const &  src)
virtual
void core::conformation::Conformation::pre_nresidue_change ( )
private

The Conformation must transfer lazily accumulated "moved" data from the AtomTree before changing the number of residues.

Copy any un-registered coordinate or DOF changes into the existing residues. For now, the AtomTree only tracks which Residues need external coordinate changes, and not internal coordinate changes. When internal coordinates go out-of-date in the atom tree, the "update_internal_coordinates" recursion begins at the root. Moreover, the Conformation updates internal coordinates for all residues when it updates. However, when this changes and the AtomTree starts tracking which residues need to have their internal coordinates updated, then it will be necessary to add a call to update_residue_torsions() here.

References update_residue_coordinates().

Referenced by append_polymer_residue_after_seqpos(), append_residue(), append_residue_by_bond(), append_residue_by_jump(), clear(), delete_polymer_residue(), delete_residue_range_slow(), delete_residue_slow(), insert_conformation_by_jump(), insert_polymer_residue(), insert_residue_by_jump(), prepend_polymer_residue_before_seqpos(), and safely_append_polymer_residue_after_seqpos().

void core::conformation::Conformation::prepend_polymer_residue_before_seqpos ( Residue const &  new_rsd,
Size const  seqpos,
bool const  build_ideal_geometry 
)
void core::conformation::Conformation::rebuild_polymer_bond_dependent_atoms ( Size const  seqpos)

Rebuild the atoms ( like HN(seqpos), OC(seqpos+1) ) that are dependent on the polymer bond between seqpos and seqpos+1.

rebuilds the atoms that are dependent on the bond between seqpos an seqpos+1 for their torsion offset

Referenced by append_polymer_residue_after_seqpos(), append_residue_by_bond(), core::conformation::insert_ideal_bonds_at_polymer_junction(), insert_ideal_geometry_at_polymer_bond(), and prepend_polymer_residue_before_seqpos().

void core::conformation::Conformation::rebuild_polymer_bond_dependent_atoms ( Size const  seqpos,
int const  upper_lower 
)
private
void core::conformation::Conformation::rebuild_residue_connection_dependent_atoms ( Size const  seqpos,
Size const  connid 
)
Note
This could be rewritten to avoid a refold using set_bond_angle, etc might be safer since by-xyz ignores possibility of propagating dependencies from the moving atoms...

References core::chemical::AtomICoor::build(), core::chemical::AtomICoor::depends_on_residue_connection(), core::conformation::Residue::icoor(), core::conformation::Residue::natoms(), residue_(), set_xyz(), and update_residue_coordinates().

Referenced by insert_ideal_geometry_at_residue_connection().

void core::conformation::Conformation::receive_observers_from ( Conformation const &  src)

fire a ConnectionEvent::TRANSFER to transfer observers from some source Conformation

Parameters
srcTake observers from this source Conformation.
Remarks
Only observers that properly honor the TRANSFER event by re-attaching themselves to 'this' Conformation will be transferred.

References notify_connection_obs(), and core::conformation::signals::ConnectionEvent::TRANSFER.

void core::conformation::Conformation::rederive_chain_endings ( )
private
void core::conformation::Conformation::rederive_chain_ids ( )
private
void core::conformation::Conformation::replace_residue ( Size const  seqpos,
Residue const &  new_rsd_in,
bool const  orient_backbone 
)
virtual
void core::conformation::Conformation::replace_residue ( Size const  seqpos,
Residue const &  new_rsd,
utility::vector1< std::pair< std::string, std::string > > const &  atom_pairs 
)
virtual

funtion to replace a residue based on superposition on

function to replace a residue based on superposition on the specified input atom pairs NOTE: at the moment, only superposition on 3 atoms works Fires an IdentityEvent signal.

the specified input atom pairs NOTE: at the moment, only superposition on 3 atoms works

References core::conformation::Residue::orient_onto_residue(), replace_residue(), and residues_.

void core::conformation::Conformation::reset_chain_endings ( )

Resets chain data so that the Conformation is marked as a single chain.

References chain_endings_, and rederive_chain_ids().

Referenced by protocols::domain_assembly::AssembleLinkerMover::apply(), and protocols::fldsgn::CircularPermutation::apply().

void core::conformation::Conformation::reset_move_data ( )

forget all the structure modifications

called after domain map information is transferred to the Energies class

References dof_moved_, core::id::AtomID_Map< T >::fill_with(), structure_moved_, and xyz_moved_.

void core::conformation::Conformation::reset_structure_moved ( ) const
inline

reset the structure_moved_ bool

References structure_moved_.

Residue const& core::conformation::Conformation::residue ( Size const  seqpos) const
inline

access one of the residues; this access is inlined, since otherwise it shows up in the profiler. This will call non-inlined refold methods if necessary.

update coordinates and torsions for this and all other residues before allowing read access

References residue_coordinates_need_updating_, residue_torsions_need_updating_, residues_, size(), update_residue_coordinates(), and update_residue_torsions().

Referenced by core::conformation::add_variant_type_to_conformation_residue(), core::conformation::annotated_atom_graph_from_conformation(), protocols::protein_interface_design::movers::AddSidechainConstraintsToHotspots::apply(), protocols::protein_interface_design::filters::FilterScanFilter::apply(), protocols::protein_interface_design::movers::PlacementAuctionMover::apply(), protocols::loops::loop_closure::kinematic_closure::KinematicMover::apply(), protocols::pockets::PlaidFingerprint::apply_rotation_offset_to_pose_(), core::conformation::atom_graph_from_conformation(), bonded_neighbor_all_res(), protocols::pockets::PlaidFingerprint::calculate_ligand_CoM(), core::conformation::change_cys_state(), protocols::simple_filters::ResidueBurialFilter::compute(), protocols::simple_filters::SidechainRmsdFilter::compute(), protocols::simple_filters::ResidueDistanceFilter::compute(), protocols::protein_interface_design::filters::AverageDegreeFilter::compute(), protocols::enzdes::LigBurialFilter::compute(), protocols::pockets::PlaidFingerprint::compute_ligand_natoms(), protocols::star::copy_residues(), copy_segment(), debug_residue_torsions(), detect_bonds(), core::conformation::symmetry::SymmetricConformation::detect_disulfides(), detect_disulfides(), detect_pseudobonds(), core::scoring::constraints::AtomPairConstraint::dist(), core::conformation::disulfide_bonds(), protocols::pockets::PlaidFingerprint::dump_oriented_pose_and_fp_to_pdb(), protocols::viewer::dump_residue_kinemage(), protocols::viewer::dump_structure_kinemage(), fix_disulfides(), core::conformation::form_disulfide(), protocols::pockets::DelphiElectrostatics::get_electrostatics_energy(), core::pose::get_hash_excluding_chain(), core::pose::get_hash_from_chain(), core::pose::get_sha1_hash_excluding_chain(), core::conformation::symmetry::SymmetricConformation::get_upstream_vrt(), protocols::pockets::PocketGrid::getRelaxResidues(), core::conformation::idealize_position(), core::conformation::symmetry::SymmetricConformation::insert_conformation_by_jump(), insert_conformation_by_jump(), core::conformation::insert_ideal_bonds_at_polymer_junction(), core::conformation::insert_ideal_mainchain_bonds(), core::conformation::is_disulfide_bond(), core::conformation::is_ideal_position(), core::scoring::mm::MMBondAngleResidueTypeParamSet::lookup(), protocols::pockets::PlaidFingerprint::move_ligand_(), protocols::pockets::PocketGrid::move_pose_to_standard_orie(), protocols::loops::loop_closure::kinematic_closure::KinematicMover::perform_bump_check(), protocols::pockets::PlaidFingerprint::PlaidFingerprint(), protocols::pockets::PocketConstraint::PocketConstraint(), core::conformation::print_atom(), protocols::viewer::print_node(), core::conformation::symmetry::SymmetricConformation::recalculate_transforms(), core::conformation::symmetry::recenter(), core::conformation::remove_variant_type_from_conformation_residue(), core::conformation::replace_conformation_residue_copying_existing_coordinates(), core::scoring::constraints::ConformationXYZ::residue(), core::conformation::symmetry::residue_center_of_mass(), core::conformation::residue_point_graph_from_conformation(), core::conformation::symmetry::return_nearest_residue(), protocols::pockets::PlaidFingerprint::rmsd(), sequence_matches(), core::conformation::symmetry::set_fold_tree_from_symm_data(), protocols::pockets::PocketConstraint::set_target_res(), protocols::pockets::PocketConstraint::set_target_res_pdb(), protocols::star::setup_constraints(), protocols::medal::setup_coordinate_constraints(), core::conformation::symmetry::setup_symmetric_conformation(), protocols::protein_interface_design::movers::PlaceStubMover::StubMinimize(), protocols::simple_filters::RelativePoseFilter::thread_seq(), torsion(), and core::conformation::ConformationKinWriter::write_coords().

Residue const& core::conformation::Conformation::residue_ ( Size const  seqpos) const
inlineprivate

Returns a residue without triggering coordinate/torsion update Use with care. Useful inside torsion/coordinate setters where we want chemical info about a given residue but don't want to trigger the coordinate/torsion updates that go along with a call to residue(seqpos)

References residues_, and size().

Referenced by append_polymer_residue_after_seqpos(), append_residue_by_bond(), backbone_torsion_angle_atoms(), detect_pseudobonds(), fill_missing_atoms(), get_torsion_angle_atom_ids(), insert_polymer_residue(), insert_residue_by_jump(), jump_atom_id(), prepend_polymer_residue_before_seqpos(), rebuild_polymer_bond_dependent_atoms(), rebuild_residue_connection_dependent_atoms(), and set_polymeric_connection().

chemical::ResidueType const& core::conformation::Conformation::residue_type ( Size const  seqpos) const
inline
void core::conformation::Conformation::residues_append ( Residue const &  new_rsd,
bool const  start_new_chain 
)
private

PRIVATE: wrap direct access to the Residues container for appending

Warning
Since this is the innermost routine when replacing a residue, it does not fire any signals to ensure that observer access to the residues container does not trigger an atom tree refold prematurely.

References core::conformation::Residue::clone(), dof_moved_, core::conformation::Residue::natoms(), rederive_chain_endings(), rederive_chain_ids(), residues_, core::id::AtomID_Map< T >::resize(), secstruct_, structure_moved_, core::conformation::TR(), update_polymeric_connection(), and xyz_moved_.

Referenced by append_residue().

void core::conformation::Conformation::residues_delete ( Size const  seqpos)
private

PRIVATE: wrap direct access to the Residues container for replacement also handles redimensioning and setting of the _moved arrays and updating of sequence numbers

Warning
Since this is the innermost routine when replacing a residue, it does not fire any signals to ensure that observer access to the residues container does not trigger an atom tree refold prematurely.

References rederive_chain_endings(), rederive_chain_ids(), residues_, secstruct_, update_polymeric_connection(), and update_sequence_numbering().

Referenced by delete_polymer_residue(), delete_residue_range_slow(), and delete_residue_slow().

void core::conformation::Conformation::residues_insert ( Size const  seqpos,
Residue const &  new_rsd,
bool const  use_lower_chain = false,
bool const  new_chain = false 
)
private

PRIVATE: wrap direct access to the Residues container for replacement also handles redimensioning and setting of the _moved arrays and updating of sequence numbers

Warning
Since this is the innermost routine when replacing a residue, it does not fire any signals to ensure that observer access to the residues container does not trigger an atom tree refold prematurely.

References core::conformation::Residue::clone(), dof_moved_, core::conformation::Residue::name(), core::conformation::Residue::natoms(), rederive_chain_endings(), residues_, secstruct_, structure_moved_, update_polymeric_connection(), update_sequence_numbering(), and xyz_moved_.

Referenced by insert_polymer_residue(), and insert_residue_by_jump().

void core::conformation::Conformation::residues_replace ( Size const  seqpos,
Residue const &  new_rsd 
)
private

wrap direct access to the Residues container

PRIVATE: wrap direct access to the Residues container for replacement also handles redimensioning and setting of the _moved arrays

Warning
Since this is the innermost routine when replacing a residue, it does not fire any signals to ensure that observer access to the residues container does not trigger an atom tree refold prematurely.

References core::conformation::Residue::clone(), dof_moved_, core::conformation::Residue::natoms(), residues_, structure_moved_, and xyz_moved_.

Referenced by replace_residue().

void core::conformation::Conformation::safely_append_polymer_residue_after_seqpos ( Residue const &  new_rsd,
Size const  seqpos,
bool const  build_ideal_geometry 
)
void core::conformation::Conformation::safely_prepend_polymer_residue_before_seqpos ( Residue const &  new_rsd,
Size const  seqpos,
bool const  build_ideal_geometry 
)
bool core::conformation::Conformation::same_type_as_me ( Conformation const &  other,
bool  recurse 
) const
virtual
char core::conformation::Conformation::secstruct ( Size const  seqpos) const
inline

Returns the secondary structure the position <seqpos>

Returns
character representing secondary structure; returns 'L' if the requested sequence position is larger than the length in the secondary structure array

References secstruct_.

Referenced by protocols::loophash::LoopHashDiversifier::apply(), protocols::LoopRebuild::fast_ccd_close_loops(), protocols::loops::loop_mover::perturb::fast_ccd_close_loops(), core::scoring::MembranePotential::non_helix_in_membrane_penalty(), core::scoring::methods::EnvEnergy::residue_energy(), and core::scoring::methods::CenPairEnergy::residue_pair_energy().

bool core::conformation::Conformation::sequence_matches ( Conformation const &  other) const

do the names of all residues in this and src match?

Am I composed of the same sequence of ResidueType objects as other? DANGER! Fails, unexpectedly, if a histidine pair has a different tautomerization. tex, 9/12/08 The above comment points out that this method isn't a clearly defined idea, because there are many ways that someone could imagine comparing the a sequence, including:

  • cutpoint variants
  • tautomers
  • disulfides For some applications, it's probably to get strings of the one-letter names of the sequence and compare those instead.

References residue(), size(), and core::conformation::Residue::type().

Referenced by operator=(), and protocols::design_opt::GreedyOptMutationMover::pose_coords_are_same().

void core::conformation::Conformation::set_bond_angle ( AtomID const &  atom1,
AtomID const &  atom2,
AtomID const &  atom3,
Real const  setting 
)
virtual
void core::conformation::Conformation::set_bond_length ( AtomID const &  atom1,
AtomID const &  atom2,
Real const  setting 
)
virtual
void core::conformation::Conformation::set_dof ( DOF_ID const &  id,
Real const  setting 
)
virtual
void core::conformation::Conformation::set_dof_moved ( AtomID const &  id)
inlineprivate
void core::conformation::Conformation::set_dof_moved ( DOF_ID const &  id)
inlineprivate

notify of dof-change

References dof_moved_, residue_coordinates_need_updating_, and structure_moved_.

void core::conformation::Conformation::set_jump ( int const  jump_number,
Jump const &  new_jump 
)
virtual
void core::conformation::Conformation::set_jump ( AtomID const &  id,
Jump const &  new_jump 
)
virtual
void core::conformation::Conformation::set_jump_atom_stub_id ( id::StubID const &  id)

References atom_tree_.

void core::conformation::Conformation::set_jump_now ( int const  jump_number,
Jump const &  new_jump 
)
virtual
void core::conformation::Conformation::set_polymeric_connection ( Size  res_id_lower,
Size  res_id_upper 
)

identify polymeric connections

identify polymeric connections The lower residue connects to the upper residue through its upper_connect connection The upper residue connects to the lower residue through its lower_connect connection

References residue_(), and residues_.

Referenced by update_polymeric_connection().

virtual void core::conformation::Conformation::set_secstruct ( Size const  seqpos,
char const  setting 
)
inlinevirtual

Sets the secondary structure of the position <seqpos> to <setting>

Sets secondary structure character of a sequence position. Will resize the secondary structure array if the requested sequence position is larger than the length of the array.

Reimplemented in core::conformation::symmetry::SymmetricConformation.

References secstruct_.

Referenced by core::conformation::symmetry::SymmetricConformation::set_secstruct().

void core::conformation::Conformation::set_stub_transform ( id::StubID const &  stub_id1,
id::StubID const &  stub_id2,
kinematics::RT const &  target_rt 
)
void core::conformation::Conformation::set_torsion ( TorsionID const &  id,
Real const  setting 
)
virtual
void core::conformation::Conformation::set_torsion_angle ( AtomID const &  atom1,
AtomID const &  atom2,
AtomID const &  atom3,
AtomID const &  atom4,
Real const  setting 
)
virtual
void core::conformation::Conformation::set_xyz ( AtomID const &  id,
PointPosition const &  position 
)
virtual
void core::conformation::Conformation::set_xyz_moved ( AtomID const &  id)
inlineprivate

notify of xyz-change

References residue_torsions_need_updating_, structure_moved_, and xyz_moved_.

Referenced by batch_set_xyz(), and set_xyz().

void core::conformation::Conformation::set_xyz_moved ( utility::vector1< AtomID > const &  ids)
inlineprivate

notify of mutiple-xyz-change

References residue_torsions_need_updating_, structure_moved_, and xyz_moved_.

void core::conformation::Conformation::setup_atom_tree ( )
private
void core::conformation::Conformation::show_residue_connections ( ) const

Show residue connections for debugging purposes.

Show each residue in the conformation and its connections.

References core::conformation::TR().

Referenced by core::conformation::operator<<().

void core::conformation::Conformation::show_residue_connections ( std::ostream &  os) const
Size core::conformation::Conformation::size ( ) const
inline

Returns the number of residues in the Conformation.

References residues_.

Referenced by aa(), core::conformation::annotated_atom_graph_from_conformation(), append_polymer_residue_after_seqpos(), append_residue(), append_residue_by_bond(), append_residue_by_jump(), core::conformation::atom_graph_from_conformation(), protocols::idealize::basic_idealize(), chain_end(), chain_endings(), chains_from_termini(), Conformation(), const_residues(), copy_segment(), debug_residue_torsions(), delete_polymer_residue(), delete_residue_range_slow(), delete_residue_slow(), detect_bonds(), core::conformation::symmetry::SymmetricConformation::detect_disulfides(), detect_disulfides(), detect_pseudobonds(), core::conformation::disulfide_bonds(), protocols::viewer::dump_residue_kinemage(), protocols::viewer::dump_structure_kinemage(), core::scoring::disulfides::FullatomDisulfideEnergy::ensure_lrenergy_container_is_up_to_date(), fill_missing_atoms(), core::conformation::Residue::fill_missing_atoms(), protocols::simple_moves::asym_fold_and_dock::AsymFoldandDockMoveRbJumpMover::find_new_jump_residue(), core::pose::symmetry::find_new_symmetric_jump_residues(), fix_disulfides(), fold_tree(), core::conformation::idealize_position(), in_place_copy(), core::pose::initialize_atomid_map(), core::pose::initialize_atomid_map_heavy_only(), insert_chain_ending(), core::conformation::symmetry::SymmetricConformation::insert_conformation_by_jump(), insert_conformation_by_jump(), core::conformation::insert_ideal_bonds_at_polymer_junction(), core::conformation::insert_ideal_mainchain_bonds(), insert_polymer_residue(), insert_residue_by_jump(), core::conformation::is_ideal_position(), is_residue_typeset(), core::optimization::symmetry::SymAtomTreeMinimizer::make_assymetric_movemap(), core::pose::symmetry::make_symmetric_movemap(), operator=(), prepend_polymer_residue_before_seqpos(), core::conformation::symmetry::process_residue_request(), core::conformation::symmetry::recenter(), rederive_chain_endings(), rederive_chain_ids(), protocols::fibril::reorient_extended_fibril(), residue(), residue_(), core::conformation::residue_point_graph_from_conformation(), residue_type(), sequence_matches(), core::conformation::symmetry::set_fold_tree_from_symm_data(), core::conformation::symmetry::setup_symmetric_conformation(), show_residue_connections(), core::conformation::symmetry::symmetrize_fold_tree(), update_actcoords(), update_domain_map(), update_polymeric_connection(), update_residue_torsions(), update_sequence_numbering(), core::conformation::ConformationKinWriter::write_coords(), and core::chemical::ICoorAtomID::xyz().

bool core::conformation::Conformation::structure_moved ( ) const
inline
kinematics::Stub core::conformation::Conformation::stub_from_id ( id::StubID const &  id) const

References atom_tree_.

Real core::conformation::Conformation::torsion ( TorsionID const &  id) const
Real core::conformation::Conformation::torsion_angle ( AtomID const &  atom1,
AtomID const &  atom2,
AtomID const &  atom3,
AtomID const &  atom4 
) const
void core::conformation::Conformation::unblock_signals ( )

allow signals to be sent

If unblocking after buffering, buffered/held signals will be sent.

References general_obs_hub_, identity_obs_hub_, length_obs_hub_, and xyz_obs_hub_.

void core::conformation::Conformation::update_actcoord ( Size  resid)

References residues_.

void core::conformation::Conformation::update_actcoords ( )

References residues_, and size().

void core::conformation::Conformation::update_domain_map ( DomainMap domain_map) const

Generate a domain_map from the current dof/xyz moved data.

References atom_tree_, dof_moved_, size(), and xyz_moved_.

Referenced by protocols::rna::RNA_LoopCloser::passes_fast_scan().

void core::conformation::Conformation::update_orbital_coords ( Residue rsd) const
void core::conformation::Conformation::update_orbital_coords ( Size  resid)

References residues_.

void core::conformation::Conformation::update_polymeric_connection ( Size const  lower_seqpos)

Update the polymer connection status between lower_seqpos and lower_seqpos+1 based on chainID's and termini.

work in progress

void insert_chemical_chainbreak_between_polymer_residues( Size const lower_seqpos ) { ResidueOP lower_rsd( residues_[ lower_seqpos ] );

the type of the desired variant residue ResidueTypeSet const & rsd_set( lower_rsd->residue_type_set() );

ResidueType const & new_lower_rsd_type ( rsd_set.get_residue_type_with_variant_removed( lower_rsd.type(), UPPER_TERMINUS ) ); ResidueOP new_lower_rsd( ResidueFactory::create_residue( new_lower_rsd_type ) );

}

References core::conformation::Residue::chain(), core::conformation::Residue::is_lower_terminus(), core::conformation::Residue::is_polymer(), residues_, set_polymeric_connection(), and size().

Referenced by protocols::protein_interface_design::movers::copy_hotspot_to_pose(), protocols::forge::methods::cyclize_pose(), protocols::protein_interface_design::movers::PlaceStubMover::place_stub(), protocols::protein_interface_design::movers::PlaceSimultaneouslyMover::place_stubs(), residues_append(), residues_delete(), and residues_insert().

void core::conformation::Conformation::update_residue_coordinates ( ) const
private

Will (if necessary) copy the xyz coordinates from the AtomTree to the Residues being managed Always safe to call. Nothing will happen unless coords_need_updating_ is true.

The AtomTree is responsible for tracking the set of residues whose coordinates need updating, and informs the Conformation object of these residues. The Conformation only updates coordinates for this subset of residues.

References atom_tree_, notify_xyz_obs(), and residue_coordinates_need_updating_.

Referenced by append_polymer_residue_after_seqpos(), append_residue_by_bond(), debug_residue_torsions(), fill_missing_atoms(), fold_tree(), pre_nresidue_change(), prepend_polymer_residue_before_seqpos(), rebuild_polymer_bond_dependent_atoms(), rebuild_residue_connection_dependent_atoms(), and residue().

void core::conformation::Conformation::update_residue_coordinates ( Size const  seqpos,
bool const  fire_signal = true 
) const
private
void core::conformation::Conformation::update_residue_torsions ( ) const
private

Will (if necessary) copy the torsion angles (mainchain/chi) from the AtomTree to the Residues being managed Always safe to call. Nothing will happen unless torsions_need_updating_ is true.

References notify_xyz_obs(), residue_torsions_need_updating_, residues_, and size().

Referenced by debug_residue_torsions(), residue(), and setup_atom_tree().

void core::conformation::Conformation::update_residue_torsions ( Size const  seqpos,
bool const  fire_signal = true 
) const
private
void core::conformation::Conformation::update_sequence_numbering ( Size const  new_size,
utility::vector1< Size > const &  old2new 
)
private

remap *_moved arrays, sequence numbering in the residues_ arrays, etc, after insertion or deletion of rsds

private need to update:

  1. seqpos of Residues, residue_connection_partners_ info in Residues
  2. xyz_moved, dof_moved

References dof_moved_, residues_, size(), core::id::AtomID_Map< T >::update_sequence_numbering(), and xyz_moved_.

Referenced by insert_conformation_by_jump(), residues_delete(), and residues_insert().

kinematics::Stub core::conformation::Conformation::upstream_jump_stub ( int const  jump_number) const
PointPosition const & core::conformation::Conformation::xyz ( AtomID const &  id) const

Member Data Documentation

AtomTreeOP core::conformation::Conformation::atom_tree_
private
utility::vector1< Size > core::conformation::Conformation::chain_endings_
private

ResidueCOPs const_residues_; // mirrors residues_ allowing const access – this will be reinstated soon.

chain number for each position conformation is in charge of making sure that the Residue chain ID's and the chain_endings_ vector stay in sync.

Referenced by chain_begin(), chain_end(), chain_endings(), chains_from_termini(), clear(), Conformation(), delete_chain_ending(), in_place_copy(), insert_chain_ending(), insert_conformation_by_jump(), num_chains(), operator=(), rederive_chain_endings(), rederive_chain_ids(), and reset_chain_endings().

utility::signals::BufferedSignalHub< void, ConnectionEvent > core::conformation::Conformation::connection_obs_hub_
mutableprivate

ConnectionEvent observers.

Remarks
Notification only occurs when there is a change in the state of the connection between observers and the Conformation object, e.g. destruction or transfer of the connection.

Referenced by attach_connection_obs(), clear_observers(), detach_connection_obs(), and notify_connection_obs().

AtomID_Mask core::conformation::Conformation::dof_moved_
private

book-keeping array for energy evaluations

store which DOF's have changed since the last call to reset_move_data note that we are not currently differentiating dof's from the same atom

Referenced by append_polymer_residue_after_seqpos(), clear(), Conformation(), in_place_copy(), insert_conformation_by_jump(), operator=(), prepend_polymer_residue_before_seqpos(), reset_move_data(), residues_append(), residues_insert(), residues_replace(), set_dof_moved(), update_domain_map(), and update_sequence_numbering().

FoldTreeOP core::conformation::Conformation::fold_tree_
private
utility::signals::PausableSignalHub< void, GeneralEvent > core::conformation::Conformation::general_obs_hub_
mutableprivate

GeneralEvent observers.

Remarks
GeneralEvent observers will be notified whenever any signal derived from GeneralEvent occurs.

Referenced by attach_general_obs(), block_signals(), blocking_signals(), buffer_signals(), buffering_signals(), clear_observers(), debug_pause(), detach_general_obs(), notify_general_obs(), and unblock_signals().

utility::signals::BufferedSignalHub< void, IdentityEvent > core::conformation::Conformation::identity_obs_hub_
mutableprivate
utility::signals::BufferedSignalHub< void, LengthEvent > core::conformation::Conformation::length_obs_hub_
mutableprivate
bool core::conformation::Conformation::residue_coordinates_need_updating_
mutableprivate
bool core::conformation::Conformation::residue_torsions_need_updating_
mutableprivate
ResidueOPs core::conformation::Conformation::residues_
protected
utility::vector1< char > core::conformation::Conformation::secstruct_
private
bool core::conformation::Conformation::structure_moved_
mutableprivate
AtomID_Mask core::conformation::Conformation::xyz_moved_
private
utility::signals::BufferedSignalHub< void, XYZEvent > core::conformation::Conformation::xyz_obs_hub_
mutableprivate

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