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

Generic workflow of Space_filling_model_interface for reading the command line options of the applications and running the calculations. More...

#include <Space_filling_model_interface_workflow.hpp>

## Public Types

typedef Traits::Particle_annotator Particle_annotator
Loader of annotations for the input particles.
More...

Loader for one or more PDB files, even listed in a file.
More...

More...

typedef SBL::Modules::T_Alpha_complex_of_molecular_model_module< Traits > Alpha_complex_module
Module building the alpha-complex of an input set of particles. More...

typedef SBL::Modules::T_Molecular_structure_classifier_module< Traits > Structure_classifier_module
Module classifying the particles of a molecular structure following their system's labels. More...

typedef SBL::Modules::T_Buried_surface_area_with_labels_module< Traits > BSA_module
Module building the buried surface areas from the alpha-complex of a molecular model. More...

typedef SBL::Modules::T_Molecular_interfaces_module< Traits > Interfaces_module
Module building the bicolor, mediated and tricolor interfaces of a molecular structure. More...

## Workflow

void start (int argc, char *argv[])
Starts the workflow by reading the command line options, and pushing on the stack the start vertex. More...

## Detailed Description

### template<class Traits> class T_Space_filling_model_interface_workflow< Traits >

Generic workflow of Space_filling_model_interface for reading the command line options of the applications and running the calculations.

This workflow instantiates two loaders and four modules:

Template Parameters
 Traits Traits class defining the types used in the applications of Space_filling_model_interface (see T_Space_filling_model_interface_traits).

## ◆ Alpha_complex_module

Module building the alpha-complex of an input set of particles.

It is designed such that the input can be either a collection of 3D spheres representing the particles, or a collection of particles with the type derived from ParticleTraits, depending on the type of the output -complex:

• Alpha_shape_3 or Fixed_alpha_shape_3 : the input is a collection of particles represented by weighted points (Weighted_point), that is a 3D point (the center of a particle represented as a 3D sphere) with an associated weight (the squared radius of the 3D sphere).

The input collection of particles can be set using the method T_Alpha_complex_of_molecular_model_module::get_particles, that return a reference over the container of particles. Note also that the 3D triangulation underlying the output -complex can be parametrized using the method T_Alpha_complex_of_molecular_model_module::get_triangulation. This is particularly useful when an additional radius has to be set to all the particles when using the class SBL::CSB::T_Alpha_complex_of_molecular_model, for example in the case of the Solvent Accessible Model,solvent accessible model.

  \tparam ModuleTraits Traits class defining the types
T_Alpha_complex_of_molecular_model_module::Alpha_complex and
T_Alpha_complex_of_molecular_model_module::Particles_container.

## ◆ BSA_module

 typedef SBL::Modules::T_Buried_surface_area_with_labels_module BSA_module

Module building the buried surface areas from the alpha-complex of a molecular model.

It builds from an input -complex of type SBL::Modules::T_Buried_surface_area_with_labels_module::Alpha_complex, an object of type SBL::Modules::T_Buried_surface_area_with_labels_module::Buried_surface_area: it is a functor that returns the buried surface area of the input -complex restricted to an input partner's label.

The input -complex can be set using the method SBL::Modules::T_Buried_surface_area_with_labels_module::get_alpha_complex, that returns a reference over a pointer on the input -complex.

 The built functor for computing the buried surfacve area is
accessible with the method
SBL::Modules::T_Buried_surface_area_with_labels_module::get_buried_surface_area.

\tparam ModuleTraits Traits class defining the type SBL::Modules::T_Buried_surface_area_with_labels_module::Alpha_complex.

## ◆ Interfaces_module

 typedef SBL::Modules::T_Molecular_interfaces_module Interfaces_module

Module building the bicolor, mediated and tricolor interfaces of a molecular structure.

It builds from a given structure classifier an object SBL::Modules::T_Molecular_interfaces_module::Molecular_interfaces_builder that groups into data structures the contacts between two given partners, and possibly contacts mediated by a mediator:

These data structures offer iterators over the different components of the interfaces (particles of a partner or a mediator, contacts between two given partners, or mediated contacts, connected components of adjacent contacts, etc...). Note that while the primitive interfaces are computed at the construction of the SBL::Modules::T_Molecular_interfaces_module::Molecular_interfaces_builder object, the hierarchical interfaces are computed when one wants to access them.

Various statistics on the interfaces are dumped:

• the particles: number of connected components, number of particles per connected component,
• the contacts: number of contacts per connected component, surface area, perimeter and curvature of the interface,
• the interface shelling (optional): integer representing how much a contact is buried in the interface.

When reporting the results into files, three files are created for each pair of partners:

• an XML file containing the full description of all the interfaces involving the two given partners,
• a VMD file for visualizing the interfaces involving the two given partners; note that when the interface shelling is computed, the interfaces are colored following the burying of the contacts,
• when computing the interface shelling, a XML file describing the shelling of the interfaces of the two given partners with all possible mediators.
Template Parameters
 ModuleTraits Traits class defining the type SBL::Modules::T_Molecular_interfaces_module::Molecular_interfaces_builder.

The molecular systems's labels are defined by the concept MolecularSystemLabelsTraits. That is, a model of MolecularSystemLabelsTraits defines the type System_label which enumerates all the different labels of one category (partners or mediators or extras). A model of MolecularSystemLabelsTraits describing the partners (resp. mediators or extras) is said to follows the PartnerLabelsTraits concept (resp. MediatorLabelsTraits or ExtraLabelsTraits concept).

Template Parameters
 PartnerLabelsTraits Traits class defining the partners' labels hierarchy. MediatorLabelsTraits Traits class defining the mediators' labels hierarchy (by default, it is SBL::Models::No_label_traits). ExtraLabelsTraits Traits class defining the extras' labels hierarchy (by default, it is SBL::Models::No_label_traits).

Loader for one or more PDB files, even listed in a file.

The different options are:

  \li Load of one, n or a list of PDB files,

\li Possibility to select atoms following their occupancy
factor. By default, the atoms are loaded regardless their
occupancy factor.

\li In case of alternates, the first occurrence is the one selected.

\li if several models of the structure coexist, which one do we consider.
Important Note about hetero atoms: When dealing with hetero
atoms, these ones may be associated to a chain. If the chain is
associated to a partner, these hetero atoms will be also associated to
this partner.

\li The classification of atoms used is such that hydrogen atoms are discarded, see

\li For PDB models, all occupancy factors to be equal to 1. If not and for
a more elaborate processing, the user should retrieve the binary
program, learn about the strategies offered in case of factors < 1,
and proceed accordingly.

\li In case of alternates, the first occurrence is the one selected.

\tparam ESBTLMolecularSystem Representation of a molecular system in ESBTL (default is ESBTL::Default_system)

\tparam PDBLineFormat Format of a line in a PDB file, determining wether a field of a line is mandatory or not (default is ESBTL::PDB::Line_format<>)

## ◆ Particle_annotator

 typedef Traits::Particle_annotator Particle_annotator

Loader of annotations for the input particles.

## ◆ Structure_classifier_module

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.

## ◆ start()

 void start ( int argc, char * argv[] )
inline

Starts the workflow by reading the command line options, and pushing on the stack the start vertex.