Rosetta 3.4
Namespaces | Classes | Typedefs | Enumerations | Functions
core::conformation Namespace Reference

Namespaces

namespace  orbitals
namespace  RotamerSetCacheableDataType
namespace  signals
namespace  symmetry

Classes

class  AbstractRotamerTrie
class  Atom
 A simple object with atom's position and its chemical type. More...
class  AtomGraphVertexData
class  AtomGraphEdgeData
class  Conformation
 A container of Residues and the kinematics to manage them. More...
struct  DefaultCubeHash
 uses default boost::hash combine to hash Cubes More...
class  PointGraphVertexData
class  PointGraphEdgeData
class  PseudoBond
class  PseudoBondCollection
class  Residue
 Instance Residue class, used for placed residues and rotamers. More...
class  ResidueFactory
 a collection of functions making a single residue More...
class  ResidueKinWriter
class  ConformationKinWriter
class  ResidueMatcher
class  WatsonCrickResidueMatcher
class  RotamerSetBase

Typedefs

typedef
utility::pointer::owning_ptr
< AbstractRotamerTrie
AbstractRotamerTrieOP
typedef
utility::pointer::owning_ptr
< AbstractRotamerTrie const > 
AbstractRotamerTrieCOP
typedef utility::vector1< AtomAtoms
typedef graph::UpperEdgeGraph
< AtomGraphVertexData,
AtomGraphEdgeData
AtomGraph
typedef
utility::pointer::owning_ptr
< AtomGraph
AtomGraphOP
typedef
utility::pointer::owning_ptr
< Conformation
ConformationOP
typedef
utility::pointer::owning_ptr
< Conformation const > 
ConformationCOP
typedef numeric::xyzTriple
< core::Size
CubeKey
typedef numeric::xyzVector
< core::Real
PointPosition
typedef graph::UpperEdgeGraph
< PointGraphVertexData,
PointGraphEdgeData
PointGraph
typedef
utility::pointer::owning_ptr
< PointGraph
PointGraphOP
typedef
utility::pointer::owning_ptr
< PseudoBondCollection
PseudoBondCollectionOP
typedef
utility::pointer::owning_ptr
< PseudoBondCollection const > 
PseudoBondCollectionCOP
typedef
utility::pointer::access_ptr
< Residue
ResidueAP
typedef
utility::pointer::access_ptr
< Residue const > 
ResidueCAP
typedef
utility::pointer::owning_ptr
< Residue
ResidueOP
typedef
utility::pointer::owning_ptr
< Residue const > 
ResidueCOP
typedef utility::vector1
< ResidueOP
ResidueOPs
typedef utility::vector1
< ResidueCOP
ResidueCOPs
typedef utility::vector1
< ResidueCAP
ResidueCAPs
typedef
utility::pointer::owning_ptr
< ResidueKinWriter
ResidueKinWriterOP
typedef
utility::pointer::owning_ptr
< ResidueKinWriter const > 
ResidueKinWriterCOP
typedef
utility::pointer::owning_ptr
< ConformationKinWriter
ConformationKinWriterOP
typedef
utility::pointer::owning_ptr
< ConformationKinWriter const > 
ConformationKinWriterCOP
typedef
utility::pointer::owning_ptr
< ResidueMatcher
ResidueMatcherOP
typedef
utility::pointer::owning_ptr
< ResidueMatcher const > 
ResidueMatcherCOP
typedef
utility::pointer::owning_ptr
< RotamerSetBase
RotamerSetBaseOP
typedef
utility::pointer::owning_ptr
< RotamerSetBase const > 
RotamerSetBaseCOP

Enumerations

enum  Strategy { NAIVE, AUTOMATIC, OCTREE, THREEDGRID }

Functions

std::ostream & operator<< (std::ostream &os, Atom const &atom)
void atom_graph_from_conformation (Conformation const &conformation, AtomGraphOP atom_graph)
platform::Size annotated_atom_graph_from_conformation (Conformation const &conformation, AtomGraphOP pg, PointPosition const &additional_point)
 create a pointgraph which consists of 1 node for every atom, plus 1 additional node which will be added as the last node. The index of the additional node is returned
template<class Vertex , class Edge >
void find_neighbors_naive (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff)
template<class Vertex , class Edge >
void find_neighbors_octree (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, Strategy strategy)
 Finds the residue neighbors efficiently using an octree-like spatial sort.
template<class Vertex , class Edge >
void find_neighbors_3dgrid (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff)
 Create a 3D grid of points. O(N^3). For "spherical" conformations, Theta(N). Speeds neighbor detection in abinitio by a factor of 2. Definition: Spherical = span of x,y and z all O(N**1/3). Note circularity. Adendum: if the 3D grid used a list of point indices instead of a vector, then this would be Theta(N) for spherical conformations; however, with a vector, this is O(NlgN). With the additional assumption that each cube contains O(1) points, then this implementation is O(N). Such an assumption is unneccessary in the list implementation.
template<class Vertex , class Edge >
void find_neighbors_naive_restricted (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, utility::vector1< bool > const &residue_selection)
template<class Vertex , class Edge >
void find_neighbors_octree_restricted (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, utility::vector1< bool > const &residue_selection, Strategy strategy)
 Finds the residue neighbors efficiently using an octree-like spatial sort.
