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

Module which computes a pairwise alignment of two structures Module which computes a pairwise alignment of two structures. More...

#include "Alignment_structures_module.hpp"

Public Types

typedef AlignmentEngineStructures Alignment_engine
 Base engine for making alignments between structures. Base engine for making alignments between structures.
typedef Alignment_engine::Aligner_algorithm Aligner_algorithm
 Core algorithm performing the alignment.
typedef Alignment_engine::Alignment_unit Structure_unit
 Type for a unit (e.g residue or nucleotid)
typedef Alignment_engine::Alignment_type Alignment_type
 Representation of an alignment as a sequence of aligned units.
typedef Alignment_engine::Sequence_length_type Sequence_length_type
 Enum for selecting the length of the sequence to consider when computing the similarity / identity percentages.

Public Member Functions

virtual std::string get_output_prefix (void) const
 Returns a prefix that concatains the input line options used when running the module.

Static Public Member Functions

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

Mandatory Requirements

void run (unsigned verbose, std::ostream &out) override
 Runs the module following the input options.
bool is_runnable (void) const override
 Checks that all the input options were set.
void statistics (std::ostream &out) override
 Reports high-level statistics on the module.
boost::program_options::options_description add_options () override
 Virtual method for adding options to the module.
std::string get_name (void) const override
 Returns the name of the package.

Optional Requirements

bool check_options (std::string &message) const override
 Checks that the input options' values are coherent.
void report (const std::string &prefix) override
 Reports the output and statistics in output files.

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.
const std::string & get_module_instance_name (void) const
 Get the name of this instance of this module.
void set_report_mode (std::ios_base::openmode report_mode)
 Set a report mode, that is open or append modes.
void set_report_mode (std::ios_base::openmode &report_mode)
 Set a report mode, that is open or append modes.
const std::ios_base::openmode get_report_mode (void) const
 Get the report mode to be used when reporting.

Optional Requirements

void check_filesystem_directory_exists (const std::string &output_prefix)
 To avoid later crash: check filesystem / existence of directory / directory exists.

Others

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

Detailed Description

template<class ModuleTraits, class AlignmentEngineStructures = SBL::CSB::T_Alignment_engine_structures_apurva <typename ModuleTraits::Structure, typename ModuleTraits::FT, typename ModuleTraits::Molecular_distance>>
class SBL::Modules::T_Alignment_structures_module< ModuleTraits, AlignmentEngineStructures >

Module which computes a pairwise alignment of two structures Module which computes a pairwise alignment of two structures.

Member Typedef Documentation

◆ Aligner_algorithm

template<class ModuleTraits, class AlignmentEngineStructures = SBL::CSB::T_Alignment_engine_structures_apurva <typename ModuleTraits::Structure, typename ModuleTraits::FT, typename ModuleTraits::Molecular_distance>>
typedef Alignment_engine::Aligner_algorithm Aligner_algorithm

Core algorithm performing the alignment.


◆ Alignment_engine

template<class ModuleTraits, class AlignmentEngineStructures = SBL::CSB::T_Alignment_engine_structures_apurva <typename ModuleTraits::Structure, typename ModuleTraits::FT, typename ModuleTraits::Molecular_distance>>
typedef AlignmentEngineStructures Alignment_engine

Base engine for making alignments between structures. Base engine for making alignments between structures.

It inherits from the generic interface for all alignments and provide its base functionality. It also implements functionality specific to structural alignments, in particular for anaylzing and comparing alignments. The specific functionality concerns:

  • the molecular distance between the two aligned structures (e.g the lRMSD),
  • the Distance Difference Matrix (DDM),
  • the dRMSD of the alignment.

Due to geometric nature of the structural alignment, the structure type requires that its units define 3D coordinates, i.e the Alignment_unit defines methods x(), y() and z().

Template Parameters
StructureTypeRepresentation of a structure : it requires in particular to define the type Alignment_unit for the geometric representation of a unit to align (e.g a residue or a nucleotid with associated 3D coordinates), the type Alignment_unit indexing the units in the structure, the method size() to return the length of the sequence, and the operator [Alignment_unit_rep] for accessing to the corresponding unit of the structure.
AlignerAlgorithmBase functor for the algorithm that makes the alignment between the two input structures : it requires to define a type Score_type for the score (e.g a double, or a pair of doubles if two scores are required), to take two input structures and an output iterator over pairs of Alignment_unit_rep for the output alignment, and to return the score of the algorithm
FTNumber type representation used for all statistics except the algorithm score.
MolecularDistanceDistance functor between two molecular structures (default is lRMSD).

