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

Container for Molecular interface connected components that share the same interface. More...

#include <Molecular_interface_data_structure_base.hpp>

Public Types

typedef MolecularInterfaceConnectedComponent Connected_component
 Alias for the template parameter.

Labels Types

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

Iterator types

typedef Base::const_iterator Connected_components_iterator
 Iterator over the list of connected components.
typedef CADS::T_Container_of_containers_const_iterator< Connected_components_iteratorContacts_iterator
 Iterator over the interface edges in all connected components.
typedef boost::transform_iterator< Get_frontier, Connected_components_iteratorFrontier_cc_iterator
 Iterator over the interface facets bording all connected components.
typedef CADS::T_Container_of_containers_const_iterator< Frontier_cc_iteratorContact_order_3_iterator
 Iterator over the border facets in all connected components.
typedef boost::filter_iterator< Have_labels, Particles_iterator > Particles_of_label_iterator
 Iterator over the vertices in all connected components with a label having as ancestor a given label.
typedef boost::filter_iterator< Have_labels, Contacts_iteratorContacts_of_label_iterator
 Iterator over the edges in all connected components with labels having as ancestors the given labels.

Constructors

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

Connected Components

unsigned get_number_of_connected_components (void) const
 Access to the number of connected components.
Connected_components_iterator connected_components_begin (void) const
 Starts the set of connected components of this interface.
Connected_components_iterator connected_components_end (void) const
 Terminates the set of connected components of this interface.

Particles

unsigned get_number_of_particles (void) const
 Access to the sum of number of vertices of the connected components.
unsigned get_number_of_particles (Partner_label partner) const
 Access to the sum of number of vertices of the connected components with a label having partner as ancestor.
unsigned get_number_of_particles (Mediator_label mediator) const
 Access to the sum of number of vertices of the connected components with a label having mediator as ancestor.
bool is_empty (void) const
 Check that there is no connected component in this interface.
Particles_iterator particles_begin (void) const
 Starts the set of interface vertices in this interface.
Particles_iterator particles_end (void) const
 Terminates the set of interface vertices in this interface.
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 sum of number of edges of the connected components.
unsigned get_number_of_contacts (Partner_label partner_1, Partner_label partner_2) const
 Access to the sum of number of edges of the connected components with labels having the input labels as ancestor.
unsigned get_number_of_contacts (Partner_label partner, Mediator_label mediator) const
 Access to the sum of number of edges of the connected components with labels having the input labels as ancestor.
Contacts_iterator contacts_begin (void) const
 Starts the set of alpha-complex edges in this interface.
Contacts_iterator contacts_end (void) const
 Terminates the set of alpha-complex edges in this interface.
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 sum of number of bording facets of the connected components.
Not_frontier_iterator not_frontier_begin (void) const
 Starts the set of bording facets in this interface.
Not_frontier_iterator not_frontier_end (void) const
 Terminates the set of bording facets in this interface.
Frontier_iterator frontier_begin (void) const
 Starts the set of bording facets in this interface.
Frontier_iterator frontier_end (void) const
 Terminates the set of bording facets in this interface.

Detailed Description

template<class MolecularInterfaceConnectedComponent>
class SBL::CSB::T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >

Container for Molecular interface connected components that share the same interface.

It is designed as a stl vector of T_Molecular_interface_connected_component_data_structure.

Template Parameters
MolecularInterfaceConnectedComponentModel of a connected component of a molecular interface.

Member Typedef Documentation

◆ Connected_component

template<class MolecularInterfaceConnectedComponent>
typedef MolecularInterfaceConnectedComponent Connected_component

Alias for the template parameter.

◆ Connected_components_iterator

template<class MolecularInterfaceConnectedComponent>
typedef Base::const_iterator Connected_components_iterator

Iterator over the list of connected components.

◆ Contact_order_3_iterator

Iterator over the border facets in all connected components.

◆ Contacts_iterator

Iterator over the interface edges in all connected components.

◆ Contacts_of_label_iterator

template<class MolecularInterfaceConnectedComponent>
typedef boost::filter_iterator<Have_labels, Contacts_iterator> Contacts_of_label_iterator

Iterator over the edges in all connected components with labels having as ancestors the given labels.

◆ Frontier_cc_iterator

template<class MolecularInterfaceConnectedComponent>
typedef boost::transform_iterator<Get_frontier, Connected_components_iterator> Frontier_cc_iterator

Iterator over the interface facets bording all connected components.

◆ Mediator_label

template<class MolecularInterfaceConnectedComponent>
typedef MolecularInterfaceConnectedComponent::Mediator_label Mediator_label

System's label associated to a mediator.

◆ Mediator_labels_traits

