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>

Classes

class  Get_frontier
 

Public Types

typedef T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent > Self
 
typedef std::vector< MolecularInterfaceConnectedComponent > Base
 
typedef MolecularInterfaceConnectedComponent Connected_component
 Alias for the template parameter. More...
 
typedef Connected_component::Molecular_structure_traits Molecular_structure_traits
 
typedef Connected_component::Contact Contact
 
typedef Connected_component::Particle_vertex_handle Particle_vertex_handle
 

Labels Types

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

Iterator types

typedef Base::const_iterator Connected_components_iterator
 Iterator over the list of connected components. More...
 
typedef CADS::T_Container_of_containers_const_iterator< Connected_components_iteratorContacts_iterator
 Iterator over the interface edges in all connected components. More...
 
typedef boost::transform_iterator< Get_frontier, Connected_components_iteratorFrontier_cc_iterator
 Iterator over the interface facets bording all connected components. More...
 
typedef CADS::T_Container_of_containers_const_iterator< Frontier_cc_iteratorContact_order_3_iterator
 Iterator over the border facets in all connected components. More...
 
typedef MolecularInterfaceConnectedComponent::Is_frontier Is_frontier
 
typedef MolecularInterfaceConnectedComponent::Is_not_frontier Is_not_frontier
 
typedef MolecularInterfaceConnectedComponent::Get_contact_order_3 Get_contact_order_3
 
typedef boost::filter_iterator< typename MolecularInterfaceConnectedComponent::Is_frontier, Contact_order_3_iteratorContact_order_3_frontier_iterator
 
typedef boost::filter_iterator< typename MolecularInterfaceConnectedComponent::Is_not_frontier, Contact_order_3_iteratorNot_frontier_iterator
 
typedef boost::transform_iterator< typename MolecularInterfaceConnectedComponent::Get_contact_order_3, Contact_order_3_frontier_iteratorFrontier_iterator
 
typedef MolecularInterfaceConnectedComponent::Particles_iterator Particles_iterator
 
typedef boost::filter_iterator< Have_labels, Particles_iteratorParticles_of_label_iterator
 Iterator over the vertices in all connected components with a label having as ancestor a given label. More...
 
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. More...
 

Constructors

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

Connected Components

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

Particles

unsigned get_number_of_particles (void) const
 Access to the sum of number of vertices of the connected components. More...
 
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. More...
 
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. More...
 
bool is_at_interface (Particle_vertex_handle p) const
 
bool is_empty (void) const
 Check that there is no connected component in this interface. More...
 
Particles_iterator particles_begin (void) const
 Starts the set of interface vertices in this interface. More...
 
Particles_iterator particles_end (void) const
 Terminates the set of interface vertices in this interface. 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 sum of number of edges of the connected components. More...
 
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. More...
 
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. More...
 
bool is_at_frontier (Contact c) const
 
Contacts_iterator contacts_begin (void) const
 Starts the set of alpha-complex edges in this interface. More...
 
Contacts_iterator contacts_end (void) const
 Terminates the set of alpha-complex edges in this interface. 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 sum of number of bording facets of the connected components. 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 in this interface. More...
 
Not_frontier_iterator not_frontier_end (void) const
 Terminates the set of bording facets in this interface. More...
 
Frontier_iterator frontier_begin (void) const
 Starts the set of bording facets in this interface. More...
 
Frontier_iterator frontier_end (void) const
 Terminates the set of bording facets in this interface. More...
 

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

◆ Base

typedef std::vector<MolecularInterfaceConnectedComponent> Base

◆ Connected_component

typedef MolecularInterfaceConnectedComponent Connected_component

Alias for the template parameter.

◆ Connected_components_iterator

typedef Base::const_iterator Connected_components_iterator

Iterator over the list of connected components.

◆ Contact

typedef Connected_component::Contact Contact

◆ Contact_order_3_frontier_iterator

typedef boost::filter_iterator<typename MolecularInterfaceConnectedComponent::Is_frontier, Contact_order_3_iterator> Contact_order_3_frontier_iterator

◆ 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

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

Iterator over the interface facets bording all connected components.

◆ Frontier_iterator

typedef boost::transform_iterator<typename MolecularInterfaceConnectedComponent::Get_contact_order_3, Contact_order_3_frontier_iterator> Frontier_iterator

◆ Get_contact_order_3

typedef MolecularInterfaceConnectedComponent::Get_contact_order_3 Get_contact_order_3

◆ Is_frontier

typedef MolecularInterfaceConnectedComponent::Is_frontier Is_frontier

◆ Is_not_frontier

typedef MolecularInterfaceConnectedComponent::Is_not_frontier Is_not_frontier

◆ Mediator_label

typedef MolecularInterfaceConnectedComponent::Mediator_label Mediator_label

System's label associated to a mediator.

◆ Mediator_labels_traits

typedef MolecularInterfaceConnectedComponent::Mediator_labels_traits Mediator_labels_traits

Traits class providing the labels for the mediators.

◆ Molecular_structure_traits

typedef Connected_component::Molecular_structure_traits Molecular_structure_traits

◆ Not_frontier_iterator

typedef boost::filter_iterator<typename MolecularInterfaceConnectedComponent::Is_not_frontier, Contact_order_3_iterator> Not_frontier_iterator

◆ Particle_vertex_handle

typedef Connected_component::Particle_vertex_handle Particle_vertex_handle

◆ Particles_iterator

typedef MolecularInterfaceConnectedComponent::Particles_iterator Particles_iterator

◆ Particles_of_label_iterator

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

typedef MolecularInterfaceConnectedComponent::Partner_label Partner_label

System's label associated to a partner.

◆ Partner_labels_traits

typedef MolecularInterfaceConnectedComponent::Partner_labels_traits Partner_labels_traits

Traits class providing the labels for the partners.

◆ Self

typedef T_Molecular_interface_data_structure_base<MolecularInterfaceConnectedComponent> Self

Constructor & Destructor Documentation

◆ T_Molecular_interface_data_structure_base() [1/4]

Default constructor. Do not initialize anything.

◆ T_Molecular_interface_data_structure_base() [2/4]

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.

◆ T_Molecular_interface_data_structure_base() [3/4]

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

◆ T_Molecular_interface_data_structure_base() [4/4]

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

Member Function Documentation

◆ connected_components_begin()

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

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]

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]

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]

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]

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]

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]

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

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

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

unsigned get_number_of_connected_components ( void  ) const
inline

Access to the number of connected components.

◆ 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 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]

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]

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_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 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]

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]

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

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_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 there is no connected component in this interface.

◆ not_frontier_begin()

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

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]

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]

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]

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]

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]

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]

T_Molecular_interface_data_structure_base< MolecularInterfaceConnectedComponent >::Particles_iterator particles_end ( void  ) const
inline

Terminates the set of interface vertices in this interface.