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

Optimized representation of the covalent structure of a molecular conformation. More...

#include <Molecular_covalent_structure_optimal.hpp>

Accessors

std::vector< Particle_info > & get_particles ()
 
unsigned get_non_bonded_parameters_index (Particle_rep p) const
 
void set_non_bonded_parameters_index (Particle_rep p, unsigned i)
 
std::vector< Bond_rep > & get_bonds ()
 
std::vector< std::list< Bond_rep > > & get_incident_bonds ()
 
std::vector< Bond_angle_rep > & get_bond_angles ()
 
std::vector< Torsion_angle_rep > & get_proper_angles ()
 
std::vector< Torsion_angle_rep > & get_improper_angles ()
 
std::unordered_map< std::size_t, Bond_rep > & get_particles_to_bond_map ()
 
std::unordered_map< std::size_t, Bond_angle_rep > & get_bonds_to_bond_angle_map ()
 
std::unordered_map< std::size_t, Torsion_angle_rep > & get_bonds_to_proper_angle_map ()
 
std::unordered_map< std::size_t, Torsion_angle_rep > & get_bonds_to_improper_angle_map ()
 
ParticleInfo_to_particleRep_map_type & get_info_map ()
 
std::vector< unsigned > & get_molecules_vec (void)
 
template<class OutputIterator >
OutputIterator get_molecules (OutputIterator out)
 
std::vector< unsigned > & get_molecule_vec (void)
 
template<class OutputIterator >
OutputIterator get_particles_in_molecule (std::size_t p, OutputIterator out)
 
std::vector< bool > & get_are_12 ()
 
std::vector< bool > & get_are_13 ()
 
std::vector< bool > & get_are_14 ()
 
bool are_1_4 (const Particle_rep &p, const Particle_rep &q) const
 
bool are_1_3 (const Particle_rep &p, const Particle_rep &q) const
 
bool are_1_2 (const Particle_rep &p, const Particle_rep &q) const
 
unsigned get_number_of_particles (void) const
 
unsigned get_number_of_modeled_particles (void) const
 
unsigned get_number_of_embedded_particles (void) const
 
bool is_fully_embedded (void) const
 
unsigned get_number_of_bonds (void) const
 
unsigned get_number_of_modeled_bonds (void) const
 
unsigned get_number_of_embedded_bonds (void) const
 
Particle_info get_particle_info (Particle_rep p) const
 
std::pair< Particle_rep, Particle_rep > get_particles (Bond_rep b) const
 
Bond_rep get_bond (Bond_angle_rep b, unsigned i) const
 
Bond_rep get_bond (Torsion_angle_rep b, unsigned i) const
 
Particle_rep get_particle_rep (Bond_rep b, unsigned i) const
 
Particle_rep get_particle_rep (Bond_angle_rep b, unsigned i) const
 
Particle_rep get_particle_rep (Torsion_angle_rep b, unsigned i) const
 
std::pair< bool, Bond_rep > get_bond_rep (Particle_rep p, Particle_rep q) const
 
Bond_rep get_mirror_bond_rep (Bond_rep u) const
 
std::pair< bool, Bond_angle_rep > get_bond_angle_rep (Bond_rep b_1, Bond_rep b_2) const
 
std::pair< bool, Torsion_angle_rep > get_torsion_angle_rep (Bond_rep b_1, Bond_rep b_2, Bond_rep b_3) const
 
std::pair< bool, Particle_rep > find_particle (const Particle_info &info) const
 
int get_particle_linearPosition (Particle_rep p) const
 
template<class Conformation >
SBL::CSB::T_Conformation_traits< Conformation >::FT get_x (const Conformation &C, Particle_rep p) const
 
template<class Conformation >
SBL::CSB::T_Conformation_traits< Conformation >::FT get_y (const Conformation &C, Particle_rep p) const
 
template<class Conformation >
SBL::CSB::T_Conformation_traits< Conformation >::FT get_z (const Conformation &C, Particle_rep p) const
 

Traversal

Particles_iterator particles_begin (bool is_embedded=true) const
 