template<class Vertex , class Edge >
void find_neighbors_3dgrid_restricted (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, utility::vector1< bool > const &residue_selection)
 Create a 3D grid of points. O(N^3). For "spherical" conformations, Theta(N). Speeds neighbor detection in abinitio by a factor of 2. Definition: Spherical = span of x,y and z all O(N**1/3). Note circularity. Adendum: if the 3D grid used a list of point indices instead of a vector, then this would be Theta(N) for spherical conformations; however, with a vector, this is O(NlgN). With the additional assumption that each cube contains O(1) points, then this implementation is O(N). Such an assumption is unneccessary in the list implementation.
template<class Vertex , class Edge >
core::Size get_nearest_neighbor (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Size node_id, core::Real neighbor_cutoff, Strategy strategy=AUTOMATIC)
template<class Vertex , class Edge >
void find_neighbors (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, Strategy strategy=AUTOMATIC)
template<class Vertex , class Edge >
void find_neighbors_restricted (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, utility::vector1< bool > const &residue_selection, Strategy strategy=AUTOMATIC)
template<class Vertex , class Edge >
void find_neighbors_naive_surface (utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > > point_graph, core::Real neighbor_cutoff, utility::vector1< std::pair< Size, Size > > const &non_surface_ranges, utility::vector1< bool > const &is_surface)
void residue_point_graph_from_conformation (Conformation const &conformation, PointGraph &pg)
static basic::Tracer TR ("core.conformation.Residue")
std::ostream & operator<< (std::ostream &os, Residue const &res)
void idealize_hydrogens (Residue &res, Conformation const &conf)
void set_chi_according_to_coordinates (conformation::Residue &rotamer)
 rotamer chi-update from coords useful for building rotamers from coordinates
void write_kinemage_header (std::ostream &ostr, Size const kin_number, std::string const &title, Vector const &ctr)
void print_node (std::ostream &out, int residue_num, int atom_num, core::Vector const &atom_xyz, core::chemical::ResidueType const &res, std::string extras="")
 TWO FUNCTIONS STOLEN FROM IAN: and slightly modified.
void print_node (std::ostream &out, int residue_num, int atom_num, core::conformation::Residue const &res, std::string extras="")
void print_node (std::ostream &out, int residue_num, std::string atom_name, core::conformation::Residue const &res, std::string extras="")
void orient_residue_for_ideal_bond (Residue &moving_rsd, chemical::ResidueConnection const &moving_connection, Residue const &fixed_rsd, chemical::ResidueConnection const &fixed_connection, Conformation const &conformation)
void insert_ideal_mainchain_bonds (Size const seqpos, Conformation &conformation)
void insert_ideal_bonds_at_polymer_junction (Size const seqpos, Conformation &conformation)
 Sets the two bond angles and the bond length across the junction, rebuilds dependent atoms (eg O,H)
void idealize_position (Size const seqpos, Conformation &conformation)
 Idealize backbone and sidechain at seqpos.
bool is_ideal_position (Size const seqpos, Conformation const &conformation, Real theta_epsilon=0.005,Real D_epsilon=0.02)
 Return true if position contains an ideal geometry up to some epsilon.
void copy_residue_coordinates_and_rebuild_missing_atoms (Residue const &source_rsd, Residue &target_rsd, Conformation const &conf)
 Fills coords of target_rsd with coords from source_rsd of same atom_name, rebuilds others.
std::ostream & print_atom (id::AtomID const &id, Conformation const &conf, std::ostream &os)
void show_atom_tree (kinematics::tree::Atom const &atom, Conformation const &conf, std::ostream &os)
void replace_conformation_residue_copying_existing_coordinates (conformation::Conformation &conformation, Size const seqpos, chemical::ResidueType const &new_rsd_type)
void add_variant_type_to_conformation_residue (conformation::Conformation &conformation, chemical::VariantType const &variant_type, Size const seqpos)
 construct a variant of an existing pose residue
void remove_variant_type_from_conformation_residue (conformation::Conformation &conformation, chemical::VariantType const &variant_type, Size const seqpos)
 construct a non-variant of an existing pose residue
void add_lower_terminus_type_to_conformation_residue (conformation::Conformation &conformation, Size const seqpos)
void remove_lower_terminus_type_from_conformation_residue (conformation::Conformation &conformation, Size const seqpos)
void add_upper_terminus_type_to_conformation_residue (conformation::Conformation &conformation, Size const seqpos)
void remove_upper_terminus_type_from_conformation_residue (conformation::Conformation &conformation, Size const seqpos)
void build_tree (kinematics::FoldTree const &fold_tree, conformation::ResidueCAPs const &residues, kinematics::AtomPointer2D &atom_pointer)
void build_jump_edge (kinematics::Edge const &edge, conformation::ResidueCAPs const &residues, kinematics::AtomPointer2D &atom_pointer)
 build a sub atom-tree for a jump edge and attach it to main atom-tree
void build_polymer_edge (kinematics::Edge const &edge, conformation::ResidueCAPs const &residues, kinematics::AtomPointer2D &atom_pointer)
 build a sub atom-tree for a polymer edge and attach it to main atom-tree
void build_chemical_edge (kinematics::Edge const &edge, conformation::ResidueCAPs const &residues, kinematics::AtomPointer2D &atom_pointer)
 build a sub atom-tree for a chemical edge and attach it to main atom-tree
