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

Internal base for the workflow. More...

#include <Module_based_workflow.hpp>

Classes

class  Edge_property_label_writer
 Writer of properties of an edge of the graph in .dot format. More...
class  Graph_property_label_writer
 Writer of properties of the graph in .dot format. More...
class  Vertex_property_label_writer
 Writer of properties of a vertex of the graph in .dot format. More...

Public Types

typedef Workflow_graph_traits::vertex_descriptor Vertex
 Representation of a verttex in the workflow that could be a module, or the Start or End vertices.
typedef Workflow_graph_traits::edge_descriptor Edge
 Representation of the flow of information in the workflow.

Public Member Functions

virtual boost::program_options::options_description add_options (void)
 Virtual method for adding options to the module.
virtual bool check_options (std::string &message) const
 Checks that the input options' values are coherent.

Static Public Member Functions

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

Constructors

 T_Module_based_workflow (const std::string &application_name)
 Initialize this application with a name.
 ~T_Module_based_workflow (void)
 Clear this application and close the log.

Mandatory Requirements

std::string get_name (void) const override
 Returns the name of the package.
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.

Optional Requirements

std::string get_output_prefix (void) const override
 Returns a prefix that concatains the input line options used when running the module.
void report (const std::string &prefix) override
 Reports the output and statistics in output files.

Based Options

void add_helper (const std::string &helper)
 Set the helper of the application.
std::ostream & log (void)
 Stream for the standard output, that can be either the shell or a file.
unsigned verbose (void) const
 Return the verbosity level for the workflow : 0 (no output), 1 (output during the run), 2 (output during the statistics) or 3 (all output).

Modules

template<class Loader>
Loaderadd_loader (const std::string &name="")
 Registers a loader into the automaton: note that loaders are executed before the modules.
template<class Loader>
Loaderadd_loader (Loader &loader, const std::string &name="")
 Registers a loader into the automaton: note that loaders are executed before the modules.
template<class Module>
Vertex register_module (const std::string &name="")
 Registers a module with an input: note that modules are executed in a FIFO manner.
Vertex register_module (Module_base &module, const std::string &name="")
 Registers a module without any input: note that modules are executed in a FIFO manner.
void make_optional_module (Vertex u, const std::string &option_name, const std::string &option_helper)
 Registers a module with an input: note that modules are executed in a FIFO manner.
template<class Module1, class Module2>
Vertex make_conjunction (Vertex u, Vertex v)
 Make a module that is the conjunction of the two input modules.
template<class ModuleIn, class ModuleOut, class Predicate, class UpdateIfTrue>
void make_condition (Vertex u, const Predicate &P, Vertex v, const UpdateIfTrue &update_true, const std::string &predicate_name, const std::string &update_name="")
 Make a condition module with exactly one possible outflow, and a predicate for checking if it is followed.
template<class ModuleIn, class ModuleOutTrue, class ModuleOutFalse, class Predicate, class UpdateIfTrue, class UpdateIfFalse>
void make_condition (Vertex u, const Predicate &P, Vertex v, const UpdateIfTrue &update_true, Vertex w, const UpdateIfFalse &update_false, const std::string &predicate_name, const std::string &update_name="")
 Make a condition module with exactly two possible outflows, and a predicate for checking which one to follow.

Flows

void set_start_module (Vertex u)
 Modules connected to the start vertex will be first executed; in case of multiple vertices, the modules are executed in an arbitrary order.
void set_end_module (Vertex u)
 The results of all modules connected to the end vertex are reported.
template<class Transformer>
void make_module_flow (Vertex u, Vertex v, const Transformer &join, const std::string &name="")
 Connect the modules represented by the vertices u (source output) and v (target input); if any output data from u should be passed to the input data of v, it is done through the join functor; the optional name is displayed over the edge of the graph when printing the workflow.

Running the workflow

bool is_valid_workflow (unsigned verbose, std::ostream &out) const
void parse_command_line (int argc, char *argv[])
 Parses the command line options and store the values of the options: the check_options method is called for all loaders and all modules.
void load (std::size_t i)
 Load the data using the loaders.
void load (void)
 Load the data using the loaders.
void start (void)
 Runs the application by pushing into the stack the Start vertex.

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 Dummy = void>
class SBL::Modules::T_Module_based_workflow< Dummy >

Internal base for the workflow.


Class Documentation

