Rosetta Core  2014.35
Classes | Namespaces | Typedefs | Functions
ResidueGraphTypes.hh File Reference

Graph structure for ResidueType. More...

#include <core/chemical/Atom.hh>
#include <core/chemical/Bond.hh>
#include <boost/graph/undirected_graph.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <core/chemical/AtomTypeSet.fwd.hh>
#include <boost/graph/adjacency_list.hpp>

Classes

class  core::chemical::RealFilter
 A filtered graph that doesn't contain fake/virtual atoms and fake/virtual bonds. More...
 
class  core::chemical::HeavyAtomFilter
 The filter responsible for obtaining all heavy atoms. More...
 
class  core::chemical::AcceptorAtomFilter
 The filter responsible for obtaining all acceptor atoms. More...
 
class  core::chemical::HeavyAtomWithPolarHydrogensFilter
 The filter responsible for obtaining all heavy atoms with polar hydrogens attached to them. More...
 
class  core::chemical::HeavyAtomWithHydrogensFilter
 The filter responsible for finding heavy atoms with hydrogens. More...
 
class  core::chemical::HydrogenAtomFilter
 The filter responsible for all hydrogens. More...
 
class  core::chemical::AromaticAtomFilter
 The filter responsible for all aromatic atoms. More...
 
class  core::chemical::PolarHydrogenFilter
 The filter responsible for all polar hydrogens. More...
 
class  core::chemical::APolarHydrogenFilter
 The filter responsible for all apolar hydrogens. More...
 
class  core::chemical::CopyVertex< Graph1, Graph2 >
 
class  core::chemical::CopyEdge< Graph1, Graph2 >
 

Namespaces

 core
 A class for reading in the atom type properties.
 
 core::chemical
 

Typedefs

typedef
boost::undirected_graph< Atom,
Bond > 
core::chemical::ResidueGraph
 
typedef
ResidueGraph::vertex_descriptor 
core::chemical::VD
 
typedef
ResidueGraph::edge_descriptor 
core::chemical::ED
 
typedef utility::vector1< VD > core::chemical::VDs
 
typedef boost::graph_traits
< ResidueGraph >
::vertex_iterator 
core::chemical::VIter
 
typedef std::pair< VIter, VIter > core::chemical::VIterPair
 
typedef boost::graph_traits
< ResidueGraph >
::edge_iterator 
core::chemical::EIter
 
typedef std::pair< EIter, EIter > core::chemical::EIterPair
 
typedef boost::graph_traits
< ResidueGraph >
::out_edge_iterator 
core::chemical::OutEdgeIter
 
typedef std::pair< OutEdgeIter,
OutEdgeIter > 
core::chemical::OutEdgeIterPair
 
typedef boost::graph_traits
< ResidueGraph >
::adjacency_iterator 
core::chemical::AdjacentIter
 
typedef std::pair
< AdjacentIter, AdjacentIter > 
core::chemical::AdjacentIterPair
 
typedef std::map< std::string, VD > core::chemical::NameVDMap
 
typedef std::pair< std::string,
VD > 
core::chemical::NameVDPair
 
typedef std::pair
< NameVDMap::iterator, bool
core::chemical::NameVDInserted
 
typedef boost::adjacency_list
< boost::vecS, boost::vecS,
boost::undirectedS,
boost::property
< boost::vertex_name_t,
core::chemical::VD >
, boost::property
< boost::edge_name_t,
core::chemical::ED > > 
core::chemical::LightWeightResidueGraph
 
typedef boost::graph_traits
< LightWeightResidueGraph >
::vertex_descriptor 
core::chemical::lwrg_VD
 
typedef boost::graph_traits
< LightWeightResidueGraph >
::edge_descriptor 
core::chemical::lwrg_ED
 
typedef boost::graph_traits
< LightWeightResidueGraph >
::vertex_iterator 
core::chemical::lwrg_vd_iter
 
typedef std::pair
< lwrg_vd_iter, lwrg_vd_iter > 
core::chemical::lwrg_vd_pair_iter
 
typedef boost::graph_traits
< LightWeightResidueGraph >
::edge_iterator 
core::chemical::lwrg_edge_iter
 