int get_root_atomno (conformation::Residue const &rsd, int const dir)
 get the root atom for building residue atom-tree given the folding direction "dir"
Size get_root_residue_root_atomno (conformation::Residue const &rsd, kinematics::FoldTree const &fold_tree)
void build_residue_tree (conformation::ResidueCAPs const &residues, conformation::Residue const &rsd, kinematics::FoldTree const &fold_tree, kinematics::AtomPointer1D &atom_ptr)
 build_residue_tree function that uses the foldtree info
bool check_good_neighbor (Size const &atom_index, utility::vector1< Size > const &cut_nbrs)
 Check if this atom neighbor has been black-listed ("CUT_BOND" in params file).
bool chi_continuation (Size const atom1, Size const atom2, utility::vector1< utility::vector1< Size > > const &chi_atoms)
 is atom2 the last atom of our chi angle ?
bool chi_interruption (Size const atom1, Size const atom2, utility::vector1< utility::vector1< Size > > const &chi_atoms, utility::vector1< bool > const &is_done)
 would we be breaking into a chi angle by adding atom2 to the tree now?
void setup_links_simple (conformation::Residue const &rsd, kinematics::Links &links)
 simply fill the "links" by adding, for each atom, its bonded neighbors
void setup_atom_links (int const atom1, kinematics::Links const &full_links, utility::vector1< bool > &is_done, utility::vector1< bool > const &is_mainchain, utility::vector1< bool > const &is_chi, utility::vector1< bool > const &is_hydrogen, utility::vector1< utility::vector1< Size > > const &chi_atoms, kinematics::Links &new_links)
 set correct order for how atoms are linked to each other.
void setup_links (conformation::Residue const &rsd, int const root_atomno, kinematics::Links &links)
 given the root_atomno, set up rules for how other atoms are linked for this residue a wrapper function calling setup_atom_links recursively .
void build_residue_tree (int const root_atomno, conformation::Residue const &rsd, kinematics::AtomPointer1D &atom_ptr, bool const root_is_jump_atom)
 set up a local atom-tree for a residue from the defined root atom.
void get_residue_connections (conformation::Residue const &new_rsd, kinematics::FoldTree const &fold_tree, conformation::ResidueCAPs const &residues, id::BondID &new_rsd_in, utility::vector1< id::BondID > &new_rsd_out)
void replace_residue_in_atom_tree (conformation::Residue const &new_rsd, kinematics::FoldTree const &fold_tree, conformation::ResidueCAPs const &residues, kinematics::AtomTree &atom_tree)
 Helper function for conformation routines.
void insert_residue_into_atom_tree (conformation::Residue const &new_rsd, kinematics::FoldTree const &fold_tree, conformation::ResidueCAPs const &residues, kinematics::AtomTree &atom_tree)
 Inserts/ appends new residue subtree into an existing atomtree.
int get_anchor_atomno (conformation::Residue const &anchor_rsd, Size const seqpos, kinematics::FoldTree const &fold_tree)
 Get the atom-index of the atom to which the residue at position seqpos should be anchored.
int get_anchor_atomno (conformation::Residue const &rsd, int const dir)
 get anchor atom to which the atom-tree of next residue in the edge is attached.
void get_anchor_and_root_atoms (conformation::Residue const &anchor_rsd, conformation::Residue const &root_rsd, kinematics::Edge const &edge, Size &anchor_atomno, Size &root_atomno)
 Use this routine to deduce atom indices of connect atoms in the tree.
void promote_sameresidue_child_of_jump_atom (kinematics::Edge const &edge, conformation::ResidueCAPs const &residues, kinematics::AtomTree &atom_tree)
 Moves the first same-residue child of the jump atom corresponding to edge into first place in the child list.
void promote_sameresidue_child_of_jump_atom (kinematics::Edge const &edge, conformation::ResidueCAPs const &residues, kinematics::AtomPointer2D const &atom_pointer)
 Moves the first same-residue child of the jump atom corresponding to edge into first place in the child list.
void get_chemical_root_and_anchor_atomnos (conformation::Residue const &rsd_anchor, conformation::Residue const &rsd_root, Size &anchor_atom_no, Size &root_atom_no)
void setup_corresponding_atoms (id::AtomID_Map< id::AtomID > &atom_map, conformation::Residue const &rsd1, conformation::Residue const &rsd2)
 set up a map to match mainchain atoms from residue1 to residue2
bool change_cys_state (Size const index, std::string cys_type_name3, Conformation &conf)
 Replace a CYS with a CYD or vice-versa for changing disulfide bonds.
id::NamedAtomID atom_id_to_named_atom_id (id::AtomID const &atom_id, conformation::Residue const &rsd)
id::AtomID named_atom_id_to_atom_id (id::NamedAtomID const &named_atom_id, conformation::Residue const &rsd)
id::NamedStubID stub_id_to_named_stub_id (id::StubID const &stub_id, conformation::Residue const &rsd)
id::StubID named_stub_id_to_stub_id (id::NamedStubID const &named_stub_id, conformation::Residue const &rsd)
void form_disulfide (Conformation &conformation, Size lower_res, Size upper_res)
 Introduce cysteines at the specified location and define a disulfide bond between them.
bool is_disulfide_bond (conformation::Conformation const &conformation, Size residueA_pos, Size residueB_pos)
 Find whether there is a disulfide defined between two residues.
