Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Typedefs | Functions
ResidueSubGraphTypes.hh File Reference

Filtered subgraphs. More...

#include <core/chemical/ResidueGraphTypes.hh>
#include <core/chemical/MutableResidueType.hh>
#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>
#include <utility>

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::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

template<class Graph >
core::Size core::chemical::filtered_num_vertices (Graph const &graph)
 It's a frustrating truth, but num_vertices doesn't give the number of filtered vertices for filtered graphs, but instead gives the number of underlying vertices ... this gets the true number of filtered vertices. More...
 
RealResidueGraph core::chemical::make_real_residue_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
HeavyAtomGraph core::chemical::make_heavy_atom_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
AcceptorAtomGraph core::chemical::make_acceptor_atom_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
HeavyAtomWithPolarHydrogensGraph core::chemical::make_heavy_atom_with_polar_hydrogens_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
HeavyAtomWithHydrogensGraph core::chemical::make_heavy_atom_with_hydrogens_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
HydrogenAtomGraph core::chemical::make_hydrogen_atom_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
AromaticAtomGraph core::chemical::make_aromatic_atom_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
PolarHydrogenGraph core::chemical::make_polar_hydrogen_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 
APolarHydrogenGraph core::chemical::make_apolar_hydrogen_graph (MutableResidueType const &restype)
 Convenience constructor. More...
 

Detailed Description

Filtered subgraphs.

Filtered Graphs for ResidueType.

This is the 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 immagination. 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
Rocco Moretti (rmore.nosp@m.ttia.nosp@m.se@gm.nosp@m.ail..nosp@m.com)

This is 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
Rocco Moretti (rmore.nosp@m.ttia.nosp@m.se@gm.nosp@m.ail..nosp@m.com)