Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel > Class Template Reference

Container for interfaces edges of the alpha-complex that are connected and share the same interface. More...

#include <Molecular_interface_data_structure_base.hpp>

Classes

class  Have_labels
 Predicate initialized with one or two labels, that checks that a vertex has an ancestor of or equal given label, or an edge has ancestors of or equal given pair of labels. More...

Public Types

typedef Molecular_structure_traits::Partner_labels_traits Partner_labels_traits
 Traits class providing the labels for the partners.
typedef Molecular_structure_traits::Mediator_labels_traits Mediator_labels_traits
 Traits class providing the labels for the mediators.
typedef Partner_labels_traits::Label Partner_label
 System's label associated to a partner.
typedef Mediator_labels_traits::Label Mediator_label
 System's label associated to a mediator.

Iterator Types

typedef boost::indirect_iterator< typename Particle_set::const_iterator, const Particle_vertex_handle > Particles_iterator
 Iterator over the interface vertices in this connected component.
typedef Base::const_iterator Contacts_iterator
 Iterator over the interface edges of this connected component.
typedef boost::filter_iterator< Have_labels, Contacts_iteratorContacts_of_label_iterator
 Iterator over interface edges of this connected component having an ancestor of or equal given pair of labels.
typedef boost::filter_iterator< Have_labels, Particles_iteratorParticles_of_label_iterator
 Iterator over interface vertices of this connected component having an ancestor of or equal given label.

Constructors

 T_Molecular_interface_connected_component_data_structure (void)
 Default constructor. Do not initialize anything.
template<class InputIterator, class MolecularStructureClassifier>
 T_Molecular_interface_connected_component_data_structure (InputIterator begin, InputIterator end, MolecularStructureClassifier &classifier)
 Constructor used for bicolor and mediated interface connected components.

Particles

unsigned get_number_of_particles (void) const
 Access to the number of interface vertices of the connected component.
unsigned get_number_of_particles (Partner_label partner) const
 Access to the number of interface vertices with a label having partner as ancestor.
unsigned get_number_of_particles (Mediator_label mediator) const
 Access to the number of interface vertices with a label having mediator as ancestor.
bool is_empty (void) const
 Check that the connected component is empty.
Particles_iterator particles_begin (void) const
 Starts the set of interface vertices of this connected component.
Particles_iterator particles_end (void) const
 Terminates the set of interface vertices of this connected component.
Particles_of_label_iterator particles_begin (Partner_label partner) const
 Starts the set of interface vertices with label having the input label as ancestor.
Particles_of_label_iterator particles_begin (Mediator_label mediator) const
 Starts the set of interface vertices with label having the input label as ancestor.
Particles_of_label_iterator particles_end (Partner_label partner) const
 Terminates the set of interface vertices with label having the input label as ancestor.
Particles_of_label_iterator particles_end (Mediator_label mediator) const
 Terminates the set of interface vertices with label having the input label as ancestor.

Contacts

unsigned get_number_of_contacts (void) const
 Access to the number of interface edges in the connected component.
unsigned get_number_of_contacts (Partner_label partner_1, Partner_label partner_2) const
 Access to the number of bicolor edges with labels having the input labels as ancestors.
unsigned get_number_of_contacts (Partner_label partner, Mediator_label mediator) const
 Access to the number of mediated edges with labels having the input labels as ancestors.
Contacts_iterator begin (void) const
 Starts the set of alpha-complex edges in the connected component.
Contacts_iterator end (void) const
 Terminates the set of alpha-complex edges in the connected component.
Contacts_iterator contacts_begin (void) const
 Starts the set of alpha-complex edges in the connected component.
Contacts_iterator contacts_end (void) const
 Terminates the set of alpha-complex edges in the connected component.
Contacts_of_label_iterator contacts_begin (Partner_label partner_1, Partner_label partner_2) const
 Starts the set of alpha-complex edges with labels having the input labels as ancestors.
Contacts_of_label_iterator contacts_begin (Partner_label partner, Mediator_label mediator) const
 Starts the set of alpha-complex edges with labels having the input labels as ancestors.
