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 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.

Internal Public Types

typedef MolecularModelClassifier Molecular_geometric_model_classifier
 Alias for the model classifier.
typedef MolecularModelClassifier::Molecular_model Molecular_model
 Type of molecular model for the model classifier.
typedef Partner_labels_traits::Primitive_label_classifier Partner_label_classifier
 Model of MolecularSystemLabelsTraits partners.
typedef Mediator_labels_traits::Primitive_label_classifier Mediator_label_classifier
 Model of MolecularSystemLabelsTraits mediators.
typedef Extra_labels_traits::Primitive_label_classifier Extra_label_classifier
 Model of MolecularSystemLabelsTraits extra.

System's Labels

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

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.
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).
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.
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).
template<class OutputIterator>
OutputIterator get_neighborhood (Particle_vertex_handle particle, OutputIterator out) const
 nearest particles in the triangulation, not in the alpha-complex !!!!

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 !!!!

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

◆ Extra_label_classifier

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier = T_Molecular_geometric_model_classifier_for_alpha_complex <CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits> >>
typedef Extra_labels_traits::Primitive_label_classifier Extra_label_classifier

Model of MolecularSystemLabelsTraits extra.

◆ Mediator_label

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

System's label associated to a mediator.

◆ Mediator_label_classifier

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier = T_Molecular_geometric_model_classifier_for_alpha_complex <CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits> >>
typedef Mediator_labels_traits::Primitive_label_classifier Mediator_label_classifier

Model of MolecularSystemLabelsTraits mediators.

◆ Molecular_geometric_model_classifier

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier = T_Molecular_geometric_model_classifier_for_alpha_complex <CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits> >>
typedef MolecularModelClassifier Molecular_geometric_model_classifier

Alias for the model classifier.

◆ Molecular_model

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier = T_Molecular_geometric_model_classifier_for_alpha_complex <CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits> >>
typedef MolecularModelClassifier::Molecular_model Molecular_model

Type of molecular model for the model classifier.

◆ Partner_label

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

System's label associated to a partner.

◆ Partner_label_classifier

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier = T_Molecular_geometric_model_classifier_for_alpha_complex <CSB::T_Alpha_complex_of_molecular_model<ParticleWithSystemLabelTraits> >>
typedef Partner_labels_traits::Primitive_label_classifier Partner_label_classifier

Model of MolecularSystemLabelsTraits partners.

Member Function Documentation

◆ get_contacts_at_interface() [1/2]

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
template<class OutputIterator>
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]

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
template<class OutputIterator>
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()

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
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_neighborhood() [1/2]

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
template<class OutputIterator>
OutputIterator get_neighborhood ( const Contact & contact,
OutputIterator out ) const
inline

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

◆ get_neighborhood() [2/2]

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
template<class OutputIterator>
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]

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
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]

template<class ParticleWithSystemLabelTraits, class MolecularModelClassifier>
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_partners_forest()

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

Return the forest representation of the partners' labels.