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

Model of MolecularSystemLabelTraits for molecular complexes defined in a file. More...

#include <Domain_label_traits.hpp>

Classes

struct  Primitive_label_classifier
 Functor returning a pair classifying a particle. More...
 

Static Public Member Functions

static unsigned get_number_of_labels (void)
 Total number of system's labels. More...
 
static unsigned get_number_of_primitive_labels (void)
 Number of primitive system's labels. More...
 
static Label get_parent_of (Label label)
 Return the parent label of the input label. More...
 
static std::string to_string (Label label)
 Return the string representation of the label. More...
 
static int get_current_set_of_labels_index (void)
 Return the current index of set of labels to be used. More...
 
static void set_current_set_of_labels_index (unsigned i)
 Set the current index of set of labels to be used. More...
 

Detailed Description

template<class Dummy = void>
struct SBL::Models::T_Domain_label_traits< Dummy >

Model of MolecularSystemLabelTraits for molecular complexes defined in a file.

The specification follows these rules:

  • template of domains: when several chains share the same set of domains, it is natural to define only once the domains as a template, and use this template for each chain. A template starts with the command domains-template-begin <template-name> and terminates with the command end. To add a domain to the template, use the following syntax: <domain-name> [resid-resid|resid|*] [...] . The first argument is the name of the domain, while all the following arguments define the residues in the domain: resid for a specific residue, resid-resid for a range of residues, and * for all residues that were not included in any other domain of the template. Note that * can be used only for one domain in the template and without any other residue's id specification for this domain.
  • chains enumeration: enumerating the chains consist on specifying which chains have an associated label, and possibly associating a template of domains to the chains. A enumeration starts with the command chains-enumeration-begin and terminates with the command end. To specify a chain, use the following syntax: <chains> [like <template-name>] . The first argument is a list of chains to specify in the same way : each chain is represented by its id, that is one character. The second optional argument allows to specify a template of domains to all the specified chains. If no template of domains is given, the entire chains are considered. As a result, one primitive label will be created for each specified chain with no template of domains, and one hierarchical label for each specified chain with a template of domains. Each such label has the name of the chain. Furthermore, for each chain decomposed into domains, there is one primitive label per domain with name the concatenation of the name of the chain with the name of the domain.
  • chains' hierarchy: the chains' hierarchy defines a way to group hierarchically the chains. A hierarchy starts with the command chains-hierarchy-begin and terminates with the command end. To specify a hierarchy, use the following syntax: <label-name> chain|<label-name> [...] . The first argument is the name of hierarchical label, while all the following arguments are the name of specified chains or other existing hierarchical labels to be grouped under the first hierarchical label.

The next example shows a configuration file for representing the contacts within the domains within a homo-trimer (EFF-1):

#example with secret-C_elegans-EFF-1
#define a template of residues
#the first line starts the template and give it a name
domains-template-begin EFF1
#the following lines contain: the name of the label, then the ranges
#of residues corresponding to this label (including the bounds)
D1 23-110 211-262 382-392
D2 111-210 263-381
D3 409-509
LINKER 393-408
STEM 510-560
#the star denotes the complementary, i.e all residues not
#mentionned before in the template
COIL **
#terminates the template
end
#define the partners
#the first line starts the enumeration and give a name to the enum
chains-enumeration-begin
#For decomposing the chains A, B and C like the template EFF1:
ABC like EFF1
#For creating one label per chain, but not decomposing (commented)
#ABC
#terminates the enumeration
end
#Grouping the chains
chains-hierarchy-begin
ALL A B C
end

Member Function Documentation

◆ get_current_set_of_labels_index()

static int get_current_set_of_labels_index ( void  )
inlinestatic

Return the current index of set of labels to be used.

◆ get_number_of_labels()

static unsigned get_number_of_labels ( void  )
inlinestatic

Total number of system's labels.

◆ get_number_of_primitive_labels()

static unsigned get_number_of_primitive_labels ( void  )
inlinestatic

Number of primitive system's labels.

◆ get_parent_of()

static Label get_parent_of ( Label  label)
inlinestatic

Return the parent label of the input label.

◆ set_current_set_of_labels_index()

static void set_current_set_of_labels_index ( unsigned  i)
inlinestatic

Set the current index of set of labels to be used.

◆ to_string()

static std::string to_string ( Label  label)
inlinestatic

Return the string representation of the label.