void disulfide_bonds (conformation::Conformation const &conformation, utility::vector1< std::pair< Size, Size > > &disulfides)
 Generate a list of all disulfide bonds in the conformation.
void disulfide_bonds (core::conformation::Conformation const &conformation, utility::vector1< std::pair< core::Size, core::Size > > &disulfides)
 Generate a list of all disulfide bonds in the conformation.

Typedef Documentation

typedef numeric::xyzTriple< core::Size > core::conformation::CubeKey

Enumeration Type Documentation

Enumerator:
NAIVE 
AUTOMATIC 
OCTREE 
THREEDGRID 

Function Documentation

void core::conformation::add_lower_terminus_type_to_conformation_residue ( conformation::Conformation &  conformation,
Size const  seqpos 
)
void core::conformation::add_upper_terminus_type_to_conformation_residue ( conformation::Conformation &  conformation,
Size const  seqpos 
)
void core::conformation::add_variant_type_to_conformation_residue ( conformation::Conformation &  conformation,
chemical::VariantType const &  variant_type,
Size const  seqpos 
)

construct a variant of an existing pose residue

eg make a terminus variant, and replace the orignal in pose.

Note:
this copies any atoms in common between old and new residues, rebuild the others

References replace_conformation_residue_copying_existing_coordinates(), and core::conformation::Conformation::residue().

Referenced by add_lower_terminus_type_to_conformation_residue(), and add_upper_terminus_type_to_conformation_residue().

platform::Size core::conformation::annotated_atom_graph_from_conformation ( Conformation const &  conformation,
AtomGraphOP  atom_graph,
PointPosition const &  additional_point 
)
void core::conformation::atom_graph_from_conformation ( Conformation const &  conformation,
AtomGraphOP  atom_graph 
)
id::NamedAtomID core::conformation::atom_id_to_named_atom_id ( id::AtomID const &  atom_id,
conformation::Residue const &  rsd 
)
void core::conformation::build_chemical_edge ( kinematics::Edge const &  edge,
conformation::ResidueCAPs const &  residues,
kinematics::AtomPointer2D &  atom_pointer 
)

build a sub atom-tree for a chemical edge and attach it to main atom-tree

assumes that the start residue of edge has already been built. Traverse the chemical edge residue by residue and after building sub atom-tree for this residue, attaches the edge's subtree to the anchor_atom in the previous residue.

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

Referenced by build_tree().

void core::conformation::build_jump_edge ( kinematics::Edge const &  edge,
conformation::ResidueCAPs const &  residues,
kinematics::AtomPointer2D &  atom_pointer 
)

build a sub atom-tree for a jump edge and attach it to main atom-tree

root_atomno is the root for the sub atom-tree of this edge. anchor_atomno is the entry point of this sub atom-tree into the main atom-tree.

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

Referenced by build_tree().

void core::conformation::build_polymer_edge ( kinematics::Edge const &  edge,
conformation::ResidueCAPs const &  residues,
kinematics::AtomPointer2D &  atom_pointer 
)

build a sub atom-tree for a polymer edge and attach it to main atom-tree

assumes that the start residue of edge has already been built. Traverse the polymer edge residue by residue and after building sub atom-tree for this residue, attaches the edge's subtree to the anchor_atom in the previous residue.

References build_residue_tree(), get_anchor_and_root_atoms(), core::kinematics::Edge::polymer_direction(), core::kinematics::Edge::start(), and core::kinematics::Edge::stop().

Referenced by build_tree().

void core::conformation::build_residue_tree ( conformation::ResidueCAPs const &  residues,
conformation::Residue const &  rsd,
kinematics::FoldTree const &  fold_tree,
kinematics::AtomPointer1D &  atom_ptr 
)

build_residue_tree function that uses the foldtree info

A wrapper function to build an atom-tree for a residue. Uses information from the foldtree to find the proper root atom if it is not defined, and determine the direction in which to build the residue. The goal of this function is to allow the Conformation to rebuild parts of the AtomTree in a way that is compatible with what would be built if we erased the entire atomtree and rebuilt it using the foldtree. Also used to build the atomtree for the root residue when we are building the atomtree from scratch.

also used in build_tree to build the residue tree for the root residue

References core::conformation::Residue::atom_index(), core::kinematics::dir_jump, get_anchor_and_root_atoms(), core::kinematics::FoldTree::get_residue_edge(), get_root_atomno(), get_root_residue_root_atomno(), core::kinematics::FoldTree::root(), and core::conformation::Residue::seqpos().

Referenced by build_chemical_edge(), build_jump_edge(), build_polymer_edge(), build_tree(), core::conformation::Conformation::fill_missing_atoms(), replace_residue_in_atom_tree(), and core::pack::scmin::ResidueAtomTreeCollection::ResidueAtomTreeCollection().

void core::conformation::build_residue_tree ( int const  root_atomno,
conformation::Residue const &  rsd,
kinematics::AtomPointer1D &  atom_ptr,
bool const  root_is_jump_atom 
)

set up a local atom-tree for a residue from the defined root atom.

build the tree of atoms for this residue, anchored at root_atomno

References core::kinematics::add_atom(), core::conformation::Residue::atom(), core::conformation::Residue::natoms(), core::conformation::Residue::seqpos(), setup_links(), core::conformation::Atom::xyz(), and core::kinematics::tree::Atom::xyz().