template<class MolecularInterfaceConnectedComponent>
typedef MolecularInterfaceConnectedComponent::Mediator_labels_traits Mediator_labels_traits

Traits class providing the labels for the mediators.

◆ Particles_of_label_iterator

template<class MolecularInterfaceConnectedComponent>
typedef boost::filter_iterator<Have_labels, Particles_iterator> Particles_of_label_iterator

Iterator over the vertices in all connected components with a label having as ancestor a given label.

◆ Partner_label

template<class MolecularInterfaceConnectedComponent>
typedef MolecularInterfaceConnectedComponent::Partner_label Partner_label

System's label associated to a partner.

◆ Partner_labels_traits

template<class MolecularInterfaceConnectedComponent>
typedef MolecularInterfaceConnectedComponent::Partner_labels_traits Partner_labels_traits

Traits class providing the labels for the partners.

Constructor & Destructor Documentation

◆ T_Molecular_interface_data_structure_base() [1/2]

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base ( void )
inline

Default constructor. Do not initialize anything.

◆ T_Molecular_interface_data_structure_base() [2/2]

template<class MolecularInterfaceConnectedComponent>
template<class InputIterator, class MolecularStructureClassifier>
T_Molecular_interface_data_structure_base ( InputIterator begin,
InputIterator end,
MolecularStructureClassifier & classifier )
inline

Constructor used for bicolor and mediated interface.

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

◆ connected_components_begin()

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Connected_components_iterator connected_components_begin ( void ) const
inline

Starts the set of connected components of this interface.

◆ connected_components_end()

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Connected_components_iterator connected_components_end ( void ) const
inline

Terminates the set of connected components of this interface.

◆ contacts_begin() [1/3]

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Contacts_iterator contacts_begin ( void ) const
inline

Starts the set of alpha-complex edges in this interface.

◆ contacts_end() [1/3]

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Contacts_iterator contacts_end ( void ) const
inline

Terminates the set of alpha-complex edges in this interface.

◆ frontier_begin()

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Frontier_iterator frontier_begin ( void ) const
inline

Starts the set of bording facets in this interface.

◆ frontier_end()

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Frontier_iterator frontier_end ( void ) const
inline

Terminates the set of bording facets in this interface.

◆ get_number_of_connected_components()

template<class MolecularInterfaceConnectedComponent>
unsigned get_number_of_connected_components ( void ) const
inline

Access to the number of connected components.

◆ get_number_of_contacts() [1/3]

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

Access to the sum of number of edges of the connected components with labels having the input labels as ancestor.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_contacts .

◆ get_number_of_contacts() [2/3]

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

Access to the sum of number of edges of the connected components with labels having the input labels as ancestor.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_contacts .

◆ get_number_of_contacts() [3/3]

template<class MolecularInterfaceConnectedComponent>
unsigned get_number_of_contacts ( void ) const
inline

Access to the sum of number of edges of the connected components.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_contacts .

◆ get_number_of_particles() [1/3]

template<class MolecularInterfaceConnectedComponent>
unsigned get_number_of_particles ( Mediator_label mediator) const
inline

Access to the sum of number of vertices of the connected components with a label having mediator as ancestor.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_particles .

◆ get_number_of_particles() [2/3]

template<class MolecularInterfaceConnectedComponent>
unsigned get_number_of_particles ( Partner_label partner) const
inline

Access to the sum of number of vertices of the connected components with a label having partner as ancestor.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_particles .

◆ get_number_of_particles() [3/3]

template<class MolecularInterfaceConnectedComponent>
unsigned get_number_of_particles ( void ) const
inline

Access to the sum of number of vertices of the connected components.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_particles .

◆ get_size_of_frontier()

template<class MolecularInterfaceConnectedComponent>
unsigned get_size_of_frontier ( void ) const
inline

Access to the sum of number of bording facets of the connected components.

See CSB::T_Molecular_interface_connected_component_data_structure::get_number_of_facets .

◆ is_empty()

template<class MolecularInterfaceConnectedComponent>
bool is_empty ( void ) const
inline

Check that there is no connected component in this interface.

◆ not_frontier_begin()

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Not_frontier_iterator not_frontier_begin ( void ) const
inline

Starts the set of bording facets in this interface.

◆ not_frontier_end()

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Not_frontier_iterator not_frontier_end ( void ) const
inline

Terminates the set of bording facets in this interface.

◆ particles_begin() [1/3]

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Particles_iterator particles_begin ( void ) const
inline

Starts the set of interface vertices in this interface.

◆ particles_end() [1/3]

template<class MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::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 MolecularInterfaceConnectedComponent>
T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Particles_iterator particles_end ( void ) const
inline

Terminates the set of interface vertices in this interface.