Particles_iterator particles_end (bool is_embedded=true) const
 
Bonds_iterator bonds_begin (bool is_embedded=true) const
 
Bonds_iterator bonds_end (bool is_embedded=true) const
 
Incident_bonds_iterator incident_bonds_begin (Particle_rep p, bool is_embedded=true) const
 
Incident_bonds_iterator incident_bonds_end (Particle_rep p, bool is_embedded=true) const
 
Bond_angles_iterator bond_angles_begin (bool is_embedded=true) const
 Iterate over the bond angles (u, v, w) so that u and v are the largest indices lower than w such that (u, v) and (v, w) are bonds. More...
 
Bond_angles_iterator bond_angles_end (bool is_embedded=true) const
 Iterate over the bond angles (u, v, w) so that u and v are the largest indices lower than w such that (u, v) and (v, w) are bonds. More...
 
Dihedral_angles_iterator dihedral_angles_begin (bool is_embedded=true) const
 Iterate over the torsion angles (u, v, w, t) so that u, v and w are the largest indices lower than t such that (u, v), (v, w) and (w, t) are bonds. More...
 
Dihedral_angles_iterator dihedral_angles_end (bool is_embedded=true) const
 Iterate over the torsion angles (u, v, w, t) so that u, v and w are the largest indices lower than t such that (u, v), (v, w) and (w, t) are bonds. More...
 
Improper_angles_iterator improper_angles_begin (bool is_embedded=true) const
 Iterate over the torsion angles (u, v, w, t) so that (u, v), (u, w) and (u, t) are bonds. More...
 
Improper_angles_iterator improper_angles_end (bool is_embedded=true) const
 Iterate over the torsion angles (u, v, w, t) so that (u, v), (u, w) and (u, t) are bonds. More...
 

Detailed Description

template<class ParticleInfo = std::string>
class SBL::CSB::T_Molecular_covalent_structure_optimal< ParticleInfo >

Optimized representation of the covalent structure of a molecular conformation.

ASK Augustin

Template Parameters
ParticleInfoInformation to attached to the particle (default is a simple string). It should be comparable (less operator) and streamable.

Member Function Documentation

◆ bond_angles_begin()

T_Molecular_covalent_structure_optimal< ParticleInfo >::Bond_angles_iterator bond_angles_begin ( bool  is_embedded = true) const
inline

Iterate over the bond angles (u, v, w) so that u and v are the largest indices lower than w such that (u, v) and (v, w) are bonds.

◆ bond_angles_end()

T_Molecular_covalent_structure_optimal< ParticleInfo >::Bond_angles_iterator bond_angles_end ( bool  is_embedded = true) const
inline

Iterate over the bond angles (u, v, w) so that u and v are the largest indices lower than w such that (u, v) and (v, w) are bonds.

◆ dihedral_angles_begin()

T_Molecular_covalent_structure_optimal< ParticleInfo >::Dihedral_angles_iterator dihedral_angles_begin ( bool  is_embedded = true) const
inline

Iterate over the torsion angles (u, v, w, t) so that u, v and w are the largest indices lower than t such that (u, v), (v, w) and (w, t) are bonds.

◆ dihedral_angles_end()

T_Molecular_covalent_structure_optimal< ParticleInfo >::Dihedral_angles_iterator dihedral_angles_end ( bool  is_embedded = true) const
inline

Iterate over the torsion angles (u, v, w, t) so that u, v and w are the largest indices lower than t such that (u, v), (v, w) and (w, t) are bonds.

◆ improper_angles_begin()

T_Molecular_covalent_structure_optimal< ParticleInfo >::Improper_angles_iterator improper_angles_begin ( bool  is_embedded = true) const
inline

Iterate over the torsion angles (u, v, w, t) so that (u, v), (u, w) and (u, t) are bonds.

◆ improper_angles_end()

T_Molecular_covalent_structure_optimal< ParticleInfo >::Improper_angles_iterator improper_angles_end ( bool  is_embedded = true) const
inline

Iterate over the torsion angles (u, v, w, t) so that (u, v), (u, w) and (u, t) are bonds.