void core::conformation::build_tree ( kinematics::FoldTree const &  fold_tree,
conformation::ResidueCAPs const &  residues,
kinematics::AtomPointer2D &  atom_pointer 
)

Build an atom-tree from a fold-tree and a set of residues atoms in the tree are allocated with new (on the heap) and held in owning pointers in atom_pointer

Note:
atom_pointer is cleared at the beginning and then filled with AtomOPs to all the atoms

References core::kinematics::FoldTree::begin(), build_chemical_edge(), build_jump_edge(), build_polymer_edge(), build_residue_tree(), core::kinematics::Edge::CHEMICAL, core::id::AtomID_Map< T >::clear(), core::kinematics::FoldTree::end(), core::kinematics::Edge::PEPTIDE, promote_sameresidue_child_of_jump_atom(), core::id::AtomID_Map< T >::resize(), and core::kinematics::FoldTree::root().

bool core::conformation::change_cys_state ( Size const  index,
std::string  cys_type_name3,
Conformation &  conf 
)

Replace a CYS with a CYD or vice-versa for changing disulfide bonds.

Parameters:
[in]indexPosition of the residue to replace.
[in]cys_type_name3The 3-letter name of the cys type to use: e.g. CYS or CYD.
inout]conf The conformation to modify

Substitutes a residue with the given cys type, keeping as many of the existing atom positions as possible. If the original residue has a disulfide variant it will be removed, otherwise a disulfide variant will be added. Should work with any ResidueTypeSet that has the proper disulfide variants. If the replacement fails for any reason a warning will be printed.

Returns:
true if the replacement was successful, false otherwise.
Parameters:
[in]indexPosition of the residue to replace.
[in]cys_type_name3The 3-letter name of the cys type to use: either CYS or CYD.
inout]conf The conformation to modify
Returns:
true if the replacement was successful, false otherwise.

References core::chemical::aa_cys, copy_residue_coordinates_and_rebuild_missing_atoms(), core::conformation::ResidueFactory::create_residue(), core::chemical::DISULFIDE, core::conformation::Conformation::replace_residue(), core::conformation::Conformation::residue(), and TR().

Referenced by core::conformation::Conformation::detect_disulfides(), core::conformation::Conformation::fix_disulfides(), and form_disulfide().

bool core::conformation::check_good_neighbor ( Size const &  atom_index,
utility::vector1< Size > const &  cut_nbrs 
)

Check if this atom neighbor has been black-listed ("CUT_BOND" in params file).

Referenced by setup_links_simple().

bool core::conformation::chi_continuation ( Size const  atom1,
Size const  atom2,
utility::vector1< utility::vector1< Size > > const &  chi_atoms 
) [inline]

is atom2 the last atom of our chi angle ?

Referenced by setup_atom_links().

bool core::conformation::chi_interruption ( Size const  atom1,
Size const  atom2,
utility::vector1< utility::vector1< Size > > const &  chi_atoms,
utility::vector1< bool > const &  is_done 
) [inline]

would we be breaking into a chi angle by adding atom2 to the tree now?

Referenced by setup_atom_links().

void core::conformation::copy_residue_coordinates_and_rebuild_missing_atoms ( Residue const &  source_rsd,
Residue &  target_rsd,
Conformation const &  conformation 
)
void core::conformation::disulfide_bonds ( conformation::Conformation const &  conformation,
utility::vector1< std::pair< Size, Size > > &  disulfides 
)
void core::conformation::disulfide_bonds ( core::conformation::Conformation const &  conformation,
utility::vector1< std::pair< core::Size, core::Size > > &  disulfides 
)

Generate a list of all disulfide bonds in the conformation.

template<class Vertex , class Edge >
void core::conformation::find_neighbors ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
Strategy  strategy = AUTOMATIC 
)
template<class Vertex , class Edge >
void core::conformation::find_neighbors_3dgrid ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff 
)

Create a 3D grid of points. O(N^3). For "spherical" conformations, Theta(N). Speeds neighbor detection in abinitio by a factor of 2. Definition: Spherical = span of x,y and z all O(N**1/3). Note circularity. Adendum: if the 3D grid used a list of point indices instead of a vector, then this would be Theta(N) for spherical conformations; however, with a vector, this is O(NlgN). With the additional assumption that each cube contains O(1) points, then this implementation is O(N). Such an assumption is unneccessary in the list implementation.

Shameless code duplication below based on Stuart's stl-map-based-neighbor-detection code. Note that the FArray3D is an index-from-1 data structure.

References make_table_of_pilot_apps::begin, core::sequence::end, and core::scoring::electron_density::square().

Referenced by find_neighbors(), and find_neighbors_restricted().

template<class Vertex , class Edge >
void core::conformation::find_neighbors_3dgrid_restricted ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
utility::vector1< bool > const &  residue_selection 
)

Create a 3D grid of points. O(N^3). For "spherical" conformations, Theta(N). Speeds neighbor detection in abinitio by a factor of 2. Definition: Spherical = span of x,y and z all O(N**1/3). Note circularity. Adendum: if the 3D grid used a list of point indices instead of a vector, then this would be Theta(N) for spherical conformations; however, with a vector, this is O(NlgN). With the additional assumption that each cube contains O(1) points, then this implementation is O(N). Such an assumption is unneccessary in the list implementation.

