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

Module classifying the particles of a molecular structure following their system's labels. More...

#include "Molecular_structure_classifier_module.hpp"

Public Member Functions

virtual boost::program_options::options_description add_options (void) const
 Virtual method for adding options to the module. More...
 

Static Public Member Functions

static boost::program_options::options_description *& get_options (void)
 Access to the options' description of the module. More...
 

Modules Management

void set_module_instance_name (const std::string &module_instance_name)
 Sets a name for this instance of this module. In particular, it will be used in the prefix of output files generated by a collection of modules. More...
 
const std::string & get_module_instance_name (void) const
 Get the name of this instance of this module. More...
 
void set_report_mode (std::ios_base::openmode report_mode)
 Set a report mode, that is open or append modes. More...
 
void set_report_mode (std::ios_base::openmode &report_mode)
 Set a report mode, that is open or append modes. More...
 
const std::ios_base::openmode get_report_mode (void) const
 Get the report mode to be used when reporting. More...
 

Others

template<class Self_ >
Self_ * clone (const Self_ *s) const
 Clones the object using the copy constructor. More...
 
virtual bool is_logical_module (void) const
 Checks that this module defines a logical operator. More...
 
virtual bool is_condition_module (void) const
 Checks that this module defines a condition operator. More...
 
virtual bool operator() (void)
 Only for condition modules, for returning the predicate value. More...
 
virtual bool is_modules_collection (void) const
 Checks that this module defines a collection of modules. More...
 

Traits Requirements

typedef ModuleTraits::Molecular_structure_classifier Molecular_structure_classifier
 Classify the particles of molecular systems that are at a given interface. More...
 

Other Types

typedef Molecular_structure_classifier::Molecular_geometric_model_classifier Molecular_geometric_model_classifier
 Alias for the model classifier. More...
 
typedef Molecular_geometric_model_classifier::Molecular_model Molecular_model
 Type of molecular model for the model classifier. More...
 
typedef Molecular_structure_classifier::Partner_label_classifier Partner_label_classifier
 Model of MolecularSystemLabelsTraits partners. More...
 
typedef Molecular_structure_classifier::Mediator_label_classifier Mediator_label_classifier
 Model of MolecularSystemLabelsTraits mediators. More...
 
typedef Molecular_structure_classifier::Extra_label_classifier Extra_label_classifier
 Model of MolecularSystemLabelsTraits extra. More...
 

Input Accessors

Molecular_model *& get_molecular_model (void)
 Reference to a pointer over the input molecular model. More...
 
Partner_label_classifier *& get_partner_classifier (void)
 Reference to a pointer over the input partner's labels classifier. More...
 
Mediator_label_classifier *& get_mediator_classifier (void)
 Reference to a pointer over the input mediator's labels classifier. More...
 
Extra_label_classifier *& get_extra_classifier (void)
 Reference to a pointer over the input extra's labels classifier. More...
 

Output Accessors

const Molecular_structure_classifierget_classifier (void) const
 Const reference to the output structure classifier. More...
 
Molecular_structure_classifierget_classifier (void)
 Reference to the output structure classifier. More...
 

Mandatory Requirements

void run (unsigned verbose, std::ostream &out)
 Runs the module following the input options. More...
 
bool is_runnable (void) const
 Checks that all the input options were set. More...
 
void statistics (std::ostream &out)
 Reports high-level statistics on the module. More...
 
std::string get_name (void) const
 Returns the name of the package. More...
 

Optional Requirements

bool check_options (std::string &message) const
 Checks that the input options' values are coherent. More...
 
std::string get_output_prefix (void) const
 Returns a prefix that concatains the input line options used when running the module. More...
 
void report (const std::string &prefix)
 Reports the output and statistics in output files. More...
 

Detailed Description

template<class ModuleTraits>
class SBL::Modules::T_Molecular_structure_classifier_module< ModuleTraits >

Module classifying the particles of a molecular structure following their system's labels.

Classifying atoms and contacts between atoms has two aspects:

  \li the geometric models level: one wishes to find all the
  contacts in a molecular model. The
  \ref Molecular_geometric_model_classifier-package provides different
  geometric model classifiers. In particular, the
  SBL::CSB::T_Molecular_geometric_model_classifier_for_alpha_complex class
  is used when the geometric model is an \form#2-complex.

  \li the systems level: one wishes to find all the particles
  belonging to a given partner, or all contacts between particles of
  two different partners. The
  \ref Molecular_structure_classifier-package provides the
  SBL::CSB::T_Molecular_structure_classifier<<b><em> ParticleWithSystemLabelTraits </em></b>,
  <b><em> MolecularModelClassifier </em></b>> class to classify the particles
  endowed with a partner's label. The second template parameter
  is a model classifier used to classify the contacts in the
  molecular model.

  The input molecular model can be set using the method
  T_Molecular_structure_classifier_module::get_molecular_model,
  that returns a reference over a pointer on the input geometric
  moel. 

  The system's label of a particle is determined by a system's
  label classifier. There is one classifier for each category of
  system's label, that are partners, mediators and extras. These
  can be set using the methods
  T_Molecular_structure_classifier_module::get_partner_classifier,
  T_Molecular_structure_classifier_module::get_mediator_classifier
  and
  T_Molecular_structure_classifier_module::get_extra_classifier
  . For moredetails on these primitive labels classifier, see
  \ref MolecularSystemLabelsTraits-package.


  \tparam ModuleTraits Traits class defining the type
  T_Molecular_structure_classifier_module::Molecular_structure_classifier.

Member Typedef Documentation

◆ Extra_label_classifier

◆ Mediator_label_classifier

◆ Molecular_geometric_model_classifier

◆ Molecular_model

typedef Molecular_geometric_model_classifier::Molecular_model Molecular_model

Type of molecular model for the model classifier.

◆ Molecular_structure_classifier

typedef ModuleTraits::Molecular_structure_classifier Molecular_structure_classifier

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.

◆ Partner_label_classifier

Member Function Documentation

◆ add_options()

virtual boost::program_options::options_description add_options ( void  ) const
inlinevirtualinherited

Virtual method for adding options to the module.

Reimplemented in T_Morse_theory_based_analyzer_for_NNG_module< ModuleTraits >, T_Exploration_parameters_with_layers< NumberType, Distance >, T_Generic_annotator_without_file< AnnotationType, SetAnnotation, GetInstanceName >, T_Space_filling_model_interface_finder_module< ModuleTraits >, T_Space_filling_model_inner_approximation_module< ModuleTraits >, T_Molecular_interfaces_module< ModuleTraits >, T_PDB_file_loader< ESBTLMolecularSystem, PDBLineFormat >, T_PDB_file_loader< Molecular_system >, T_Union_of_balls_surface_volume_3_module< ModuleTraits, OutputArchive >, T_Space_filling_model_shelling_diagram_comparison_module< ModuleTraits >, T_Space_filling_model_outer_approximation_module< ModuleTraits >, T_Morse_theory_based_analyzer_module< ModuleTraits, MorseSmaleWittenChainComplex >, T_Morse_theory_based_analyzer_module< ModuleTraits, SBL::GT::T_Morse_Smale_Witten_chain_complex_from_vertex_weighted_graph_builder< GraphType, GetWeight >::Morse_Smale_Witten_chain_complex >, T_Morse_theory_based_analyzer_module< ModuleTraits, SBL::GT::T_Morse_Smale_Witten_chain_complex_from_NNG_builder< ModuleTraits::Nearest_neighbors_graph, ModuleTraits::Morse_function, ModuleTraits::Distance_graph_function >::Morse_Smale_Witten_chain_complex >, T_Morse_theory_based_analyzer_module< ModuleTraits, SBL::GT::T_Morse_Smale_Witten_chain_complex_from_weighted_graph_builder< GraphType, GetWeight >::Morse_Smale_Witten_chain_complex >, T_Space_filling_model_interpolated_approximation_module< ModuleTraits >, T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >, T_Correlated_motions_by_domain_module< ModuleTraits >, T_Radius_annotator_for_particles_with_annotated_name< NT, SetRadius >, T_Protein_representation_loader< ProteinRepresentation, MolecularCovalentStructureBuilder, PDBLineFormat >, T_Sample_extender_module< ModuleTraits >, T_Stop_criterion_module< ModuleTraits >, T_Conformations_file_loader< ConformationType, ConformationBuilder, ESBTLMolecularSystem, PDBLineFormat >, T_Alpha_complex_of_molecular_model_module< ModuleTraits >, T_Generic_annotator< KeyType, AnnotationType, MakeKey, SetAnnotation, GetOptionName, GetOptionHelp, GetOptionDisplayName >, T_Exploration_parameters_update_module< ModuleTraits >, T_Alignment_structures_module< ModuleTraits, AlignmentEngineStructures >, T_Alignment_structures_module< ModuleTraits, ModuleTraits::Iterative_aligner_engine >, T_Alignment_structures_module< ModuleTraits, AlignmentEngine >, T_Union_of_balls_boundary_3_module< ModuleTraits, ExactNT >, T_Molecular_covalent_structure_loader_from_PDB< ParticleTraits, MolecularCovalentStructure, MolecularCovalentStructureBuilder, PDBLineFormat >, T_XTC_file_loader< ConformationType, ConformationBuilder, ESBTLMolecularSystem, PDBLineFormat >, T_Union_of_balls_mesh_3_module< ModuleTraits >, T_Earth_mover_distance_module< ModuleTraits >, T_Pairwise_structural_alignment_module< ModuleTraits, AlignmentEngine >, T_Alignment_sequences_module< ModuleTraits, AlignmentEngineSequences >, T_Buried_surface_area_without_label_module< ModuleTraits >, T_Tertiary_quaternary_structure_annotator_module< ModuleTraits >, T_Dynamic_annotator_for_atoms< SetDynamicAnnotation >, T_Spatial_search_module< ModuleTraits, ApproximatedSpatialSearchEngine >, T_Buried_surface_area_with_labels_module< ModuleTraits >, T_Name_annotator_for_atoms< SetAnnotatedName >, T_Dynamic_annotator_for_residues< SetDynamicAnnotation >, T_Nearest_neighbors_graph_builder_module< ModuleTraits >, T_Filtration_graph_module< ModuleTraits, GraphBuilder >, T_Primitive_labels_loader< PartnerLabelsTraits, MediatorLabelsTraits, ExtraLabelsTraits >, T_RMSD_comb_edge_weighted_module< ModuleTraits >, T_Acceptance_test_module< ModuleTraits >, T_Energy_landscape_transition_graph_landmarks_paths_module< ModuleTraits >, T_Sample_selector_module< ModuleTraits >, T_Spheres_3_file_loader< Sphere3, Point3 >, T_Numbers_file_loader< FT, Tag >, T_Name_annotator_for_pseudo_atoms< SetAnnotatedName >, T_Sequences_loader< FT >, T_Graph_loader< GraphType, FT >, T_Graph_loader< GraphType, FT >, T_Graph_loader< Graph >, T_Weighted_vertex_graph_loader< PointD, WeightType, GraphType >, T_Graph_loader< GraphType, FT >, T_Cluster_engine_module< ModuleTraits >, T_Weights_file_loader< FT >, T_Archive_file_loader< InputArchive, SerializedData >, T_Archive_file_loader< boost::archive::xml_iarchive, typename Traits::Atom_shelling_forest >, T_Particle_annotator_collector< ParticleAnnotator1, ParticleAnnotator2 >, T_Exploration_parameters_default< NumberType, Distance >, T_Transition_graph_loader< InputArchive, TransitionGraphTraits >, T_Points_d_file_loader< PointD >, T_Transition_graph_loader< boost::archive::xml_iarchive, typename Traits::Transition_graph_traits >, T_Domain_annotator_for_particles< Annotations >, T_Iterative_alignment_module< ModuleTraits >, T_Molecular_covalent_structure_loader_from_MOL< MolecularCovalentStructure >, T_Transition_graph_builder_from_DB_of_critical_points_module< ModuleTraits >, T_Conformational_ensemble_symmetric_difference_module< ModuleTraits >, and T_Graph_loader< Graph >.