◆ SBL::Modules::T_Module_based_workflow::Edge_property_label_writer

class SBL::Modules::T_Module_based_workflow::Edge_property_label_writer
template<class Dummy = void>
class SBL::Modules::T_Module_based_workflow< Dummy >::Edge_property_label_writer

Writer of properties of an edge of the graph in .dot format.

◆ SBL::Modules::T_Module_based_workflow::Graph_property_label_writer

class SBL::Modules::T_Module_based_workflow::Graph_property_label_writer
template<class Dummy = void>
class SBL::Modules::T_Module_based_workflow< Dummy >::Graph_property_label_writer

Writer of properties of the graph in .dot format.

◆ SBL::Modules::T_Module_based_workflow::Vertex_property_label_writer

class SBL::Modules::T_Module_based_workflow::Vertex_property_label_writer
template<class Dummy = void>
class SBL::Modules::T_Module_based_workflow< Dummy >::Vertex_property_label_writer

Writer of properties of a vertex of the graph in .dot format.

Member Typedef Documentation

◆ Edge

template<class Dummy = void>
typedef Workflow_graph_traits::edge_descriptor Edge

Representation of the flow of information in the workflow.

◆ Vertex

template<class Dummy = void>
typedef Workflow_graph_traits::vertex_descriptor Vertex

Representation of a verttex in the workflow that could be a module, or the Start or End vertices.

Constructor & Destructor Documentation

◆ T_Module_based_workflow()

template<class Dummy>
T_Module_based_workflow ( const std::string & application_name)
inline

Initialize this application with a name.

◆ ~T_Module_based_workflow()

template<class Dummy>
~T_Module_based_workflow ( void )
inline

Clear this application and close the log.

Member Function Documentation

◆ add_helper()

template<class Dummy>
void add_helper ( const std::string & helper)
inline

Set the helper of the application.

◆ add_loader() [1/2]

template<class Dummy>
template<class Loader>
Loader * add_loader ( const std::string & name = "")
inline

Registers a loader into the automaton: note that loaders are executed before the modules.

◆ add_loader() [2/2]

template<class Dummy>
template<class Loader>
Loader * add_loader ( Loader & loader,
const std::string & name = "" )
inline

Registers a loader into the automaton: note that loaders are executed before the modules.

◆ add_options()

template<class Dummy = void>
virtual boost::program_options::options_description add_options ( void )
inlinevirtualinherited

Virtual method for adding options to 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_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 >, 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_Alignment_sequences_module< ModuleTraits, AlignmentEngineSequences >, T_Alignment_sequences_module< Module_traits >, T_Alignment_sequences_module< ModuleTraits, AlignmentEngineSequences >, T_Alignment_structures_module< ModuleTraits, AlignmentEngineStructures >, T_Alignment_structures_module< Module_traits >, T_Alignment_structures_module< ModuleTraits, AlignmentEngineStructures >, T_Alignment_structures_module< Traits, Alignment_engine >, 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_Molecular_interfaces_module< ModuleTraits >, T_Molecular_interfaces_module< Module_traits >, T_Morse_theory_based_analyzer_for_NNG_module< ModuleTraits >, T_Morse_theory_based_analyzer_for_NNG_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_RMSD_comb_edge_weighted_module< ModuleTraits >, T_RMSD_comb_edge_weighted_module< 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 >.

◆ 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 Dummy = void>
virtual bool check_options ( std::string & message) const
inlinevirtualinherited

Checks that the input options' values are coherent.

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_Alignment_sequences_module< ModuleTraits, AlignmentEngineSequences >, T_Alignment_sequences_module< Module_traits >, T_Alignment_sequences_module< ModuleTraits, AlignmentEngineSequences >, T_Alignment_structures_module< ModuleTraits, AlignmentEngineStructures >, T_Alignment_structures_module< Module_traits >, T_Alignment_structures_module< ModuleTraits, AlignmentEngineStructures >, T_Alignment_structures_module< Traits, Alignment_engine >, 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_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 >.

◆ 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 Dummy>
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>
std::string get_output_prefix ( void ) const
inlineoverridevirtual

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

Reimplemented from T_Module_option_description< Dummy >.

◆ 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 Dummy>
bool is_runnable ( void ) const
inlineoverridevirtual

Checks that all the input options were set.

Reimplemented from Module_base.