typedef boost::graph_traits
< LightWeightResidueGraph >
::out_edge_iterator 
core::chemical::lwrg_out_edge_iter
 
typedef std::pair
< lwrg_out_edge_iter,
lwrg_out_edge_iter > 
core::chemical::lwrg_out_edge_iter_pair
 
typedef boost::filtered_graph
< ResidueGraph, RealFilter,
RealFilter > 
core::chemical::RealResidueGraph
 
typedef
RealResidueGraph::vertex_descriptor 
core::chemical::RealResidueVD
 
typedef
RealResidueGraph::edge_descriptor 
core::chemical::RealResidueED
 
typedef boost::graph_traits
< RealResidueGraph >
::vertex_iterator 
core::chemical::RealResidueVIter
 
typedef boost::graph_traits
< RealResidueGraph >
::edge_iterator 
core::chemical::RealResidueEIter
 
typedef boost::graph_traits
< RealResidueGraph >
::out_edge_iterator 
core::chemical::RealResidueOutEdgeIter
 
typedef std::pair
< RealResidueOutEdgeIter,
RealResidueOutEdgeIter > 
core::chemical::RealResidueOutEdgeIterPair
 
typedef std::pair
< RealResidueVIter,
RealResidueVIter > 
core::chemical::RealResidueVIterPair
 
typedef boost::graph_traits
< RealResidueGraph >
::adjacency_iterator 
core::chemical::RealResidueAdjacentIter
 
typedef std::pair
< RealResidueAdjacentIter,
RealResidueAdjacentIter > 
core::chemical::RealResidueAdjacentIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
HeavyAtomFilter > 
core::chemical::HeavyAtomGraph
 
typedef
HeavyAtomGraph::vertex_descriptor 
core::chemical::HeavyAtomVD
 
typedef
HeavyAtomGraph::edge_descriptor 
core::chemical::HeavyAtomED
 
typedef boost::graph_traits
< HeavyAtomGraph >
::vertex_iterator 
core::chemical::HeavyAtomVIter
 
typedef boost::graph_traits
< HeavyAtomGraph >
::edge_iterator 
core::chemical::HeavyAtomEIter
 
typedef boost::graph_traits
< HeavyAtomGraph >
::out_edge_iterator 
core::chemical::HeavyAtomOutEdgeIter
 
typedef std::pair
< HeavyAtomOutEdgeIter,
HeavyAtomOutEdgeIter > 
core::chemical::HeavyAtomOutEdgeIterPair
 
typedef std::pair
< HeavyAtomVIter,
HeavyAtomVIter > 
core::chemical::HeavyAtomVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
AcceptorAtomFilter > 
core::chemical::AcceptorAtomGraph
 
typedef boost::graph_traits
< AcceptorAtomGraph >
::vertex_iterator 
core::chemical::AcceptorAtomVIter
 
typedef boost::graph_traits
< AcceptorAtomGraph >
::edge_iterator 
core::chemical::AcceptorAtomEIter
 
typedef std::pair
< AcceptorAtomVIter,
AcceptorAtomVIter > 
core::chemical::AcceptorAtomVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
HeavyAtomWithPolarHydrogensFilter > 
core::chemical::HeavyAtomWithPolarHydrogensGraph
 
typedef boost::graph_traits
< HeavyAtomWithPolarHydrogensGraph >
::vertex_iterator 
core::chemical::HeavyAtomWithPolarHydrogensVIter
 
typedef boost::graph_traits
< HeavyAtomWithPolarHydrogensGraph >
::edge_iterator 
core::chemical::HeavyAtomWithPolarHydrogensEIter
 
typedef std::pair
< HeavyAtomWithPolarHydrogensVIter,
HeavyAtomWithPolarHydrogensVIter > 
core::chemical::HeavyAtomWithPolarHydrogensVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
HeavyAtomWithHydrogensFilter > 
core::chemical::HeavyAtomWithHydrogensGraph
 
typedef boost::graph_traits
< HeavyAtomWithHydrogensGraph >
::vertex_iterator 
core::chemical::HeavyAtomWithHydrogensVIter
 
typedef boost::graph_traits
< HeavyAtomWithHydrogensGraph >
::edge_iterator 
core::chemical::HeavyAtomWithHydrogensEIter
 
