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  Get_contact_order_3
 
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...
 
class  Is_frontier
 
class  Is_not_frontier
 

Public Types

typedef T_Molecular_interface_connected_component_data_structure< ParticleWithSystemLabelTraits, MolecularModel > Self
 
typedef std::vector< boost::tuple< typename MolecularModel::Particle_vertex_handle, typename MolecularModel::Particle_vertex_handle > > Base
 
typedef CSB::T_Molecular_structure_traits< ParticleWithSystemLabelTraits, MolecularModel > Molecular_structure_traits
 

Internal Public Types

typedef Base::value_type value_type
 
typedef Base::iterator iterator
 
typedef Base::const_iterator const_iterator
 

Public Types

typedef Molecular_structure_traits::Particle_vertex_handle Particle_vertex_handle
 
typedef Molecular_structure_traits::Particle_vertex_handle_with_order Particle_vertex_handle_with_order
 
typedef boost::tuple< Particle_vertex_handle, Particle_vertex_handleContact
 
typedef boost::tuple< Particle_vertex_handle_with_order, Particle_vertex_handle_with_orderContact_with_order
 
typedef boost::tuple< Particle_vertex_handle, Particle_vertex_handle, Particle_vertex_handleContact_order_3
 
typedef boost::tuple< Particle_vertex_handle_with_order, Particle_vertex_handle_with_order, Particle_vertex_handle_with_orderContact_order_3_with_order
 
typedef Molecular_structure_traits::Partner_labels_traits Partner_labels_traits
 Traits class providing the labels for the partners. More...
 
typedef Molecular_structure_traits::Mediator_labels_traits Mediator_labels_traits
 Traits class providing the labels for the mediators. More...
 
typedef Partner_labels_traits::Label Partner_label
 System's label associated to a partner. More...
 
typedef Mediator_labels_traits::Label Mediator_label
 System's label associated to a mediator. More...
 

Iterator Types

typedef boost::indirect_iterator< typename Particle_set::const_iterator, const Particle_vertex_handleParticles_iterator
 Iterator over the interface vertices in this connected component. More...
 
typedef Base::const_iterator Contacts_iterator
 Iterator over the interface edges of this connected component. More...
 
typedef boost::filter_iterator< Is_frontier, typename Contact_order_3_vector::const_iterator > Contact_order_3_frontier_iterator
 
typedef boost::transform_iterator< Get_contact_order_3, Contact_order_3_frontier_iteratorFrontier_iterator
 
typedef boost::filter_iterator< Is_not_frontier, typename Contact_order_3_vector::const_iterator > Not_frontier_iterator
 
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. More...
 
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. More...
 

Constructors

 T_Molecular_interface_connected_component_data_structure (void)
 Default constructor. Do not initialize anything. More...
 
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. More...
 
template<class InputIterator , class MolecularStructureClassifier >
 T_Molecular_interface_connected_component_data_structure (Partner_label partner_1, Partner_label partner_2, Mediator_label mediator, InputIterator begin, InputIterator end, MolecularStructureClassifier &classifier)
 
template<class InputIterator , class MolecularStructureClassifier >
 T_Molecular_interface_connected_component_data_structure (Partner_label partner_1, Partner_label partner_2, InputIterator begin, InputIterator end, MolecularStructureClassifier &classifier)
 

Particles

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

Contacts

unsigned get_number_of_contacts (void) const
 Access to the number of interface edges in the connected component. More...
 
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. More...
 
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. More...
 
bool is_at_frontier (Contact c) const
 
Contacts_iterator begin (void) const
 Starts the set of alpha-complex edges in the connected component. More...
 
Contacts_iterator end (void) const
 Terminates the set of alpha-complex edges in the connected component. More...
 
Contacts_iterator contacts_begin (void) const
 Starts the set of alpha-complex edges in the connected component. More...
 
Contacts_iterator contacts_end (void) const
 Terminates the set of alpha-complex edges in the connected component. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Contacts Order 3

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

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.