References make_table_of_pilot_apps::begin, core::sequence::end, and core::scoring::electron_density::square().

template<class Vertex , class Edge >
void core::conformation::find_neighbors_naive ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff 
)

Referenced by find_neighbors().

template<class Vertex , class Edge >
void core::conformation::find_neighbors_naive_restricted ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
utility::vector1< bool > const &  residue_selection 
)
template<class Vertex , class Edge >
void core::conformation::find_neighbors_naive_surface ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
utility::vector1< std::pair< Size, Size > > const &  non_surface_ranges,
utility::vector1< bool > const &  is_surface 
)
template<class Vertex , class Edge >
void core::conformation::find_neighbors_octree ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
Strategy  strategy 
)

Finds the residue neighbors efficiently using an octree-like spatial sort.

Remarks:
  • The "octree" algorithm isn't a real octree since we don't want/need the tree structure: we are only interested in one distance cutoff criterion
  • The octree algorithm is O( R log R ) for R residues vs. O( R^2 ) for the naive algorithm
  • The octree algorithm seems to be faster for R >= 150 or so: this may come down as it gets refined
  • This is an initial implementation of a more scalable neighbor detection algorithm: it will be further tuned as more tests cases are run. This type of algorithm may be of greater benefit for atom neighbor detection because the numbers involved are greater and the neighbor regions encompass a smaller fraction of the other atoms in typical structures.
  • The spatial sorting is essentially an octree method but with the important distinction that is doesn't have full a full tree structure: That would change the log R search complexity to log C where C is the number of cubes in the whole bounding box, which could be as much O( R^3 ) ( O( log C ) == O( log R ) would still be true but the constant would be 3x worse). Instead we let the map build a tree of just the active cubes, keeping the depth minimal. If we needed to access the parent meta-cubes we would need the full octree, but we don't here.
  • The use of std::map to hold the octree should be compared against hash maps and other methods.

References OCTREE, and core::scoring::electron_density::square().

Referenced by find_neighbors().

template<class Vertex , class Edge >
void core::conformation::find_neighbors_octree_restricted ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
utility::vector1< bool > const &  residue_selection,
Strategy  strategy 
)

Finds the residue neighbors efficiently using an octree-like spatial sort.

References OCTREE, and core::scoring::electron_density::square().

template<class Vertex , class Edge >
void core::conformation::find_neighbors_restricted ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Real  neighbor_cutoff,
utility::vector1< bool > const &  residue_selection,
Strategy  strategy = AUTOMATIC 
)
void core::conformation::form_disulfide ( Conformation &  conformation,
Size  lower_res,
Size  upper_res 
)
void core::conformation::get_anchor_and_root_atoms ( conformation::Residue const &  anchor_rsd,
conformation::Residue const &  root_rsd,
kinematics::Edge const &  edge,
Size anchor_atomno,
Size root_atomno 
)
int core::conformation::get_anchor_atomno ( conformation::Residue const &  anchor_rsd,
Size const  seqpos,
kinematics::FoldTree const &  fold_tree 
)

Get the atom-index of the atom to which the residue at position seqpos should be anchored.

Get the atom-index of the atom to which the residue at position seqpos should be anchored in constructing the atomtree.

References core::conformation::Residue::atom_index(), core::kinematics::dir_jump, core::kinematics::FoldTree::get_residue_edge(), core::kinematics::FoldTree::root(), and core::conformation::Residue::seqpos().

Referenced by get_anchor_and_root_atoms(), get_anchor_atomno(), protocols::forge::build::BuildManager::modify(), protocols::forge::build::SegmentRebuild::modify_impl(), and protocols::forge::build::SegmentInsert::modify_impl().

int core::conformation::get_anchor_atomno ( conformation::Residue const &  rsd,
int const  dir 
)
void core::conformation::get_chemical_root_and_anchor_atomnos ( conformation::Residue const &  rsd_anchor,
conformation::Residue const &  rsd_root,
Size anchor_atom_no,
Size root_atom_no 
)
template<class Vertex , class Edge >
core::Size core::conformation::get_nearest_neighbor ( utility::pointer::owning_ptr< graph::UpperEdgeGraph< Vertex, Edge > >  point_graph,
core::Size  node_id,
core::Real  neighbor_cutoff,
Strategy  strategy = AUTOMATIC 
)
void core::conformation::get_residue_connections ( conformation::Residue const &  new_rsd,
kinematics::FoldTree const &  fold_tree,
conformation::ResidueCAPs const &  residues,
id::BondID &  new_rsd_in,
utility::vector1< id::BondID > &  new_rsd_out 
)
int core::conformation::get_root_atomno ( conformation::Residue const &  rsd,
int const  dir 
)
Size core::conformation::get_root_residue_root_atomno ( conformation::Residue const &  rsd,
kinematics::FoldTree const &  fold_tree 
)

Determine which atom to use as the root of the root residue in the atomtree. It is sometimes useful to be able to control the atom chosen as the root of the atomtree, eg in graphics. The logic below uses atom_info stored in the foldtree for jump edges emanating from the root residue to override the default atom (if the root residue is a jump_point and said atom_info exists)

References core::conformation::Residue::atom_index(), core::kinematics::dir_jump, get_root_atomno(), core::kinematics::FoldTree::is_jump_point(), core::kinematics::FoldTree::jump_edge(), core::kinematics::FoldTree::num_jump(), core::kinematics::FoldTree::root(), core::conformation::Residue::seqpos(), and TR().