◆ Alignment_type

template<class ModuleTraits, class AlignmentEngineStructures = SBL::CSB::T_Alignment_engine_structures_apurva <typename ModuleTraits::Structure, typename ModuleTraits::FT, typename ModuleTraits::Molecular_distance>>
typedef Alignment_engine::Alignment_type Alignment_type

Representation of an alignment as a sequence of aligned units.

◆ Sequence_length_type

template<class ModuleTraits, class AlignmentEngineStructures = SBL::CSB::T_Alignment_engine_structures_apurva <typename ModuleTraits::Structure, typename ModuleTraits::FT, typename ModuleTraits::Molecular_distance>>
typedef Alignment_engine::Sequence_length_type Sequence_length_type

Enum for selecting the length of the sequence to consider when computing the similarity / identity percentages.

◆ Structure_unit

template<class ModuleTraits, class AlignmentEngineStructures = SBL::CSB::T_Alignment_engine_structures_apurva <typename ModuleTraits::Structure, typename ModuleTraits::FT, typename ModuleTraits::Molecular_distance>>
typedef Alignment_engine::Alignment_unit Structure_unit

Type for a unit (e.g residue or nucleotid)

Member Function Documentation

◆ add_options()

template<class ModuleTraits, class AlignmentEngineStructures>
boost::program_options::options_description add_options ( void )
inlineoverridevirtual

Virtual method for adding options to the module.

Reimplemented from T_Module_option_description< Dummy >.

◆ check_filesystem_directory_exists()

void check_filesystem_directory_exists ( const std::string & output_prefix)
inlineinherited

To avoid later crash: check filesystem / existence of directory / directory exists.

◆ check_options()

template<class ModuleTraits, class AlignmentEngineStructures>
bool check_options ( std::string & message) const
inlineoverridevirtual

Checks that the input options' values are coherent.

Reimplemented from T_Module_option_description< Dummy >.

◆ clone()

template<class Self_>
Self_ * clone ( const Self_ * s) const
inlineinherited

Clones the object using the copy constructor.

◆ get_module_instance_name()

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

Get the name of this instance of this module.

◆ get_name()

template<class ModuleTraits, class AlignmentEngineStructures>
std::string get_name ( void ) const
inlineoverridevirtual

Returns the name of the package.

Reimplemented from Module_base.

◆ get_options()

template<class Dummy = void>
boost::program_options::options_description *& get_options ( void )
inlinestaticinherited

Access to the options' description of the module.

◆ get_output_prefix()

template<class Dummy = void>
virtual std::string get_output_prefix ( void ) const
inlinevirtualinherited

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