◆ check_options()

bool check_options ( std::string &  message) const
inlinevirtual

Checks that the input options' values are coherent.

Reimplemented from T_Module_option_description<>.

◆ clone()

Self_* clone ( const Self_ *  s) const
inlineinherited

Clones the object using the copy constructor.

◆ get_classifier() [1/2]

const T_Molecular_structure_classifier_module< ModuleTraits >::Molecular_structure_classifier & get_classifier ( void  ) const
inline

Const reference to the output structure classifier.

◆ get_classifier() [2/2]

T_Molecular_structure_classifier_module< ModuleTraits >::Molecular_structure_classifier & get_classifier ( void  )
inline

Reference to the output structure classifier.

◆ get_extra_classifier()

T_Molecular_structure_classifier_module< ModuleTraits >::Extra_label_classifier *& get_extra_classifier ( void  )
inline

Reference to a pointer over the input extra's labels classifier.

◆ get_mediator_classifier()

T_Molecular_structure_classifier_module< ModuleTraits >::Mediator_label_classifier *& get_mediator_classifier ( void  )
inline

Reference to a pointer over the input mediator's labels classifier.

◆ get_module_instance_name()

const std::string& get_module_instance_name ( void  ) const
inlineinherited

Get the name of this instance of this module.

◆ get_molecular_model()

T_Molecular_structure_classifier_module< ModuleTraits >::Molecular_model *& get_molecular_model ( void  )
inline

Reference to a pointer over the input molecular model.

◆ get_name()

std::string get_name ( void  ) const
inlinevirtual

Returns the name of the package.

Reimplemented from Module_base.

◆ get_options()

static boost::program_options::options_description*& get_options ( void  )
inlinestaticinherited

Access to the options' description of the module.

◆ get_output_prefix()

std::string get_output_prefix ( void  ) const
inlinevirtual

Returns a prefix that concatains the input line options used when running the module.

Reimplemented from T_Module_option_description<>.

◆ get_partner_classifier()

T_Molecular_structure_classifier_module< ModuleTraits >::Partner_label_classifier *& get_partner_classifier ( void  )
inline

Reference to a pointer over the input partner's labels classifier.

◆ get_report_mode()

const std::ios_base::openmode get_report_mode ( void  ) const
inlineinherited

Get the report mode to be used when reporting.

◆ is_condition_module()

virtual bool is_condition_module ( void  ) const
inlineprotectedvirtualinherited

Checks that this module defines a condition operator.

◆ is_logical_module()

virtual bool is_logical_module ( void  ) const
inlineprotectedvirtualinherited

Checks that this module defines a logical operator.

◆ is_modules_collection()

virtual bool is_modules_collection ( void  ) const
inlineprotectedvirtualinherited

Checks that this module defines a collection of modules.

◆ is_runnable()

bool is_runnable ( void  ) const
inlinevirtual

Checks that all the input options were set.

Reimplemented from Module_base.

◆ operator()()

virtual bool operator() ( void  )
inlineprotectedvirtualinherited

Only for condition modules, for returning the predicate value.

◆ report()

void report ( const std::string &  prefix)
inlinevirtual

Reports the output and statistics in output files.

Reimplemented from Module_base.

◆ run()

void run ( unsigned  verbose,
std::ostream &  out 
)
inlinevirtual

Runs the module following the input options.

Implements Module_base.

◆ set_module_instance_name()

void set_module_instance_name ( const std::string &  module_instance_name)
inlineinherited

Sets a name for this instance of this module. In particular, it will be used in the prefix of output files generated by a collection of modules.

◆ set_report_mode() [1/2]

void set_report_mode ( std::ios_base::openmode  report_mode)
inlineinherited

Set a report mode, that is open or append modes.

◆ set_report_mode() [2/2]

void set_report_mode ( std::ios_base::openmode &  report_mode)
inlineinherited

Set a report mode, that is open or append modes.

◆ statistics()

void statistics ( std::ostream &  out)
inlinevirtual

Reports high-level statistics on the module.

Reimplemented from Module_base.