Contacts_of_label_iterator contacts_end (Partner_label partner_1, Partner_label partner_2) const
 Terminates the set of alpha-complex edges with labels having the input labels as ancestors.
Contacts_of_label_iterator contacts_end (Partner_label partner, Mediator_label mediator) const
 Terminates the set of alpha-complex edges with labels having the input labels as ancestors.

Contacts Order 3

unsigned get_size_of_frontier (void) const
 Access to the number of bording facets in the connected component.
Not_frontier_iterator not_frontier_begin (void) const
 Starts the set of bording facets of this connected component.
Not_frontier_iterator not_frontier_end (void) const
 Terminates the set of bording facets of this connected component.
Frontier_iterator frontier_begin (void) const
 Starts the set of bording facets of this connected component.
Frontier_iterator frontier_end (void) const
 Terminates the set of bording facets of this connected component.

Detailed Description

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
class SBL::CSB::T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >

Container for interfaces edges of the alpha-complex that are connected and share the same interface.

It is designed as a stl vector of edges of the alpha-complex.

Template Parameters
ParticleWithSystemLabelTraitsTraits class defining a particle with its system's label.
MolecularModelGeometric model of a molecular structure.

Class Documentation

◆ SBL::CSB::T_Molecular_interface_connected_component_data_structure::Have_labels

class SBL::CSB::T_Molecular_interface_connected_component_data_structure::Have_labels
template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
class SBL::CSB::T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Have_labels

Predicate initialized with one or two labels, that checks that a vertex has an ancestor of or equal given label, or an edge has ancestors of or equal given pair of labels.

Member Typedef Documentation

◆ Contacts_iterator

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef Base::const_iterator Contacts_iterator

Iterator over the interface edges of this connected component.

◆ Contacts_of_label_iterator

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef boost::filter_iterator<Have_labels, Contacts_iterator> Contacts_of_label_iterator

Iterator over interface edges of this connected component having an ancestor of or equal given pair of labels.

◆ Mediator_label

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef Mediator_labels_traits::Label Mediator_label

System's label associated to a mediator.

◆ Mediator_labels_traits

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef Molecular_structure_traits::Mediator_labels_traits Mediator_labels_traits

Traits class providing the labels for the mediators.

◆ Particles_iterator

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef boost::indirect_iterator<typename Particle_set::const_iterator, const Particle_vertex_handle> Particles_iterator

Iterator over the interface vertices in this connected component.

◆ Particles_of_label_iterator

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef boost::filter_iterator<Have_labels, Particles_iterator> Particles_of_label_iterator

Iterator over interface vertices of this connected component having an ancestor of or equal given label.

◆ Partner_label

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef Partner_labels_traits::Label Partner_label

System's label associated to a partner.

◆ Partner_labels_traits

template<class ParticleWithSystemLabelTraits, class MolecularModel = CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits>>
typedef Molecular_structure_traits::Partner_labels_traits Partner_labels_traits

Traits class providing the labels for the partners.

Constructor & Destructor Documentation

◆ T_Molecular_interface_connected_component_data_structure() [1/2]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure ( void )
inline

Default constructor. Do not initialize anything.

◆ T_Molecular_interface_connected_component_data_structure() [2/2]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
template<class InputIterator, class MolecularStructureClassifier>
T_Molecular_interface_connected_component_data_structure ( InputIterator begin,
InputIterator end,
MolecularStructureClassifier & classifier )
inline

Constructor used for bicolor and mediated interface connected components.

It initializes the alpha-complex, store all interface edges in between [begin, end) and construct the set of interface vertices. Note that the set of bording facets cannot be constructed since there may be an ambiguity on the labels depending they are hierarchical or primitives. This constructor is used when the user does not want to precise if the interface is bicolor or mediated.

Member Function Documentation

◆ begin()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_iterator begin ( void ) const
inline

Starts the set of alpha-complex edges in the connected component.