Referenced by build_residue_tree(), and get_residue_connections().

void core::conformation::idealize_hydrogens ( Residue &  res,
Conformation const &  conf 
)
void core::conformation::idealize_position ( Size const  seqpos,
Conformation &  conformation 
)
void core::conformation::insert_ideal_bonds_at_polymer_junction ( Size const  seqpos,
Conformation &  conformation 
)
void core::conformation::insert_ideal_mainchain_bonds ( Size const  seqpos,
Conformation &  conformation 
)
void core::conformation::insert_residue_into_atom_tree ( conformation::Residue const &  new_rsd,
kinematics::FoldTree const &  fold_tree,
conformation::ResidueCAPs const &  residues,
kinematics::AtomTree &  atom_tree 
)

Inserts/ appends new residue subtree into an existing atomtree.

Note:
The foldtree must already have been changed to reflect the new residue
The residues array should already have been inserted into
The sequence position of the new residue is deduced from new_rsd.seqpos()
This function handles renumbering of the atomtree if necessary
The foldtree must already have been changed to reflect the new residue
The sequence position of the new residue is deduced from new_rsd.seqpos()
This function handles renumbering of the atomtree if necessary

References core::kinematics::FoldTree::nres(), replace_residue_in_atom_tree(), core::conformation::Residue::seqpos(), core::kinematics::AtomTree::size(), and core::kinematics::AtomTree::update_sequence_numbering().

Referenced by core::conformation::Conformation::insert_residue_by_jump().

bool core::conformation::is_disulfide_bond ( conformation::Conformation const &  conformation,
Size  residueA_pos,
Size  residueB_pos 
)
bool core::conformation::is_ideal_position ( Size const  seqpos,
Conformation const &  conformation,
Real  theta_epsilon = 0.005,
Real  D_epsilon = 0.02 
)

Return true if position contains an ideal geometry up to some epsilon.

seqpos - sequence position conformation - conformation object theta_epsilon - permitted deviation from ideal bond angles, in Radians D_epsilon - permitted deviation from ideal bond length

Remarks:
conformation is needed for context of polymer nbrs

References core::conformation::Conformation::append_residue_by_bond(), core::conformation::ResidueFactory::create_residue(), core::id::D, core::conformation::Conformation::fold_tree(), core::kinematics::FoldTree::is_cutpoint(), core::conformation::Conformation::residue(), core::conformation::Conformation::size(), core::id::THETA, TR(), and core::conformation::Residue::type().

id::AtomID core::conformation::named_atom_id_to_atom_id ( id::NamedAtomID const &  named_atom_id,
conformation::Residue const &  rsd 
)
id::StubID core::conformation::named_stub_id_to_stub_id ( id::NamedStubID const &  named_stub_id,
conformation::Residue const &  rsd 
)
std::ostream & core::conformation::operator<< ( std::ostream &  os,
Atom const &  atom 
)
std::ostream & core::conformation::operator<< ( std::ostream &  os,
Residue const &  res 
)
void core::conformation::orient_residue_for_ideal_bond ( Residue &  moving_rsd,
chemical::ResidueConnection const &  moving_connection,
Residue const &  fixed_rsd,
chemical::ResidueConnection const &  fixed_connection,
Conformation const &  conformation 
)
std::ostream& core::conformation::print_atom ( id::AtomID const &  id,
Conformation const &  conf,
std::ostream &  os 
)
void core::conformation::print_node ( std::ostream &  out,
int  residue_num,
int  atom_num,
core::conformation::Residue const &  res,
std::string  extras = "" 
)
void core::conformation::print_node ( std::ostream &  out,
int  residue_num,
int  atom_num,
core::Vector const &  atom_xyz,
core::chemical::ResidueType const &  res,
std::string  extras = "" 
)
void core::conformation::print_node ( std::ostream &  out,
int  residue_num,
std::string  atom_name,
core::conformation::Residue const &  res,
std::string  extras = "" 
)
void core::conformation::promote_sameresidue_child_of_jump_atom ( kinematics::Edge const &  edge,
conformation::ResidueCAPs const &  residues,
kinematics::AtomTree &  atom_tree 
)

Moves the first same-residue child of the jump atom corresponding to edge into first place in the child list.

if ( debug ) { BondID old_rsd_in; vector1< BondID > old_rsd_out; get_residue_connections( old_rsd, fold_tree, residues, old_rsd_in, old_rsd_out ); assert( new_rsd_in.atom1 == old_rsd_in.atom1 && new_rsd_out.size() == old_rsd_out.size() ); for ( Size i=1; i<= new_rsd_out.size(); ++i ) { assert( new_rsd_out[i].atom2 == old_rsd_out[i].atom2 ); } }

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

Referenced by build_tree(), and replace_residue_in_atom_tree().

void core::conformation::promote_sameresidue_child_of_jump_atom ( kinematics::Edge const &  edge,
conformation::ResidueCAPs const &  residues,
kinematics::AtomPointer2D const &  atom_pointer 
)
void core::conformation::remove_lower_terminus_type_from_conformation_residue ( conformation::Conformation &  conformation,
Size const  seqpos 
)
void core::conformation::remove_upper_terminus_type_from_conformation_residue ( conformation::Conformation &  conformation,
Size const  seqpos 
)
void core::conformation::remove_variant_type_from_conformation_residue ( conformation::Conformation &  conformation,
chemical::VariantType const &  variant_type,
Size const  seqpos 
)

