Bsoft 2.1.4
Bernard's software package
mol_util.cpp File Reference

Library routines used for atomic coordinates. More...

#include "rwmolecule.h"
#include "rwatomprop.h"
#include "rwresprop.h"
#include "mol_util.h"
#include "seq_util.h"
#include "linked_list.h"
#include "Matrix.h"
#include "utilities.h"
#include <map>

Functions

int molgroup_Bfactors (Bmolgroup *molgroup)
 Calculates the average Bfactors for residues in molecules. More...
 
int molgroup_print_sequence (Bmolgroup *molgroup)
 Prints the sequence of a molecule as a single letter code string. More...
 
int molgroup_set_radius (Bmolgroup *molgroup, double radius)
 Shifts all coordinates to a given radius. More...
 
int molgroup_rename (Bmolgroup *molgroup, char first_name)
 Renames molecules. More...
 
int molgroup_residue_renumber (Bmolgroup *molgroup, int first)
 Renumbers residues. More...
 
int molgroup_atom_renumber (Bmolgroup *molgroup, int first)
 Renumbers all atoms, disregarding molecule distinction. More...
 
int molgroup_coor_reset_occupancy (Bmolgroup *molgroup, int range_first, int range_last, double occupancy)
 Sets occupancies to new values.. More...
 
double molgroup_weight_from_atoms (Bmolgroup *molgroup)
 Calculates the weight of each molecule. More...
 
double molgroup_weight_from_sequence (Bmolgroup *molgroup)
 Calculates the weight of each molecule. More...
 
Vector3< double > molgroup_center_of_mass (Bmolgroup *molgroup)
 Calculates the center of mass of a molecule group. More...
 
Vector3< double > molgroup_selected_center_of_mass (Bmolgroup *molgroup)
 Calculates the center of mass of a molecule group. More...
 
Vector3< double > molgroup_show_center_of_mass (Bmolgroup *molgroup)
 Calculates the center of mass of a molecule group. More...
 
Vector3< double > mol_center_of_mass (Bmolecule *mol)
 Calculates the center of mass of a molecule. More...
 
Vector3< double > mol_show_center_of_mass (Bmolecule *mol)
 Calculates the center of mass of a molecule. More...
 
Vector3< double > molgroup_principal_axes (Bmolgroup *molgroup, Vector3< double > *eigenvec)
 Calculates the principal axes of a molecule group. More...
 
Vector3< double > mol_principal_axes (Bmolecule *mol, Vector3< double > *eigenvec)
 Calculates the principal axes of a molecule. More...
 
double molgroup_sphericity (Bmolgroup *molgroup, double da)
 Calculates how close the coordinate set is to a spherical shape. More...
 
double molgroup_density (Bmolgroup *molgroup)
 Calculates the number and mass density of a molecular system. More...
 
double molgroup_volume (Bmolgroup *molgroup, Bstring &paramfile, int wrap)
 Calculates the volume of a molecular system. More...
 
int molgroup_composition (Bmolgroup *molgroup, Bstring &paramfile)
 Calculates the elemental composition of a molecular system. More...
 
JSvalue molgroup_elements (Bmolgroup *molgroup)
 Calculates the elemental composition. More...
 
JSvalue molgroup_elements (Bmolgroup *molgroup, Bstring &paramfile)
 Calculates the elemental composition from residue compositions. More...
 
JSvalue protein_composition_default (double mass)
 Default protein composition adjusted by mass. More...
 
int molgroup_radial_density (Bmolgroup *molgroup, double interval, double cutoff, int wrap)
 Calculates a radial distribution function. More...
 
Latom ** molgroup_atom_mesh_lists (Bmolgroup *molgroup, Vector3< int > size, Vector3< double > sampling)
 Generates lists of atoms based on a grid. More...
 
vector< Batom * > atom_get_array (Bmolgroup *molgroup)
 Generates an array of pointers to atom structures. More...
 

Variables

int verbose
 

Detailed Description

Library routines used for atomic coordinates.

Author
Bernard Heymann
Date
Created: 19980214
Modified: 20220713

Function Documentation

◆ atom_get_array()

vector< Batom * > atom_get_array ( Bmolgroup molgroup)

Generates an array of pointers to atom structures.

Parameters
*molgroupmolecule group structure to be modified.
Returns
vector<Batom*> array of pointers to atoms.

◆ mol_center_of_mass()

Vector3< double > mol_center_of_mass ( Bmolecule mol)

Calculates the center of mass of a molecule.

Parameters
*molmolecule structure.
Returns
Vector3<double> 3-valued center of mass vector.

◆ mol_principal_axes()

Vector3< double > mol_principal_axes ( Bmolecule mol,
Vector3< double > *  eigenvec 
)

Calculates the principal axes of a molecule.

Parameters
*molmolecule structure.
*eigenveceigen vectors (can be NULL).
Returns
Vector3<double> 3-valued vector of principal axes.

◆ mol_show_center_of_mass()

Vector3< double > mol_show_center_of_mass ( Bmolecule mol)

Calculates the center of mass of a molecule.

Parameters
*molmolecule structure.
Returns
Vector3<double> 3-valued center of mass vector.

◆ molgroup_atom_mesh_lists()

Latom ** molgroup_atom_mesh_lists ( Bmolgroup molgroup,
Vector3< int >  size,
Vector3< double >  sampling 
)

Generates lists of atoms based on a grid.

The coordinates must be positive to fit into a grid starting at {0,0,0}.
Parameters
*molgroupmolecule group structure to be modified.
sizesize of grid.
samplingspacing in each dimension.
Returns
Latom** array of linked lists of atoms.

◆ molgroup_atom_renumber()

int molgroup_atom_renumber ( Bmolgroup molgroup,
int  first 
)

Renumbers all atoms, disregarding molecule distinction.

Parameters
*molgroupmolecule group structure.
firstnumber of first atom.
Returns
int 0.

◆ molgroup_Bfactors()

int molgroup_Bfactors ( Bmolgroup molgroup)

Calculates the average Bfactors for residues in molecules.

Parameters
*molgroupmolecule group structure.
Returns
int 0.

◆ molgroup_center_of_mass()

Vector3< double > molgroup_center_of_mass ( Bmolgroup molgroup)

Calculates the center of mass of a molecule group.

Parameters
*molgroupmolecule group structure.
Returns
Vector3<double> 3-valued center of mass vector.

◆ molgroup_composition()

int molgroup_composition ( Bmolgroup molgroup,
Bstring paramfile 
)

Calculates the elemental composition of a molecular system.

Parameters
*molgroupmolecule group structure.
&paramfileatomic parameter file.
Returns
int 0.

◆ molgroup_coor_reset_occupancy()

int molgroup_coor_reset_occupancy ( Bmolgroup molgroup,
int  range_first,
int  range_last,
double  occupancy 
)

Sets occupancies to new values..

Parameters
*molgroupmolecule group structure.
range_firstfirst residue in range to change.
range_lastlast residue in range to change.
occupancyvalue to set occupancy to.
Returns
int 0.

◆ molgroup_density()

double molgroup_density ( Bmolgroup molgroup)

Calculates the number and mass density of a molecular system.

Parameters
*molgroupmolecule group structure.
Returns
double density: Da/A^3.
Requirement: The box size must be correctly specified in the
molecular group structure.
The number of molecules, residues and atoms are calculated and the
density for each number reported.
The total mass is calculated and the mass density reported as
Da/A^3 and g/ml.

◆ molgroup_elements() [1/2]

JSvalue molgroup_elements ( Bmolgroup molgroup)

Calculates the elemental composition.

Parameters
*molgroupmolecule group.
Returns
JSvalue composition.

◆ molgroup_elements() [2/2]

JSvalue molgroup_elements ( Bmolgroup molgroup,
Bstring paramfile 
)

Calculates the elemental composition from residue compositions.

Parameters
*molgroupmolecule group.
&paramfileresidue parameter file.
Returns
JSvalue composition.