Member Typedef Documentation

◆ Base

typedef std::vector<boost::tuple<typename MolecularModel::Particle_vertex_handle, typename MolecularModel::Particle_vertex_handle> > Base

◆ const_iterator

typedef Base::const_iterator const_iterator

◆ Contact

◆ Contact_order_3

◆ Contact_order_3_frontier_iterator

typedef boost::filter_iterator<Is_frontier, typename Contact_order_3_vector::const_iterator> Contact_order_3_frontier_iterator

◆ Contact_order_3_with_order

◆ Contact_with_order

◆ Contacts_iterator

typedef Base::const_iterator Contacts_iterator

Iterator over the interface edges of this connected component.

◆ Contacts_of_label_iterator

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.

◆ Frontier_iterator

◆ iterator

typedef Base::iterator iterator

◆ Mediator_label

typedef Mediator_labels_traits::Label Mediator_label

System's label associated to a mediator.

◆ Mediator_labels_traits

typedef Molecular_structure_traits:: Mediator_labels_traits Mediator_labels_traits

Traits class providing the labels for the mediators.

◆ Molecular_structure_traits

typedef CSB::T_Molecular_structure_traits<ParticleWithSystemLabelTraits, MolecularModel> Molecular_structure_traits

◆ Not_frontier_iterator

typedef boost::filter_iterator<Is_not_frontier, typename Contact_order_3_vector::const_iterator> Not_frontier_iterator

◆ Particle_vertex_handle

typedef Molecular_structure_traits:: Particle_vertex_handle Particle_vertex_handle

◆ Particle_vertex_handle_with_order

◆ Particles_iterator

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

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

◆ Partner_label

typedef Partner_labels_traits::Label Partner_label

System's label associated to a partner.

◆ Partner_labels_traits

typedef Molecular_structure_traits:: Partner_labels_traits Partner_labels_traits

Traits class providing the labels for the partners.

◆ Self

typedef T_Molecular_interface_connected_component_data_structure<ParticleWithSystemLabelTraits, MolecularModel> Self

◆ value_type

typedef Base::value_type value_type

Constructor & Destructor Documentation

◆ T_Molecular_interface_connected_component_data_structure() [1/4]

Default constructor. Do not initialize anything.

◆ T_Molecular_interface_connected_component_data_structure() [2/4]

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.

◆ T_Molecular_interface_connected_component_data_structure() [3/4]

T_Molecular_interface_connected_component_data_structure ( Partner_label  partner_1,
Partner_label  partner_2,
Mediator_label  mediator,
InputIterator  begin,
InputIterator  end,
MolecularStructureClassifier &  classifier 
)
inline

◆ T_Molecular_interface_connected_component_data_structure() [4/4]

T_Molecular_interface_connected_component_data_structure ( Partner_label  partner_1,
Partner_label  partner_2,
InputIterator  begin,
InputIterator  end,
MolecularStructureClassifier &  classifier 
)
inline

Member Function Documentation

◆ begin()

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]

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]

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]

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]

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]

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]

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()

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()

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()

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_contact_adjacencies()

unsigned get_number_of_contact_adjacencies ( void  ) const
inline

◆ get_number_of_contacts() [1/3]

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]

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]

unsigned get_number_of_contacts ( void  ) const
inline

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

◆ get_number_of_contacts_order_3()

unsigned get_number_of_contacts_order_3 ( void  ) const
inline

◆ get_number_of_particles() [1/3]

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]

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]

unsigned get_number_of_particles ( void  ) const
inline

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

◆ get_size_of_frontier()

unsigned get_size_of_frontier ( void  ) const
inline

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

◆ is_at_frontier()

bool is_at_frontier ( Contact  c) const
inline

◆ is_at_interface()

bool is_at_interface ( Particle_vertex_handle  p) const
inline

◆ is_empty()

bool is_empty ( void  ) const
inline

Check that the connected component is empty.

◆ not_frontier_begin()

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()

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]

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]

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]

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]

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]

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]

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.