construct a non-variant of an existing pose residue

eg remove a terminus variant, and replace the orignal in pose.

Note:
this copies any atoms in common between old and new residues, rebuild the others

References replace_conformation_residue_copying_existing_coordinates(), and core::conformation::Conformation::residue().

Referenced by remove_lower_terminus_type_from_conformation_residue(), and remove_upper_terminus_type_from_conformation_residue().

void core::conformation::replace_conformation_residue_copying_existing_coordinates ( conformation::Conformation &  conformation,
Size const  seqpos,
chemical::ResidueType const &  new_rsd_type 
)

helper function for residue replacement/residuetype switching

Note:
Will call new_rsd->fill_missing_atoms if the new residue has atoms that the old one doesn't

References copy_residue_coordinates_and_rebuild_missing_atoms(), core::conformation::ResidueFactory::create_residue(), core::conformation::Conformation::replace_residue(), and core::conformation::Conformation::residue().

Referenced by add_variant_type_to_conformation_residue(), and remove_variant_type_from_conformation_residue().

void core::conformation::replace_residue_in_atom_tree ( conformation::Residue const &  new_rsd,
kinematics::FoldTree const &  fold_tree,
conformation::ResidueCAPs const &  residues,
kinematics::AtomTree &  atom_tree 
)

Helper function for conformation routines.

Helper function for conformation routines. Uses fold_tree to deduce the incoming/outgoing connections for the new residue and the old residue We want it to be the case that the tree we get after this call is the same one that we would have gotten by calling build_tree

References build_residue_tree(), get_residue_connections(), core::kinematics::FoldTree::get_residue_edge(), core::kinematics::Edge::is_jump(), core::kinematics::FoldTree::is_jump_point(), core::kinematics::FoldTree::is_root(), core::kinematics::Edge::keep_stub_in_residue(), promote_sameresidue_child_of_jump_atom(), core::kinematics::AtomTree::replace_residue_subtree(), and core::conformation::Residue::seqpos().

Referenced by insert_residue_into_atom_tree(), and core::conformation::Conformation::replace_residue().

void core::conformation::residue_point_graph_from_conformation ( Conformation const &  conformation,
PointGraph &  pg 
)
void core::conformation::set_chi_according_to_coordinates ( conformation::Residue &  rotamer)

rotamer chi-update from coords useful for building rotamers from coordinates

hokey "update chi from coordinates" useful for when the coordinates are known for a rotamer (specifically, a residue living outside of a conformation object); after the coordinates are set, the chis have to be updated -- that won't happen automatically.

References core::conformation::Residue::chi(), core::conformation::Residue::chi_atoms(), core::conformation::Residue::is_protein(), core::conformation::Residue::nchi(), and core::conformation::Residue::xyz().

Referenced by core::pack::rotamer_set::RotamerSet_::build_optimize_H_rotamers(), core::pack::dunbrack::SingleLigandRotamerLibrary::init_from_file(), and protocols::motifs::load_build_position_data().

void core::conformation::setup_atom_links ( int const  atom1,
kinematics::Links const &  full_links,
utility::vector1< bool > &  is_done,
utility::vector1< bool > const &  is_mainchain,
utility::vector1< bool > const &  is_chi,
utility::vector1< bool > const &  is_hydrogen,
utility::vector1< utility::vector1< Size > > const &  chi_atoms,
kinematics::Links &  new_links 
)

set correct order for how atoms are linked to each other.

this function is called recursively.

  • atom1 is the root of links at the current level.
  • full_links store information about UNORDERED bonded neighbors for each atom in this residue.
  • is_done indicates which atoms have already been linked.
  • is_mainchain, is_chi, is_hydrogen and chi atoms are self explanatory
  • new_links store information about ORDERED bonded neighbors (links) for each atom in this residue.

References chi_continuation(), and chi_interruption().

Referenced by setup_links().

void core::conformation::setup_corresponding_atoms ( id::AtomID_Map< id::AtomID > &  atom_map,
conformation::Residue const &  rsd1,
conformation::Residue const &  rsd2 
)
void core::conformation::setup_links ( conformation::Residue const &  rsd,
int const  root_atomno,
kinematics::Links &  links 
)
void core::conformation::setup_links_simple ( conformation::Residue const &  rsd,
kinematics::Links &  links 
)

simply fill the "links" by adding, for each atom, its bonded neighbors

References check_good_neighbor(), core::conformation::Residue::cut_bond_neighbor(), core::conformation::Residue::natoms(), and core::conformation::Residue::nbrs().

Referenced by setup_links().

void core::conformation::show_atom_tree ( kinematics::tree::Atom const &  atom,
Conformation const &  conf,
std::ostream &  os 
)
id::NamedStubID core::conformation::stub_id_to_named_stub_id ( id::StubID const &  stub_id,
conformation::Residue const &  rsd 
)
static basic::Tracer core::conformation::TR ( "core.conformation.Residue"  ) [static]
void core::conformation::write_kinemage_header ( std::ostream &  ostr,
Size const  kin_number,
std::string const &  title,
Vector const &  ctr 
)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines