Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex > Class Template Reference

Analysis of a Morse Smale Witten chain complex. More...

#include <Morse_theory_based_analyzer.hpp>

Classes

class  Is_lower_critical_vertex
 
class  Is_lower_pair_of_disconnectivity_vertices
 

Public Types

typedef T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex > Self
 
typedef MorseSmaleWittenChainComplex Morse_Smale_Witten_chain_complex
 
typedef MorseSmaleWittenChainComplex::Stable_manifold_traits Stable_manifold_traits
 
typedef MorseSmaleWittenChainComplex::Stable_manifold Stable_manifold
 
typedef MorseSmaleWittenChainComplex::Critical_vertex Critical_vertex
 
typedef MorseSmaleWittenChainComplex::FT FT
 
typedef MorseSmaleWittenChainComplex::Point Point
 
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, Critical_vertexDisconnectivity_forest
 
typedef boost::graph_traits< Disconnectivity_forest >::vertex_descriptor Disconnectivity_vertex
 
typedef std::multiset< std::pair< Disconnectivity_vertex, Disconnectivity_vertex >, Is_lower_pair_of_disconnectivity_verticesPersistence_diagram
 
typedef std::list< std::list< Point > > Stable_manifold_partition
 
typedef std::list< std::list< Point > > Sublevelsets_connected_components
 
typedef boost::tuple< Critical_vertex, Critical_vertex, Critical_vertexPath_type
 
typedef std::list< Path_typePaths_container
 

Constructors / Destructors


 T_Morse_theory_based_analyzer (MorseSmaleWittenChainComplex &complex)
 

Critical points and connexions


template<class OutputIterator >
OutputIterator get_paths (OutputIterator out) const
 Returns the set of paths between pairs of 0-saddle points through a 1-saddle point. More...
 

Stable manifolds


template<class OutputIterator >
OutputIterator get_stable_manifold_partition (OutputIterator out, bool skip_saddle_SM) const
 Returns the partition of stable manifolds for each critical vertex. The data type for stable manifolds is determined by the MorseSmaleWittenChainComplex data structure and is by default a list of points. More...
 

Disconnectivity Forest Methods


const Disconnectivity_forestget_disconnectivity_forest (void) const
 Returns the disconnectivity forest. More...
 
FT get_Morse_function_value (Disconnectivity_vertex u) const
 Returns the value associated to a vertex in the disconnectivity forest. More...
 
const Pointget_point (Disconnectivity_vertex u) const
 Returns the point associated to a vertex in the disconnectivity forest. More...
 
template<class OutputIterator >
OutputIterator get_connected_component (Disconnectivity_vertex u, const FT &threshold, OutputIterator out) const
 Returns the set of points under the input threshold in the same component as the input vertex. More...
 
template<class OutputIterator >
OutputIterator get_connected_component (Disconnectivity_vertex u, Disconnectivity_vertex v, const FT &threshold, OutputIterator out) const
 Returns the set of points in the component born with u and dead with v. More...
 
template<class OutputIterator >
OutputIterator get_connected_component_before_death (Disconnectivity_vertex u, Disconnectivity_vertex v, OutputIterator out) const
 Same as before but the threshold is set to the upper bound of the stable manifold of u. More...
 

Persistence


template<class OutputIterator >
OutputIterator get_infinite_persistent_critical_vertices (OutputIterator out) const
 Returns the set of 0-saddle vertices with an infinite persistence. More...
 
const Persistence_diagramget_persistence_diagram (void) const
 
template<class OutputIterator >
OutputIterator get_persistence_diagram (OutputIterator out) const
 Same as before but copy it in an output container. More...
 
template<class OutputIterator >
OutputIterator get_persistence_intervals (OutputIterator out)
 Returns the persistence intervals associated to the pairs of vertices in the persistence diagram. More...
 

Sublevelsets assignment


template<class OutputIterator >
OutputIterator get_sublevelsets_connected_components (const FT &threshold, OutputIterator out) const
 Returns the all sub-level sets at a given threshold, that are the connected components of points having a value below the input threshold. More...
 

Simplifications


void simplify (const FT &persistence)
 Eliminates the saddles with a persistence below the input threshold by removing them from the MSW chain complex (this operation requires recomputing the disconnectivity forest and the persistence diagram) More...
 

Detailed Description

template<class MorseSmaleWittenChainComplex>
class SBL::GT::T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >

Analysis of a Morse Smale Witten chain complex.

Template Parameters
MorseSmaleWittenChainComplexHasse diagram representing the Morse Smale Witten chain complex.

Member Typedef Documentation

