![]() |
Rosetta Core
2014.16.56682
|
an atom which are bonded to its parentt, derived from Atom_ More...
#include <BondedAtom.hh>
Public Member Functions | |
| BondedAtom () | |
| virtual void | dfs (AtomDOFChangeSet &changeset, ResidueCoordinateChangeList &res_change_list, Size const start_atom_index) const |
| Perform a depth-first traversal of the tree that would be effected by a DOF change from this atom. Stop at atoms that have already been traversed. Will recurse on younger siblings if a phi on this atom has changed. More... | |
| virtual void | update_xyz_coords () |
| The atom must retrieve an appropriate stub from its parent; it is the root of the subtree being refolded. Valid only if this atom is the maximal root of a subtree requiring coordinate updates – if any ancestor of this atom requires a coordinate update, then the Stub this atom generates for itself will be invalid. More... | |
| virtual void | update_xyz_coords (Stub &stub) |
| update cartesian coordinates for this atom from its input stub and internal cooridnates More... | |
| virtual void | update_internal_coords (Stub &stub, bool const recursive=true) |
| update internal coordinates for this atom from its xyz position and input stub More... | |
| virtual void | update_stub (Stub &stub) const |
| update the stub without actually updating coordinates More... | |
| virtual void | set_dof (DOF_Type const type, core::Real const value) |
| set degrees of freedom (internal coordinates) More... | |
| virtual void | set_dof (DOF_Type const type, core::Real const value, AtomDOFChangeSet &changeset) |
| set degrees of freedom (internal coordinates). For use in output-sensitive refold subroutine. More... | |
| virtual core::Real | dof (DOF_Type const type) const |
| get degrees of freedom More... | |
| virtual Jump const & | jump () const |
| abort if attempt to get jump for a bonded atom More... | |
| virtual void | jump (Jump const &) |
| abort if attempt to set jump for a bonded atom More... | |
| virtual void | jump (Jump const &, AtomDOFChangeSet &) |
| abort if attempt to set jump for a bonded atom More... | |
| virtual AtomOP | clone (AtomAP parent_in, AtomPointer2D &atom_pointer) const |
| copy this atom More... | |
| virtual void | setup_min_map (DOF_ID &last_torsion, DOF_ID_Mask const &allow_move, MinimizerMapBase &min_map) const |
| for minimizing,add DOF(PHI,THETA,D) for a BondedAtom into the MinimizerMap More... | |
| virtual void | get_dof_axis_and_end_pos (Vector &axis, Position &end_pos, DOF_Type const type) const |
| get rotation axis and end_pos for a BondedAtom. More... | |
| virtual bool | is_jump () const |
| bonded atom is a jump? of course not!!! More... | |
| virtual bool | keep_1st_child_pos () const |
| when other atoms are inserted insert after 1st child if available. –> this enables us to keep a stub of Downstream Jump atoms inside a single residue More... | |
| virtual bool | keep_dof_fixed (DOF_Type const type) const |
| whether a DOF for this atom should be fixed? More... | |
| virtual void | copy_coords (Atom const &src) |
| copy DOFs, xyz's More... | |
| AtomCOP | stub_atom1 () const |
| stub_atom1 of a bonded atom More... | |
| AtomCOP | stub_atom2 () const |
| stub_atom2 of a bonded atom More... | |
| AtomCOP | stub_atom3 () const |
| stub_atom3 of a bonded atom More... | |
Public Member Functions inherited from core::kinematics::tree::Atom_ | |
| virtual | ~Atom_ () |
| Destructor. More... | |
| virtual void | set_weak_ptr_to_self (AtomAP weak_ptr) |
| Set the weak-pointer-to-self for this atom. Must be called after the Atom is created and put inside of an owning_ptr. Required for atoms to be able to hold pointers to their parents: parents must give child atoms weak pointers to themselves. More... | |
| void | update_internal_coords (bool const recursive) |
| update internal coords of this atom and its offspring atoms (if recursive) More... | |
| Real | dihedral_between_bonded_children (AtomCOP child1, AtomCOP child2) const |
| dihedral angle between two bonded children to this atom More... | |
| void | show () const |
| dump out AtomID for this atom, its parent and all its offspring More... | |
| void | show (int const &n_level) const |
| dump out AtomID for this atom, its parent and all its offspring up to n_level More... | |
| void | update_domain_map (int ¤t_color, int &biggest_color, DomainMap &domain_map, AtomID_Mask const &dof_moved, AtomID_Mask const &atom_moved) const |
| update domain map More... | |
| Atoms_ConstIterator | atoms_begin () const |
| starting const iterator of the children atom list More... | |
| Atoms_ConstIterator | atoms_end () const |
| ending const iterator of the children atom list More... | |
| Atoms_Iterator | atoms_begin () |
| starting iterator of the children atom list More... | |
| Atoms_Iterator | atoms_end () |
| ending iterator of the children atom list More... | |
| Size | n_atom () const |
| number of children atoms More... | |
| void | append_atom (AtomOP) |
| append an atom as this atom's child More... | |
| void | delete_atom (AtomOP) |
| remove an atom from this atom's children More... | |
| void | insert_atom (AtomOP) |
| insert an atom as this atom's child More... | |
| void | insert_atom (AtomOP, int const ) |
| tries to insert at the position specified by the second argument More... | |
| void | replace_atom (AtomOP const old_atom, AtomOP const new_atom) |
| replace the old atom by the new atom in the child atom list More... | |
| AtomCOP | get_nonjump_atom (Size const i) const |
| get non-jump atom by its index from the children atoms list More... | |
| Size | n_children () const |
| number of the child atoms More... | |
| Size | n_nonjump_children () const |
| number of the non-jump child atoms More... | |
| AtomCOP | child (Size const k) const |
| get a child atom by index (const method) More... | |
| AtomOP | child (Size const k) |
| get a child atom by index More... | |
| Size | child_index (AtomCOP child) const |
| the atom-index of this child More... | |
| bool | downstream (AtomCOP atom1) const |
| whether atom1 is downstream of this atom. More... | |
| AtomID const & | id () const |
| Atom identifier. More... | |
| void | id (AtomID const &id_in) |
| AtomID assignment. More... | |
| AtomID const & | atom_id () const |
| Atom identifier. More... | |
| Position const & | position () const |
| Position. More... | |
| void | position (Position const &position_a) |
| Position assignment. More... | |
| Position const & | xyz () const |
| Position. More... | |
| void | xyz (Position const &position_a) |
| Position assignment. More... | |
| Length const & | x () const |
| x coordinate More... | |
| Length const & | y () const |
| y coordinate More... | |
| Length const & | z () const |
| z coordinate More... | |
| Length | distance (Atom const &atom) const |
| Distance to an Atom. More... | |
| Length | distance_squared (Atom const &atom) const |
| Distance squared to an Atom. More... | |
| AtomCOP | parent () const |
| Parent atom pointer. More... | |
| void | parent (AtomAP parent_in) |
| parent assignment More... | |
| AtomOP | parent () |
| Parent atom pointer. More... | |
| Stub | get_stub () const |
| stub centerd at this atom More... | |
| Stub | get_input_stub () const |
| stub used to build this atom More... | |
| AtomID const & | stub_atom1_id () const |
| stub atom1 's id More... | |
| AtomID const & | stub_atom2_id () const |
| stub atom2's id More... | |
| AtomID const & | stub_atom3_id () const |
| stub atom3's id More... | |
| AtomCOP | input_stub_atom0 () const |
| the center of the input stub for refolding this atom More... | |
| AtomCOP | input_stub_atom1 () const |
| the first atom to construct the input stub for refolding this atom More... | |
| AtomCOP | input_stub_atom2 () const |
| the second atom to construct the input stub for refolding this atom More... | |
| AtomCOP | input_stub_atom3 () const |
| the third atom to construct the input stub for refolding this atom More... | |
| AtomID const & | input_stub_atom0_id () const |
| input stub atom0's id More... | |
| AtomID const & | input_stub_atom1_id () const |
| input stub atom1's id More... | |
| AtomID const & | input_stub_atom2_id () const |
| input stub atom2's id More... | |
| AtomID const & | input_stub_atom3_id () const |
| input stub atom3's id More... | |
| AtomCOP | previous_sibling () const |
| routines for navigating the tree find the sibling atom before itself More... | |
| AtomCOP | previous_child (AtomCOP child) const |
| find the child atom before this child in the list More... | |
| AtomOP | next_child (AtomCOP child) |
| find the child atom after this child in the list More... | |
| bool | stub_defined () const |
| whether a Stub can be defined for this atom More... | |
Public Member Functions inherited from core::kinematics::tree::Atom | |
| virtual | ~Atom () |
| Destructor. More... | |
Private Types | |
| typedef Atom_ | Super |
Private Attributes | |
| Real | phi_ |
| DOF properties of a bonded atom. More... | |
| Real | theta_ |
| Real | d_ |
| bool | dof_change_propagates_to_younger_siblings_ |
| Track whether a dof change from this node (since the last update_xyz) induces a coordinate change for this node's younger siblings. More... | |
Additional Inherited Members | |
Public Types inherited from core::kinematics::tree::Atom | |
| typedef PointPosition | Position |
| typedef utility::vector0< AtomOP > | Atoms |
| typedef Atoms::ConstIterator | Atoms_ConstIterator |
| typedef Atoms::Iterator | Atoms_Iterator |
| typedef numeric::xyzMatrix< Real > | Matrix |
| typedef id::DOF_Type | DOF_Type |
| typedef id::DOF_ID | DOF_ID |
| typedef id::AtomID | AtomID |
| typedef id::AtomID_Mask | AtomID_Mask |
| typedef id::DOF_ID_Mask | DOF_ID_Mask |
| typedef void | iterator_category |
| typedef void | difference_type |
Protected Member Functions inherited from core::kinematics::tree::Atom_ | |
| Atom_ () | |
| Default constructor. More... | |
| Atom_ (Atom_ const &atom) | |
| Copy constructor. More... | |
| Atom_ & | operator= (Atom_ const &atom) |
| Copy assignment. More... | |
| AtomAP | this_weak_ptr () |
| Read access to the replacement "this" pointer. More... | |
| AtomCAP | this_weak_ptr () const |
| Read access to the replacement "this" pointer. More... | |
| void | update_child_torsions (AtomOP const child) |
| when subtrees have changed their coordinates More... | |
| Atoms_ConstIterator | nonjump_atoms_begin () const |
| constant iterator of the first non-jump (bonded) atom in the vector of children atoms. More... | |
| Atoms_Iterator | nonjump_atoms_begin () |
| iterator of the first non-jump (bonded) atom in the vector of children atoms. More... | |
| void | abort_bad_call () const |
| helper function to abort if something is wrong in atom tree More... | |
| virtual void | transform_Ax_plus_b_recursive (Matrix const &A, Vector const &b, ResidueCoordinateChangeList &res_change_list) |
| Transform atom and children by linear transformation. More... | |
| void | get_path_from_root (utility::vector1< AtomCOP > &path) const |
| bool | atom_is_on_path_from_root (AtomCOP atm) const |
| void | note_dof_change (AtomDOFChangeSet &changset) |
| Records this atom as having a changed DOF in the input list of Atoms with changed DOFs. For use in output-sensitive refold subroutine. More... | |
| void | note_xyz_uptodate () |
| To ensure proper function of the output-senstive refold subroutine, derived classes must invoke this function during their update_xyz_coord subroutines. More... | |
| Size | dof_refold_index () const |
| read access for derived classes More... | |
Protected Member Functions inherited from core::kinematics::tree::Atom | |
| Atom () | |
| Default constructor. More... | |
| Atom (Atom const &) | |
| Copy constructor. More... | |
| Atom & | operator= (Atom const &) |
| Copy assignment. More... | |
Protected Attributes inherited from core::kinematics::tree::Atom_ | |
| AtomAP | this_weak_ptr_ |
| Each atom must hold a weak pointer to itself, and this weak pointer must be given to the atom at its construction. More... | |
| AtomID | atom_id_ |
| Atom ID. More... | |
| AtomAP | parent_ |
| Associated conformation Atom. More... | |
| PointPosition | position_ |
| xyz More... | |
| Atoms | atoms_ |
| Children atom pointers. More... | |
an atom which are bonded to its parentt, derived from Atom_
See AtomTree overview and concepts for details.
|
inline |
Referenced by clone().
|
virtual |
copy this atom
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::atoms_begin(), core::kinematics::tree::Atom_::atoms_end(), BondedAtom(), core::id::D, dof(), dof_change_propagates_to_younger_siblings_, core::kinematics::tree::Atom_::id(), core::chemical::PHI, core::kinematics::tree::Atom_::position(), and core::chemical::THETA.
|
virtual |
copy DOFs, xyz's
copy DOFs, xyz's. this asserts equal topology. do recursively to copy for all its children
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::atom_id(), core::kinematics::tree::Atom::atom_id(), core::kinematics::tree::Atom_::atoms_begin(), core::kinematics::tree::Atom_::atoms_end(), core::kinematics::tree::Atom::child(), core::id::D, d_, core::kinematics::tree::Atom::dof(), core::kinematics::tree::Atom_::n_children(), core::kinematics::tree::Atom::n_children(), core::kinematics::tree::Atom_::operator=(), core::chemical::PHI, phi_, core::chemical::THETA, and theta_.
|
virtual |
Perform a depth-first traversal of the tree that would be effected by a DOF change from this atom. Stop at atoms that have already been traversed. Will recurse on younger siblings if a phi on this atom has changed.
Invokes Atom_ dfs function before, optionally recursing to younger siblings should those younger siblings be effected by a DOF change on this node (e.g. phi_ change).
Reimplemented from core::kinematics::tree::Atom_.
References core::kinematics::tree::Atom_::dfs(), dof_change_propagates_to_younger_siblings_, core::kinematics::tree::Atom_::dof_refold_index(), and core::kinematics::tree::Atom_::parent_.
get degrees of freedom
Implements core::kinematics::tree::Atom.
References core::id::D, d_, core::chemical::PHI, phi_, core::chemical::THETA, theta_, and utility_exit.
Referenced by clone().
|
virtual |
get rotation axis and end_pos for a BondedAtom.
consider simple case like, A->B->C->D and we want to know the change of D position with respect to the rotation along B->C bond( dr/dphi). In this case, Eab is the unit vector along B->C, end_positon is C, and dr/dphi is given as Eab x (D-C).
For B->C bond rotation is the DOF(PHI) of Atom D, so end_pos is input_stub.v which is the position of Atom C and axis is input_stub.M.col(1) which is the unit vector pointing from B to C.
For DOF(THETA) of Atom D, it is a rotation around a unit vector (ending at C) which is perpendicular to B->C->D plane. So the end_pos is the position of Atom C and the axix is the my_stub.M.col(3). For DOF(D) of Atom D, it is a translation along C->D axis and that is my_stub.M.col(1)
Implements core::kinematics::tree::Atom.
References numeric::xyzMatrix< class >::col(), core::id::D, core::kinematics::tree::Atom_::get_input_stub(), core::kinematics::tree::Atom_::get_stub(), core::kinematics::Stub::M, core::chemical::PHI, core::chemical::THETA, utility_exit, and core::kinematics::Stub::v.
|
inlinevirtual |
bonded atom is a jump? of course not!!!
Implements core::kinematics::tree::Atom.
Referenced by keep_dof_fixed(), and stub_atom3().
|
inlinevirtual |
abort if attempt to get jump for a bonded atom
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::abort_bad_call(), and core::kinematics::tree::BOGUS_JUMP.
|
inlinevirtual |
abort if attempt to set jump for a bonded atom
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::abort_bad_call().
|
inlinevirtual |
abort if attempt to set jump for a bonded atom
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::abort_bad_call().
|
inlinevirtual |
when other atoms are inserted insert after 1st child if available. –> this enables us to keep a stub of Downstream Jump atoms inside a single residue
Implements core::kinematics::tree::Atom.
whether a DOF for this atom should be fixed?
Reimplemented from core::kinematics::tree::Atom_.
References core::id::D, is_jump(), core::kinematics::tree::Atom_::parent(), core::chemical::PHI, core::kinematics::tree::Atom_::stub_atom2_id(), core::kinematics::tree::Atom_::stub_atom3_id(), core::chemical::THETA, and utility_exit.
Referenced by setup_min_map(), update_internal_coords(), and update_xyz_coords().
|
virtual |
set degrees of freedom (internal coordinates)
Implements core::kinematics::tree::Atom.
References core::id::D, d_, core::id::PHI, phi_, core::id::THETA, and theta_.
Referenced by set_dof().
|
virtual |
set degrees of freedom (internal coordinates). For use in output-sensitive refold subroutine.
calls set_dof non-polymorphically: assumption is that BondedAtom is not subclassed, or, that if it is, that the derived class implements this overloaded set_dof function.
Implements core::kinematics::tree::Atom.
References dof_change_propagates_to_younger_siblings_, core::kinematics::tree::Atom_::note_dof_change(), core::id::PHI, and set_dof().
|
virtual |
for minimizing,add DOF(PHI,THETA,D) for a BondedAtom into the MinimizerMap
last torsion is the torsion( Phi for BondedAtom and RB for JumpAtom) of the parent atom or previous bonded sibling. Since BondedAtom's PHI is dependent on its previous sibling BondedAtom,this may modify last_torsion, if our bond torsion angle is changing and this atom has other sibling atoms after itself. recursively done all its offspring
Implements core::kinematics::tree::Atom.
References core::kinematics::MinimizerMapBase::add_atom(), core::kinematics::MinimizerMapBase::add_torsion(), core::kinematics::tree::Atom_::atoms_begin(), core::kinematics::tree::Atom_::atoms_end(), core::id::D, keep_dof_fixed(), core::chemical::PHI, core::id::phi_torsion(), and core::chemical::THETA.
|
inlinevirtual |
|
inlinevirtual |
stub_atom2 of a bonded atom
it is its parent
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::parent().
Referenced by stub_atom3().
|
inlinevirtual |
stub_atom3 of a bonded atom
Implements core::kinematics::tree::Atom.
References is_jump(), core::kinematics::tree::Atom_::parent(), stub_atom2(), and core::kinematics::tree::Atom_::stub_defined().
|
virtual |
update internal coordinates for this atom from its xyz position and input stub
starting from the input stub, calculate the internal coordinates d_, theta_ and phi_ for this atom. If recursive is true, obtain the new stub centered at this atom and pass the new stub to all its children atoms to update their internal coordinates recursively.
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::atoms_begin(), core::kinematics::tree::Atom_::atoms_end(), numeric::xyzMatrix< class >::col_x(), numeric::xyzMatrix< class >::col_y(), numeric::xyzMatrix< class >::col_z(), d_, dot(), core::kinematics::Stub::is_orthogonal(), keep_dof_fixed(), core::kinematics::Stub::M, phi_, numeric::constants::d::pi, pi, core::kinematics::tree::Atom_::position(), core::chemical::THETA, theta_, core::kinematics::Stub::v, w(), core::kinematics::tree::Atom_::x(), x_rotation_matrix_radians(), numeric::x_rotation_matrix_radians(), core::kinematics::tree::Atom_::y(), core::kinematics::tree::Atom_::z(), numeric::z_rotation_matrix_radians(), and z_rotation_matrix_radians().
|
virtual |
update the stub without actually updating coordinates
pass out the stub we would pass out if we were actually updating coords or DOFs, which is rotate the stub around its x axis by phi_.
Implements core::kinematics::tree::Atom.
References core::kinematics::Stub::M, phi_, and numeric::x_rotation_matrix_radians().
|
virtual |
The atom must retrieve an appropriate stub from its parent; it is the root of the subtree being refolded. Valid only if this atom is the maximal root of a subtree requiring coordinate updates – if any ancestor of this atom requires a coordinate update, then the Stub this atom generates for itself will be invalid.
Relies on get_input_stub, which will use the coordinates of this atom's ancestors to build a stub. If this function has been invoked by AtomTree update_xyz_coords(), then these coordinates are guaranteed correct, since this atom is the root of a tree which needs to be refolded. Ergo, nothing in the tree above this atom needs to be refolded.
Reimplemented from core::kinematics::tree::Atom_.
References core::kinematics::tree::Atom_::atoms_end(), dof_change_propagates_to_younger_siblings_, core::kinematics::tree::Atom_::get_input_stub(), core::kinematics::tree::Atom_::parent(), and core::kinematics::tree::Atom_::parent_.
|
virtual |
update cartesian coordinates for this atom from its input stub and internal cooridnates
starting from the input stub, calculate xyz position of this atom from its internal coordinates d_, theta_ and phi_. If recusrvie is true, obtain the new stub centered at this atom and pass the new stub to all its children atoms to update their xyz positions recursively.
Implements core::kinematics::tree::Atom.
References core::kinematics::tree::Atom_::atoms_begin(), core::kinematics::tree::Atom_::atoms_end(), numeric::xyzMatrix< class >::col_x(), d_, dof_change_propagates_to_younger_siblings_, core::kinematics::Stub::is_orthogonal(), keep_dof_fixed(), core::kinematics::Stub::M, core::kinematics::tree::Atom_::note_xyz_uptodate(), phi_, numeric::constants::d::pi, pi, core::kinematics::tree::Atom_::position(), core::chemical::THETA, theta_, core::kinematics::Stub::v, numeric::x_rotation_matrix_radians(), x_rotation_matrix_radians(), z_rotation_matrix_radians(), and numeric::z_rotation_matrix_radians().
|
private |
Referenced by copy_coords(), dof(), set_dof(), update_internal_coords(), and update_xyz_coords().
|
private |
Track whether a dof change from this node (since the last update_xyz) induces a coordinate change for this node's younger siblings.
Referenced by clone(), dfs(), set_dof(), and update_xyz_coords().
|
private |
DOF properties of a bonded atom.
Referenced by copy_coords(), dof(), set_dof(), update_internal_coords(), update_stub(), and update_xyz_coords().
|
private |
Referenced by copy_coords(), dof(), set_dof(), update_internal_coords(), and update_xyz_coords().
1.8.7