Reimplemented in T_Archive_file_loader< InputArchive, SerializedData >, T_Biomolecule_representation_loader< ProteinRepresentation, NucleicAcidRepresentation, MCSLoader >, T_Biomolecule_representation_loader< Protein_representation, Nucleic_acid_representation, Molecular_covalent_structure_loader >, T_Biomolecule_representation_loader< Protein_representation_FIAT, Nucleic_acid_representation_FIAT, MCS_loader_biomols_FIAT >, T_Biomolecule_representation_loader< Protein_representation_FIT, Nucleic_acid_representation_FIT, MCS_loader_biomols_FIT >, T_Biomolecule_representation_loader< Protein_representation_HIAT, Nucleic_acid_representation_HIAT, MCS_loader_biomols_HIAT >, T_Biomolecule_representation_loader< Protein_representation_HIT, Nucleic_acid_representation_HIT, MCS_loader_biomols_HIT >, T_Conformation_loader< Conformation_builder_ >, T_Conformation_loader< Conformation >, T_Conformation_loader< Conformation_builder >, T_Conformation_loader< SBL::CSB::T_Conformation_builder_cartesian_default< Conformation > >, T_Molecular_covalent_structure_loader< Molecular_covalent_structure_builder_ >, T_Molecular_covalent_structure_loader< Covalent_structure_builder >, T_Molecular_covalent_structure_loader< Default_molecular_covalent_structure_builder_martini >, T_Molecular_covalent_structure_loader< MCS_builder_biomols >, T_Molecular_covalent_structure_loader< MCS_builder_biomols_FIAT >, T_Molecular_covalent_structure_loader< MCS_builder_biomols_FIT >, T_Molecular_covalent_structure_loader< MCS_builder_biomols_HIAT >, T_Molecular_covalent_structure_loader< MCS_builder_biomols_HIT >, T_Molecular_covalent_structure_loader< Molecular_covalent_structure_builder >, T_Molecular_covalent_structure_loader_from_MOL< MolecularCovalentStructure >, T_Molecular_covalent_structure_loader_from_MOL< Covalent_structure >, T_Molecular_covalent_structure_loader_from_MOL< MolecularCovalentStructure >, T_Molecular_system_loader< Molecular_system_ >, T_Molecular_system_loader< Molecular_covalent_structure_builder_::Molecular_covalent_structure::Particle_info::Particle_traits::Molecular_system >, T_Molecular_system_loader< Molecular_system >, T_Molecular_system_loader< Particle_traits::Molecular_system >, T_Molecular_system_loader< Traits::Particle_traits::Molecular_system >, T_Multiple_archives_xml_archive_file_loader< SecondaryArchive, SecondaryData, SerializedData >, T_Nucleic_acid_representation_loader< NucleicAcidRepresentation, MCSLoader >, T_Nucleic_acid_representation_loader< Nucleic_acid_representation, Molecular_covalent_structure_loader >, T_Nucleic_acid_representation_loader< Nucleic_acid_representation_FIAT, MCS_loader_biomols_FIAT >, T_Nucleic_acid_representation_loader< Nucleic_acid_representation_FIT, MCS_loader_biomols_FIT >, T_Nucleic_acid_representation_loader< Nucleic_acid_representation_HIAT, MCS_loader_biomols_HIAT >, T_Nucleic_acid_representation_loader< Nucleic_acid_representation_HIT, MCS_loader_biomols_HIT >, T_Numbers_file_loader< FT, Tag >, T_Numbers_file_loader< FT, Tag >, T_Numbers_file_loader< Traits::FT >, T_Numbers_file_loader< Traits::Point >, T_Primitive_labels_loader< PartnerLabelsTraits, MediatorLabelsTraits, ExtraLabelsTraits >, T_Primitive_labels_loader< Label_traits >, T_Primitive_labels_loader< Partner_label_traits, Mediator_label_traits, Extra_label_traits >, T_Primitive_labels_loader< PartnerLabelsTraits, MediatorLabelsTraits, ExtraLabelsTraits >, T_Protein_representation_loader< ProteinRepresentation, MCSLoader >, T_Protein_representation_loader< Protein_representation >, T_Protein_representation_loader< Protein_representation, MCS_loader_biomols >, T_Protein_representation_loader< Protein_representation, Molecular_covalent_structure_loader >, T_Protein_representation_loader< Protein_representation_FIAT, MCS_loader_biomols_FIAT >, T_Protein_representation_loader< Protein_representation_FIT, MCS_loader_biomols_FIT >, T_Protein_representation_loader< Protein_representation_HIAT, MCS_loader_biomols_HIAT >, T_Protein_representation_loader< Protein_representation_HIT, MCS_loader_biomols_HIT >, T_Transition_graph_loader< InputArchive, TransitionGraphTraits >, No_particle_annotator, T_Domain_annotator_for_particles< Annotations >, T_Dynamic_annotator_for_atoms< SetDynamicAnnotation >, T_Dynamic_annotator_for_atoms< SetDynamicAnnotation >, T_Dynamic_annotator_for_residues< SetDynamicAnnotation >, T_Dynamic_annotator_for_residues< SetDynamicAnnotation >, T_Generic_annotator< KeyType, AnnotationType, MakeKey, SetAnnotation, GetOptionName, GetOptionHelp, GetOptionDisplayName >, T_Generic_annotator< KeyType, AnnotationType, MakeKey, SetAnnotation, GetOptionName, GetOptionHelp, GetOptionDisplayName >, T_Generic_annotator_without_file< AnnotationType, SetAnnotation, GetInstanceName >, T_Graph_loader< GraphType, FT >, T_Graph_loader< Traits::Graph, Traits::NT >, T_Name_annotator_for_atoms< SetAnnotatedName >, T_Name_annotator_for_atoms< SetAnnotatedName >, T_Name_annotator_for_pseudo_atoms< SetAnnotatedName >, T_Name_annotator_for_pseudo_atoms< SetAnnotatedName >, T_Particle_annotator_collector< ParticleAnnotator1, ParticleAnnotator2 >, T_Particle_annotator_collector< Name_and_radius_annotator, Dynamic_annotator >, T_Particle_annotator_collector< Name_annotator, Radius_annotator >, T_Points_d_file_loader< PointD >, T_Points_d_file_loader< K::Point_d >, T_Points_d_file_loader< Traits::Point >, T_Points_d_file_loader_generic< PointD, PointD_filler >, T_Radius_annotator_for_particles_with_annotated_name< NT, SetRadius >, T_Radius_annotator_for_particles_with_annotated_name< NT, SetRadius >, T_Radius_annotator_for_particles_with_annotated_name< typename Base::FT >, T_Spheres_3_file_loader< Sphere3, Point3 >, T_Spheres_3_file_loader< CGAL::Weighted_point_3< K >, K::Point_3 >, T_Spheres_3_file_loader< Sphere3, Point3 >, T_XTC_file_loader< ConformationType, ConformationBuilder, ESBTLMolecularSystem, PDBLineFormat >, T_XTC_file_loader< ConformationType, ConformationBuilder, ESBTLMolecularSystem, PDBLineFormat >, T_Alpha_complex_of_molecular_model_module< ModuleTraits >, T_Alpha_complex_of_molecular_model_module< Module_traits >, T_Alpha_complex_of_molecular_model_module< Traits >, T_Buried_surface_area_with_labels_module< ModuleTraits >, T_Buried_surface_area_with_labels_module< Module_traits >, T_Buried_surface_area_without_label_module< ModuleTraits >, T_Buried_surface_area_without_label_module< Module_traits >, T_Cluster_engine_module< ModuleTraits >, T_Cluster_engine_module< Traits >, T_Earth_mover_distance_module< ModuleTraits >, T_Earth_mover_distance_module< Traits >, T_Module_based_workflow< Dummy >, T_Module_based_workflow< Dummy >, T_Module_condition< Module, Predicate >, T_Module_conjunction< ModuleOrLoader1, ModuleOrLoader2 >, T_Molecular_interfaces_module< ModuleTraits >, T_Molecular_interfaces_module< Module_traits >, T_Molecular_structure_classifier_module< ModuleTraits >, T_Molecular_structure_classifier_module< Module_traits >, T_Morse_theory_based_analyzer_module< ModuleTraits, MorseSmaleWittenChainComplex >, T_Morse_theory_based_analyzer_module< ModuleTraits, Morse_Smale_Witten_chain_complex >, T_Morse_theory_based_analyzer_module< ModuleTraits, MorseSmaleWittenChainComplex >, 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_vertex_weighted_graph_builder< typename ModuleTraits::Graph, typename ModuleTraits::Get_weight >::Morse_Smale_Witten_chain_complex >, T_Morse_theory_based_analyzer_module< ModuleTraits, SBL::GT::T_Morse_Smale_Witten_chain_complex_from_weighted_graph_builder< typename ModuleTraits::Graph, typename ModuleTraits::Get_weight >::Morse_Smale_Witten_chain_complex >, T_Nearest_neighbors_graph_builder_module< ModuleTraits >, T_Nearest_neighbors_graph_builder_module< Traits >, T_Spatial_search_module< ModuleTraits, ApproximatedSpatialSearchEngine >, T_Spatial_search_module< ModuleTraits, ApproximatedSpatialSearchEngine >, T_Spatial_search_module< Traits >, T_Tertiary_quaternary_structure_annotator_module< ModuleTraits >, T_Tertiary_quaternary_structure_annotator_module< Traits >, T_Union_of_balls_boundary_3_module< ModuleTraits, ExactNT >, T_Union_of_balls_boundary_3_module< Module_traits >, T_Union_of_balls_boundary_3_module< ModuleTraits, ExactNT >, T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >, T_Union_of_balls_boundary_patch_shelling_3_module< Module_traits >, T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >, T_Union_of_balls_mesh_3_module< ModuleTraits >, T_Union_of_balls_mesh_3_module< Module_traits >, T_Union_of_balls_surface_volume_3_module< ModuleTraits, OutputArchive >, T_Union_of_balls_surface_volume_3_module< ModuleTraits, OutputArchive >, and T_Union_of_balls_surface_volume_3_module< Traits >.

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

template<class ModuleTraits, class AlignmentEngineStructures>
bool is_runnable ( void ) const
inlineoverridevirtual

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

template<class ModuleTraits, class AlignmentEngineStructures>
void report ( const std::string & prefix)
inlineoverridevirtual

Reports the output and statistics in output files.

Reimplemented from Module_base.

◆ run()

template<class ModuleTraits, class AlignmentEngineStructures>
void run ( unsigned verbose,
std::ostream & out )
inlineoverridevirtual

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

template<class ModuleTraits, class AlignmentEngineStructures>
void statistics ( std::ostream & out)
inlineoverridevirtual

Reports high-level statistics on the module.

Reimplemented from Module_base.