typedef std::pair
< HeavyAtomWithHydrogensVIter,
HeavyAtomWithHydrogensVIter > 
core::chemical::HeavyAtomWithHydrogensVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
HydrogenAtomFilter > 
core::chemical::HydrogenAtomGraph
 
typedef
HydrogenAtomGraph::vertex_descriptor 
core::chemical::HydrogenAtomVD
 
typedef
HydrogenAtomGraph::edge_descriptor 
core::chemical::HydrogenAtomED
 
typedef boost::graph_traits
< HydrogenAtomGraph >
::vertex_iterator 
core::chemical::HydrogenAtomVIter
 
typedef boost::graph_traits
< HydrogenAtomGraph >
::edge_iterator 
core::chemical::HHydrogenAtomEIter
 
typedef boost::graph_traits
< HydrogenAtomGraph >
::out_edge_iterator 
core::chemical::HydrogenAtomOutEdgeIter
 
typedef std::pair
< HydrogenAtomOutEdgeIter,
HydrogenAtomOutEdgeIter > 
core::chemical::HydrogenAtomOutEdgeIterPair
 
typedef std::pair
< HydrogenAtomVIter,
HydrogenAtomVIter > 
core::chemical::HydrogenAtomVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
AromaticAtomFilter > 
core::chemical::AromaticAtomGraph
 
typedef boost::graph_traits
< AromaticAtomGraph >
::vertex_iterator 
core::chemical::AromaticAtomVIter
 
typedef boost::graph_traits
< AromaticAtomGraph >
::edge_iterator 
core::chemical::AromaticAtomEIter
 
typedef std::pair
< AromaticAtomVIter,
AromaticAtomVIter > 
core::chemical::AromaticAtomVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
PolarHydrogenFilter > 
core::chemical::PolarHydrogenGraph
 
typedef boost::graph_traits
< PolarHydrogenGraph >
::vertex_iterator 
core::chemical::PolarHydrogenVIter
 
typedef boost::graph_traits
< PolarHydrogenGraph >
::edge_iterator 
core::chemical::PolarHydrogenEIter
 
typedef std::pair
< PolarHydrogenVIter,
PolarHydrogenVIter > 
core::chemical::PolarHydrogenVIterPair
 
typedef boost::filtered_graph
< ResidueGraph,
boost::keep_all,
APolarHydrogenFilter > 
core::chemical::APolarHydrogenGraph
 
typedef boost::graph_traits
< APolarHydrogenGraph >
::vertex_iterator 
core::chemical::APolarHydrogenVIter
 
typedef boost::graph_traits
< APolarHydrogenGraph >
::edge_iterator 
core::chemical::APolarHydrogenEIter
 
typedef std::pair
< APolarHydrogenVIter,
APolarHydrogenVIter > 
core::chemical::APolarHydrogenVIterPair
 

Functions

bool core::chemical::has (ResidueGraph const &graph, VD vd)
 Does a ResidueGraph have a given vertex descriptor? More...
 
bool core::chemical::has (ResidueGraph const &graph, ED ed)
 Does a ResidueGraph have a given edge descriptor? More...
 
template<typename Graph >
void core::chemical::regenerate_graph_vertex_index (Graph &graph)
 When adding and deleting nodes in a graph, sometimes the inner counting of nodes/edges gets outdated. Run this to fix the problem. More...
 

Detailed Description

Graph structure for ResidueType.

This is the typedefs and filtered graphs for the graph implementation of ResidueType based on boost graphs. Filtered graphs are graph structures that have been filtered based on a certain criteria. For example, the Acceptor atom graph has been filtered so that every node and edge in the graph is associated with an acceptor atom. The properties of the filtered graphs can be determined by any criteria. Currently, atom types are used as the metric to filter the graphs. This does not have to be the case. Graphs can be filtered based on the atoms, orbitals, etc etc. It is up to your imagination. The unit tests for these show examples of how to use the filtered graphs.

Each filter graph has an operator that is used to determine if a node should be in the graph. An iterator through each node and edge of the graph is available. Specifically, if you want to iterate through the graph nodes, you would use this method: for(HeavyAtomVIterPair vp = boost::vertices(heavy_atom_graph); vp.first != vp.second; ++vp.first){}

Author
Steven Combs