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

Classify the particles of molecular systems that are at a given interface. More...

#include <Molecular_structure_classifier.hpp>

Public Types

typedef T_Molecular_structure_classifier< ParticleWithSystemLabelTraits, MolecularModelClassifier > Self
 
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...
 
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 Molecular_structure_traits::Contact Contact
 
typedef Molecular_structure_traits::Contact_with_order Contact_with_order
 

Internal Public Types

typedef ParticleWithSystemLabelTraits Particle_traits
 
typedef MolecularModelClassifier Molecular_geometric_model_classifier
 Alias for the model classifier. More...
 
typedef MolecularModelClassifier::Molecular_model Molecular_model
 Type of molecular model for the model classifier. More...
 
typedef CSB::T_Molecular_structure_traits< ParticleWithSystemLabelTraits, typename MolecularModelClassifier::Molecular_model > Molecular_structure_traits
 
typedef Molecular_structure_traits::Partner_labels_traits Partner_labels_traits
 
typedef Molecular_structure_traits::Mediator_labels_traits Mediator_labels_traits
 
typedef Molecular_structure_traits::Extra_labels_traits Extra_labels_traits
 
typedef Partner_labels_traits::Primitive_label_classifier Partner_label_classifier
 Model of MolecularSystemLabelsTraits partners. More...
 
typedef Mediator_labels_traits::Primitive_label_classifier Mediator_label_classifier
 Model of MolecularSystemLabelsTraits mediators. More...
 
typedef Extra_labels_traits::Primitive_label_classifier Extra_label_classifier
 Model of MolecularSystemLabelsTraits extra. More...
 
typedef Molecular_structure_traits::Partner_labels_forest Partner_labels_forest
 
typedef Molecular_structure_traits::Mediator_labels_forest Mediator_labels_forest
 

Constructors

 T_Molecular_structure_classifier (MolecularModelClassifier &model_classifier, Partner_label_classifier &partners_classifier, Mediator_label_classifier &mediators_classifier, Extra_label_classifier &extras_classifier)
 
 T_Molecular_structure_classifier (Molecular_model &model, Partner_label_classifier &partners_classifier, Mediator_label_classifier &mediators_classifier, Extra_label_classifier &extras_classifier)
 
 ~T_Molecular_structure_classifier (void)
 

Molecular Model

MolecularModelClassifier & get_model_classifier (void)
 
const MolecularModelClassifier & get_model_classifier (void) const
 

System's Labels

const Partner_labels_forestget_partners_forest (void) const
 Return the forest representation of the partners' labels. More...
 
const Mediator_labels_forestget_mediators_forest (void) const
 Return the forest representation of the mediators' labels. More...
 

Particles Accessors

unsigned get_number_of_particles (Partner_label partner) const
 
template<class OutputIterator >
OutputIterator get_particles (Partner_label partner, OutputIterator out) const
 
unsigned get_number_of_particles (Mediator_label mediator) const
 
template<class OutputIterator >
OutputIterator get_particles (Mediator_label mediator, OutputIterator out) const
 
unsigned get_number_of_particles_at_interface (Partner_label partner_1, Partner_label partner_2) const
 
template<class OutputIterator >
OutputIterator get_particles_at_interface (Partner_label partner_1, Partner_label partner_2, OutputIterator out) const
 
unsigned get_number_of_particles_at_interface (Partner_label partner_1, Partner_label partner_2, Mediator_label mediator) const
 
template<class OutputIterator >
OutputIterator get_particles_at_interface (Partner_label partner_1, Partner_label partner_2, Mediator_label mediator, OutputIterator out) const
 
unsigned get_number_of_particles_at_interface (Mediator_label mediator, Partner_label partner_1, Partner_label partner_2) const
 
template<class OutputIterator >
OutputIterator get_particles_at_interface (Mediator_label mediator, Partner_label partner_1, Partner_label partner_2, OutputIterator out) const
 

Contacts Accessors

unsigned get_number_of_contacts_at_interface (Partner_label partner_1, Partner_label partner_2) const
 Get the number of contacts at the interface defined by the two partners. More...
 
template<class OutputIterator >
OutputIterator get_contacts_at_interface (Partner_label partner_1, Partner_label partner_2, OutputIterator out) const
 Get all the contacts at the interface (partner_1, partner_2). More...
 