◆ Critical_vertex

typedef MorseSmaleWittenChainComplex::Critical_vertex Critical_vertex

◆ Disconnectivity_forest

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, Critical_vertex> Disconnectivity_forest

◆ Disconnectivity_vertex

typedef boost::graph_traits<Disconnectivity_forest>::vertex_descriptor Disconnectivity_vertex

◆ FT

typedef MorseSmaleWittenChainComplex::FT FT

◆ Morse_Smale_Witten_chain_complex

typedef MorseSmaleWittenChainComplex Morse_Smale_Witten_chain_complex

◆ Path_type

◆ Paths_container

typedef std::list<Path_type> Paths_container

◆ Persistence_diagram

◆ Point

typedef MorseSmaleWittenChainComplex::Point Point

◆ Self

typedef T_Morse_theory_based_analyzer<MorseSmaleWittenChainComplex> Self

◆ Stable_manifold

typedef MorseSmaleWittenChainComplex::Stable_manifold Stable_manifold

◆ Stable_manifold_partition

typedef std::list<std::list<Point> > Stable_manifold_partition

◆ Stable_manifold_traits

typedef MorseSmaleWittenChainComplex::Stable_manifold_traits Stable_manifold_traits

◆ Sublevelsets_connected_components

typedef std::list<std::list<Point> > Sublevelsets_connected_components

Constructor & Destructor Documentation

◆ T_Morse_theory_based_analyzer()

T_Morse_theory_based_analyzer ( MorseSmaleWittenChainComplex &  complex)
inline

Member Function Documentation

◆ get_connected_component() [1/2]

OutputIterator get_connected_component ( Disconnectivity_vertex  u,
const FT threshold,
OutputIterator  out 
) const
inline

Returns the set of points under the input threshold in the same component as the input vertex.

◆ get_connected_component() [2/2]

OutputIterator get_connected_component ( Disconnectivity_vertex  u,
Disconnectivity_vertex  v,
const FT threshold,
OutputIterator  out 
) const
inline

Returns the set of points in the component born with u and dead with v.

◆ get_connected_component_before_death()

OutputIterator get_connected_component_before_death ( Disconnectivity_vertex  u,
Disconnectivity_vertex  v,
OutputIterator  out 
) const
inline

Same as before but the threshold is set to the upper bound of the stable manifold of u.

◆ get_disconnectivity_forest()

const T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::Disconnectivity_forest & get_disconnectivity_forest ( void  ) const
inline

Returns the disconnectivity forest.

◆ get_infinite_persistent_critical_vertices()

OutputIterator get_infinite_persistent_critical_vertices ( OutputIterator  out) const
inline

Returns the set of 0-saddle vertices with an infinite persistence.

◆ get_Morse_function_value()

T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::FT get_Morse_function_value ( Disconnectivity_vertex  u) const
inline

Returns the value associated to a vertex in the disconnectivity forest.

◆ get_paths()

OutputIterator get_paths ( OutputIterator  out) const
inline

Returns the set of paths between pairs of 0-saddle points through a 1-saddle point.

◆ get_persistence_diagram() [1/2]

OutputIterator get_persistence_diagram ( OutputIterator  out) const
inline

Same as before but copy it in an output container.

◆ get_persistence_diagram() [2/2]

const T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::Persistence_diagram & get_persistence_diagram ( void  ) const
inline

Returns the persistence diagram as a sorted set of pairs of vertices (0-saddle, 1-saddle) in the disconnectivity forest

◆ get_persistence_intervals()

OutputIterator get_persistence_intervals ( OutputIterator  out)
inline

Returns the persistence intervals associated to the pairs of vertices in the persistence diagram.

◆ get_point()

const T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::Point & get_point ( Disconnectivity_vertex  u) const
inline

Returns the point associated to a vertex in the disconnectivity forest.

◆ get_stable_manifold_partition()

OutputIterator get_stable_manifold_partition ( OutputIterator  out,
bool  skip_saddle_SM 
) const
inline

Returns the partition of stable manifolds for each critical vertex. The data type for stable manifolds is determined by the MorseSmaleWittenChainComplex data structure and is by default a list of points.

◆ get_sublevelsets_connected_components()

OutputIterator get_sublevelsets_connected_components ( const FT threshold,
OutputIterator  out 
) const
inline

Returns the all sub-level sets at a given threshold, that are the connected components of points having a value below the input threshold.

◆ simplify()

void simplify ( const FT persistence)
inline

Eliminates the saddles with a persistence below the input threshold by removing them from the MSW chain complex (this operation requires recomputing the disconnectivity forest and the persistence diagram)