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...
 
typedef Traits::Molecular_geometry_loader Molecular_geometry_loader
 Loader for one or more PDB files, even listed in a file. More...
 
typedef Traits::Labels_loader Labels_loader
 Loader for systems' labels specification. 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
TraitsTraits class defining the types used in the applications of Space_filling_model_interface (see T_Space_filling_model_interface_traits).

Member Typedef Documentation

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 $ \alpha $-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 $ \alpha $-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.

Template Parameters
ModuleTraitsTraits class defining the types T_Alpha_complex_of_molecular_model_module::Alpha_complex and T_Alpha_complex_of_molecular_model_module::Particles_container.

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

It builds from an input $ \alpha $-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 $ \alpha $-complex restricted to an input partner's label.

The input $ \alpha $-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 $ \alpha $-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.

Template Parameters
ModuleTraitsTraits class defining the type SBL::Modules::T_Buried_surface_area_with_labels_module::Alpha_complex.

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
ModuleTraitsTraits class defining the type SBL::Modules::T_Molecular_interfaces_module::Molecular_interfaces_builder.
typedef Traits::Labels_loader Labels_loader

Loader for systems' labels specification.

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

This loader allows to load the specifications for each label's category.

Template Parameters
PartnerLabelsTraitsTraits class defining the partners' labels hierarchy.
MediatorLabelsTraitsTraits class defining the mediators' labels hierarchy (by default, it is SBL::Models::No_label_traits).
ExtraLabelsTraitsTraits class defining the extras' labels hierarchy (by default, it is SBL::Models::No_label_traits).
typedef Traits::Molecular_geometry_loader Molecular_geometry_loader

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

The different options are:

  • Load of one, n or a list of PDB files,
  • Possibility to discard or not the hydrogen atoms (discarded by default) are discarded,
  • Possibility to select atoms following their occupancy factor. By default, the atoms are loaded regardless their occupancy factor.
  • In case of alternates, the first occurrence is the one selected.
  • 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.
  • 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.
  • In case of alternates, the first occurrence is the one selected.
Template Parameters
ESBTLMolecularSystemRepresentation of a molecular system in ESBTL (default is ESBTL::Default_system)
PDBLineFormatFormat of a line in a PDB file, determining wether a field of a line is mandatory or not (default is ESBTL::PDB::Line_format<>)
typedef Traits::Particle_annotator Particle_annotator

Loader of annotations for the input particles.

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

Classifying atoms and contacts between atoms has two aspects:

  • 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 Molecular_structure_classifier provides the SBL::CSB::T_Molecular_structure_classifier< ParticleWithSystemLabelTraits , MolecularModelClassifier > 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 MolecularSystemLabelsTraits.

Template Parameters
ModuleTraitsTraits class defining the type T_Molecular_structure_classifier_module::Molecular_structure_classifier.

Member Function Documentation

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

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