◆ molgroup_principal_axes()

Vector3< double > molgroup_principal_axes ( Bmolgroup molgroup,
Vector3< double > *  eigenvec 
)

Calculates the principal axes of a molecule group.

Parameters
*molgroupmolecule group structure.
*eigenveceigen vectors (can be NULL).
Returns
Vector3<double> 3-valued vector of principal axes.

◆ molgroup_print_sequence()

int molgroup_print_sequence ( Bmolgroup molgroup)

Prints the sequence of a molecule as a single letter code string.

Parameters
*molgroupmolecule group structure.
Returns
int 0.

◆ molgroup_radial_density()

int molgroup_radial_density ( Bmolgroup molgroup,
double  interval,
double  cutoff,
int  wrap 
)

Calculates a radial distribution function.

Parameters
*molgroupmolecule group.
intervalinterval between bins.
cutoffdistance cutoff.
wrapflag to use periodic boundaries.
Returns
int 0.
The atoms are not distinguished by type or properties.

◆ molgroup_rename()

int molgroup_rename ( Bmolgroup molgroup,
char  first_name 
)

Renames molecules.

Parameters
*molgroupmolecule group structure.
first_nameletter of first molecule.
Returns
int 0.
Letters are assigned to the molecules in sequence starting from the
given first letter. If it extends beyond 'Z', it restarts at 'A'.

◆ molgroup_residue_renumber()

int molgroup_residue_renumber ( Bmolgroup molgroup,
int  first 
)

Renumbers residues.

Parameters
*molgroupmolecule group structure.
firstnumber of first residue.
Returns
int 0.

◆ molgroup_selected_center_of_mass()

Vector3< double > molgroup_selected_center_of_mass ( Bmolgroup molgroup)

Calculates the center of mass of a molecule group.

Parameters
*molgroupmolecule group structure.
Returns
Vector3<double> 3-valued center of mass vector.

◆ molgroup_set_radius()

int molgroup_set_radius ( Bmolgroup molgroup,
double  radius 
)

Shifts all coordinates to a given radius.

Parameters
*molgroupmolecule group structure.
radiusspherical radius.
Returns
int 0.

◆ molgroup_show_center_of_mass()

Vector3< double > molgroup_show_center_of_mass ( Bmolgroup molgroup)

Calculates the center of mass of a molecule group.

Parameters
*molgroupmolecule group structure.
Returns
Vector3<double> 3-valued center of mass vector.

◆ molgroup_sphericity()

double molgroup_sphericity ( Bmolgroup molgroup,
double  da 
)

Calculates how close the coordinate set is to a spherical shape.

Parameters
*molgroupmolecule group structure.
daangular step size. (in radians)
Returns
double sphericity.
For each solid angle, the algorithm finds the coordinates with the
maximum distance from the center-of-mass.

◆ molgroup_volume()

double molgroup_volume ( Bmolgroup molgroup,
Bstring paramfile,
int  wrap 
)

Calculates the volume of a molecular system.

Parameters
*molgroupmolecule group structure.
&paramfileatomic parameter file.
wrapflag to turn on wrapping.
Returns
double volume in angstrom^3.
The volume occupied by all the atoms is estimated from the footprint
under the Van der Waals volume of each atom.

◆ molgroup_weight_from_atoms()

double molgroup_weight_from_atoms ( Bmolgroup molgroup)

Calculates the weight of each molecule.

Parameters
*molgroupmolecule group structure.
Returns
double total mass of the molecule group.

◆ molgroup_weight_from_sequence()

double molgroup_weight_from_sequence ( Bmolgroup molgroup)

Calculates the weight of each molecule.

Parameters
*molgroupmolecule group structure.
Returns
double total mass of the molecule group.

◆ protein_composition_default()

JSvalue protein_composition_default ( double  mass)

Default protein composition adjusted by mass.

Parameters
massmolecular weight.
Returns
JSvalue composition.

Variable Documentation

◆ verbose

int verbose
extern