◆ is_valid_workflow()

template<class Dummy>
bool is_valid_workflow ( unsigned verbose,
std::ostream & out ) const
inline

Check the following properties : – the workflow is connected – each module that is not logical or condition has exactly one input – each logical operator has exactly two input – each condition operator has exactly one input and one to two output

◆ load() [1/2]

template<class Dummy>
void load ( std::size_t i)
inline

Load the data using the loaders.

◆ load() [2/2]

template<class Dummy>
void load ( void )
inline

Load the data using the loaders.

◆ log()

template<class Dummy>
std::ostream & log ( void )
inline

Stream for the standard output, that can be either the shell or a file.

◆ make_condition() [1/2]

template<class Dummy>
template<class ModuleIn, class ModuleOut, class Predicate, class UpdateIfTrue>
void make_condition ( Vertex u,
const Predicate & P,
Vertex v,
const UpdateIfTrue & update_true,
const std::string & predicate_name,
const std::string & update_name = "" )
inline

Make a condition module with exactly one possible outflow, and a predicate for checking if it is followed.

◆ make_condition() [2/2]

template<class Dummy>
template<class ModuleIn, class ModuleOutTrue, class ModuleOutFalse, class Predicate, class UpdateIfTrue, class UpdateIfFalse>
void make_condition ( Vertex u,
const Predicate & P,
Vertex v,
const UpdateIfTrue & update_true,
Vertex w,
const UpdateIfFalse & update_false,
const std::string & predicate_name,
const std::string & update_name = "" )
inline

Make a condition module with exactly two possible outflows, and a predicate for checking which one to follow.

◆ make_conjunction()

template<class Dummy>
template<class Module1, class Module2>
T_Module_based_workflow< Dummy >::Vertex make_conjunction ( Vertex u,
Vertex v )
inline

Make a module that is the conjunction of the two input modules.

◆ make_module_flow()

template<class Dummy>
template<class Transformer>
void make_module_flow ( Vertex u,
Vertex v,
const Transformer & join,
const std::string & name = "" )
inline

Connect the modules represented by the vertices u (source output) and v (target input); if any output data from u should be passed to the input data of v, it is done through the join functor; the optional name is displayed over the edge of the graph when printing the workflow.

◆ make_optional_module()

template<class Dummy>
void make_optional_module ( Vertex u,
const std::string & option_name,
const std::string & option_helper )
inline

Registers a module with an input: note that modules are executed in a FIFO manner.

◆ operator()()

virtual bool operator() ( void )
inlineprotectedvirtualinherited

Only for condition modules, for returning the predicate value.

◆ parse_command_line()

template<class Dummy>
void parse_command_line ( int argc,
char * argv[] )
inline

Parses the command line options and store the values of the options: the check_options method is called for all loaders and all modules.

◆ register_module() [1/2]

template<class Dummy>
template<class Module>
T_Module_based_workflow< Dummy >::Vertex register_module ( const std::string & name = "")
inline

Registers a module with an input: note that modules are executed in a FIFO manner.

◆ register_module() [2/2]

template<class Dummy>
T_Module_based_workflow< Dummy >::Vertex register_module ( Module_base & module,
const std::string & name = "" )
inline

Registers a module without any input: note that modules are executed in a FIFO manner.

◆ report()

template<class Dummy>
void report ( const std::string & output_prefix)
inlineoverridevirtual

Reports the output and statistics in output files.

Reimplemented from Module_base.

◆ run()

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

Runs the module following the input options.

Implements Module_base.

◆ set_end_module()

template<class Dummy>
void set_end_module ( Vertex u)
inline

The results of all modules connected to the end vertex are reported.

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

◆ set_start_module()

template<class Dummy>
void set_start_module ( Vertex u)
inline

Modules connected to the start vertex will be first executed; in case of multiple vertices, the modules are executed in an arbitrary order.

◆ start()

template<class Dummy>
void start ( void )
inline

Runs the application by pushing into the stack the Start vertex.

◆ statistics()

template<class Dummy>
void statistics ( std::ostream & out)
inlineoverridevirtual

Reports high-level statistics on the module.

Reimplemented from Module_base.

◆ verbose()

template<class Dummy>
unsigned verbose ( void ) const
inline

Return the verbosity level for the workflow : 0 (no output), 1 (output during the run), 2 (output during the statistics) or 3 (all output).