unsigned get_number_of_contacts_at_interface (Partner_label partner_1, Partner_label partner_2, Mediator_label mediator) const
 Get the number of contacts at the interface defined by the two partners and the mediator that are nearest to a vertex labelled with partner_1. More...
 
template<class OutputIterator >
OutputIterator get_contacts_at_interface (Partner_label partner_1, Partner_label partner_2, Mediator_label mediator, OutputIterator out) const
 Get all the contacts at the interface (partner_1, mediator) that are nearest to a contact (partner_2, mediator). More...
 
template<class OutputIterator >
OutputIterator get_neighborhood (Particle_vertex_handle particle, OutputIterator out) const
 nearest particles in the triangulation, not in the alpha-complex !!!! More...
 

Queries

bool is_interface_partner_partner_contact (Particle_vertex_handle u, Particle_vertex_handle v) const
 
bool is_interface_partner_mediator_contact (Particle_vertex_handle u, Particle_vertex_handle v) const
 

Contacts Order 3 Accessors

template<class OutputIterator >
OutputIterator get_neighborhood (const Contact &contact, OutputIterator out) const
 nearest particles in the triangulation, not in the alpha-complex !!!! More...
 

Detailed Description

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier = T_Molecular_geometric_model_classifier_for_alpha_complex <CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits> >>
class SBL::CSB::T_Molecular_structure_classifier< ParticleWithSystemLabelTraits, MolecularModelClassifier >

Classify the particles of molecular systems that are at a given interface.

Data structure classifying the set of vertices and edges located at the interface between the partners. It also finalizes the labelling of vertices of an alpha-complex designed for a molecular system with several partners. In particular, it marks water molecules that are at the interface between the partners (interface water molecules), and the ones that are not (bulked water molecules).

Template Parameters
ParticleWithSystemLabelTraitsmodel of ParticleTraits where particles have an attached system\'s label.
MolecularModelClassifierClassify a molecular model, i.e the geometric embedding of a molecular structure.

Member Typedef Documentation

◆ Contact

◆ Contact_with_order

◆ Extra_label_classifier

typedef Extra_labels_traits::Primitive_label_classifier Extra_label_classifier

Model of MolecularSystemLabelsTraits extra.

◆ Extra_labels_traits

◆ Mediator_label

System's label associated to a mediator.

◆ Mediator_label_classifier

◆ Mediator_labels_forest

◆ Mediator_labels_traits

◆ Molecular_geometric_model_classifier

typedef MolecularModelClassifier Molecular_geometric_model_classifier

Alias for the model classifier.

◆ Molecular_model

typedef MolecularModelClassifier::Molecular_model Molecular_model

Type of molecular model for the model classifier.

◆ Molecular_structure_traits

typedef CSB::T_Molecular_structure_traits<ParticleWithSystemLabelTraits, typename MolecularModelClassifier::Molecular_model> Molecular_structure_traits

◆ Particle_traits

typedef ParticleWithSystemLabelTraits Particle_traits

◆ Particle_vertex_handle

◆ Particle_vertex_handle_with_order

◆ Partner_label

System's label associated to a partner.

◆ Partner_label_classifier

◆ Partner_labels_forest

◆ Partner_labels_traits

◆ Self

typedef T_Molecular_structure_classifier<ParticleWithSystemLabelTraits, MolecularModelClassifier> Self

Constructor & Destructor Documentation

◆ T_Molecular_structure_classifier() [1/2]

T_Molecular_structure_classifier ( MolecularModelClassifier &  model_classifier,
Partner_label_classifier partners_classifier,
Mediator_label_classifier mediators_classifier,
Extra_label_classifier extras_classifier 
)
inline

◆ T_Molecular_structure_classifier() [2/2]

T_Molecular_structure_classifier ( Molecular_model model,
Partner_label_classifier partners_classifier,
Mediator_label_classifier mediators_classifier,
Extra_label_classifier extras_classifier 
)
inline

◆ ~T_Molecular_structure_classifier()

Member Function Documentation

◆ get_contacts_at_interface() [1/2]

OutputIterator get_contacts_at_interface ( Partner_label  partner_1,
Partner_label  partner_2,
Mediator_label  mediator,
OutputIterator  out 
) const
inline

Get all the contacts at the interface (partner_1, mediator) that are nearest to a contact (partner_2, mediator).

Precondition
partner_1 is not equal to or an ancestor of partner_2, and reciprocally.