◆ contacts_begin() [1/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_of_label_iterator contacts_begin ( Partner_label partner,
Mediator_label mediator ) const
inline

Starts the set of alpha-complex edges with labels having the input labels as ancestors.

◆ contacts_begin() [2/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_of_label_iterator contacts_begin ( Partner_label partner_1,
Partner_label partner_2 ) const
inline

Starts the set of alpha-complex edges with labels having the input labels as ancestors.

◆ contacts_begin() [3/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_iterator contacts_begin ( void ) const
inline

Starts the set of alpha-complex edges in the connected component.

◆ contacts_end() [1/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_of_label_iterator contacts_end ( Partner_label partner,
Mediator_label mediator ) const
inline

Terminates the set of alpha-complex edges with labels having the input labels as ancestors.

◆ contacts_end() [2/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_of_label_iterator contacts_end ( Partner_label partner_1,
Partner_label partner_2 ) const
inline

Terminates the set of alpha-complex edges with labels having the input labels as ancestors.

◆ contacts_end() [3/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_iterator contacts_end ( void ) const
inline

Terminates the set of alpha-complex edges in the connected component.

◆ end()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Contacts_iterator end ( void ) const
inline

Terminates the set of alpha-complex edges in the connected component.

◆ frontier_begin()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Frontier_iterator frontier_begin ( void ) const
inline

Starts the set of bording facets of this connected component.

◆ frontier_end()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Frontier_iterator frontier_end ( void ) const
inline

Terminates the set of bording facets of this connected component.

◆ get_number_of_contacts() [1/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_number_of_contacts ( Partner_label partner,
Mediator_label mediator ) const
inline

Access to the number of mediated edges with labels having the input labels as ancestors.

◆ get_number_of_contacts() [2/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_number_of_contacts ( Partner_label partner_1,
Partner_label partner_2 ) const
inline

Access to the number of bicolor edges with labels having the input labels as ancestors.

◆ get_number_of_contacts() [3/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_number_of_contacts ( void ) const
inline

Access to the number of interface edges in the connected component.

◆ get_number_of_particles() [1/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_number_of_particles ( Mediator_label mediator) const
inline

Access to the number of interface vertices with a label having mediator as ancestor.

◆ get_number_of_particles() [2/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_number_of_particles ( Partner_label partner) const
inline

Access to the number of interface vertices with a label having partner as ancestor.

◆ get_number_of_particles() [3/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_number_of_particles ( void ) const
inline

Access to the number of interface vertices of the connected component.

◆ get_size_of_frontier()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
unsigned get_size_of_frontier ( void ) const
inline

Access to the number of bording facets in the connected component.

◆ is_empty()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
bool is_empty ( void ) const
inline

Check that the connected component is empty.

◆ not_frontier_begin()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Not_frontier_iterator not_frontier_begin ( void ) const
inline

Starts the set of bording facets of this connected component.

◆ not_frontier_end()

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Not_frontier_iterator not_frontier_end ( void ) const
inline

Terminates the set of bording facets of this connected component.

◆ particles_begin() [1/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Particles_of_label_iterator particles_begin ( Mediator_label mediator) const
inline

Starts the set of interface vertices with label having the input label as ancestor.

◆ particles_begin() [2/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Particles_of_label_iterator particles_begin ( Partner_label partner) const
inline

Starts the set of interface vertices with label having the input label as ancestor.

◆ particles_begin() [3/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Particles_iterator particles_begin ( void ) const
inline

Starts the set of interface vertices of this connected component.

◆ particles_end() [1/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Particles_of_label_iterator particles_end ( Mediator_label mediator) const
inline

Terminates the set of interface vertices with label having the input label as ancestor.

◆ particles_end() [2/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Particles_of_label_iterator particles_end ( Partner_label partner) const
inline

Terminates the set of interface vertices with label having the input label as ancestor.

◆ particles_end() [3/3]

template<class ParticleWithSystemLabelTraits, class MolecularModel>
T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel >::Particles_iterator particles_end ( void ) const
inline

Terminates the set of interface vertices of this connected component.