◆ get_contacts_at_interface() [2/2]

OutputIterator get_contacts_at_interface ( Partner_label  partner_1,
Partner_label  partner_2,
OutputIterator  out 
) const
inline

Get all the contacts at the interface (partner_1, partner_2).

Precondition
partner_1 is not equal to or an ancestor of partner_2, and reciprocally.

◆ get_mediators_forest()

const T_Molecular_structure_classifier< ParticleWithSystemLabelTraits, MolecularModelClassifier >::Mediator_labels_forest & get_mediators_forest ( void  ) const
inline

Return the forest representation of the mediators' labels.

◆ get_model_classifier() [1/2]

MolecularModelClassifier & get_model_classifier ( void  )
inline

◆ get_model_classifier() [2/2]

const MolecularModelClassifier & get_model_classifier ( void  ) const
inline

◆ get_neighborhood() [1/2]

OutputIterator get_neighborhood ( const Contact contact,
OutputIterator  out 
) const
inline

nearest particles in the triangulation, not in the alpha-complex !!!!

◆ get_neighborhood() [2/2]

OutputIterator get_neighborhood ( Particle_vertex_handle  particle,
OutputIterator  out 
) const
inline

nearest particles in the triangulation, not in the alpha-complex !!!!

◆ get_number_of_contacts_at_interface() [1/2]

unsigned get_number_of_contacts_at_interface ( Partner_label  partner_1,
Partner_label  partner_2 
) const
inline

Get the number of contacts at the interface defined by the two partners.

Precondition
partner_1 is not equal to or an ancestor of partner_2, and reciprocally.

◆ get_number_of_contacts_at_interface() [2/2]

unsigned get_number_of_contacts_at_interface ( Partner_label  partner_1,
Partner_label  partner_2,
Mediator_label  mediator 
) const
inline

Get the number of contacts at the interface defined by the two partners and the mediator that are nearest to a vertex labelled with partner_1.

Precondition
partner_1 is not equal to or an ancestor of partner_2, and reciprocally.

◆ get_number_of_particles() [1/2]

unsigned get_number_of_particles ( Mediator_label  mediator) const
inline

◆ get_number_of_particles() [2/2]

unsigned get_number_of_particles ( Partner_label  partner) const
inline

◆ get_number_of_particles_at_interface() [1/3]

unsigned get_number_of_particles_at_interface ( Mediator_label  mediator,
Partner_label  partner_1,
Partner_label  partner_2 
) const
inline

◆ get_number_of_particles_at_interface() [2/3]

unsigned get_number_of_particles_at_interface ( Partner_label  partner_1,
Partner_label  partner_2 
) const
inline

◆ get_number_of_particles_at_interface() [3/3]

unsigned get_number_of_particles_at_interface ( Partner_label  partner_1,
Partner_label  partner_2,
Mediator_label  mediator 
) const
inline

◆ get_particles() [1/2]

OutputIterator get_particles ( Mediator_label  mediator,
OutputIterator  out 
) const
inline

◆ get_particles() [2/2]

OutputIterator get_particles ( Partner_label  partner,
OutputIterator  out 
) const
inline

◆ get_particles_at_interface() [1/3]

OutputIterator get_particles_at_interface ( Mediator_label  mediator,
Partner_label  partner_1,
Partner_label  partner_2,
OutputIterator  out 
) const
inline

◆ get_particles_at_interface() [2/3]

OutputIterator get_particles_at_interface ( Partner_label  partner_1,
Partner_label  partner_2,
Mediator_label  mediator,
OutputIterator  out 
) const
inline

◆ get_particles_at_interface() [3/3]

OutputIterator get_particles_at_interface ( Partner_label  partner_1,
Partner_label  partner_2,
OutputIterator  out 
) const
inline

◆ get_partners_forest()

const T_Molecular_structure_classifier< ParticleWithSystemLabelTraits, MolecularModelClassifier >::Partner_labels_forest & get_partners_forest ( void  ) const
inline

Return the forest representation of the partners' labels.

◆ is_interface_partner_mediator_contact()

bool is_interface_partner_mediator_contact ( Particle_vertex_handle  u,
Particle_vertex_handle  v 
) const
inline

◆ is_interface_partner_partner_contact()

bool is_interface_partner_partner_contact ( Particle_vertex_handle  u,
Particle_vertex_handle  v 
) const
inline