The proto-Nucleic-Acid Builder (pNAB)
Public Member Functions | Public Attributes | Private Member Functions | List of all members
PNAB::HelicalParameters Class Reference

A class for holding values for all helical parameters. More...

#include <Containers.h>

Public Member Functions

 HelicalParameters ()
 Empty constructor. More...
 
void computeHelicalParameters ()
 A function to compute the helical parameters. This should be called when the the step parameters are provided. More...
 
OpenBabel::vector3 getGlobalTranslationVec (bool is_base_pair=false, bool is_second_strand=false)
 Get the global translation vector. More...
 
OpenBabel::vector3 getStepTranslationVec (unsigned n=0, bool is_base_pair=false, bool is_second_strand=false)
 Get the step translation vector. More...
 
OpenBabel::matrix3x3 getGlobalRotationMatrix (bool is_base_pair=false, bool is_second_strand=false)
 Get the global rotation matrix. More...
 
OpenBabel::matrix3x3 getStepRotationMatrix (unsigned n=0, bool is_base_pair=false, bool is_second_strand=false)
 Get the step rotation matrix. More...
 

Public Attributes

double inclination
 Inclination. More...
 
double tip
 Tip. More...
 
double h_twist
 Helical twist. More...
 
double x_displacement
 X-Displacement. More...
 
double y_displacement
 Y-Displacement. More...
 
double h_rise
 Helical rise. More...
 
double shift
 Shift. More...
 
double slide
 Slide. More...
 
double rise
 Rise. More...
 
double tilt
 Tilt. More...
 
double roll
 Roll. More...
 
double twist
 Twist. More...
 
double buckle
 Buckle. More...
 
double propeller
 Propeller twist. More...
 
double opening
 Opening. More...
 
double shear
 Shear. More...
 
double stretch
 Stretch. More...
 
double stagger
 Stagger. More...
 
bool is_helical
 Are the base parameters helical or step parameters. More...
 

Private Member Functions

OpenBabel::matrix3x3 rodrigues_formula (OpenBabel::vector3 axis_vector, double theta)
 Rodrigues rotation formula for rotating a vector in space. More...
 
std::vector< OpenBabel::vector3 > StepParametersToReferenceFrame ()
 Computes the origin and direction vectors given a set of step parameters. More...
 
void ReferenceFrameToHelicalParameters (OpenBabel::vector3 origin2, OpenBabel::vector3 x2, OpenBabel::vector3 y2, OpenBabel::vector3 z2)
 Computes the helical parameters given the origin and direction vectors of the second base. More...
 

Detailed Description

A class for holding values for all helical parameters.

The helical parameters are used for generating the geometries of the nucleobases in the strands. This class holds the value for six helical parameters (helical twist, inclination, tip, helical rise, x-displacement, and y-displacement). It can also compute the helical parameters given the step parameters (twist, roll, tilt, rise, slide, shift). Internally, when the step parameters are provided, the helical parameters are computed. The helical parameters are used for generating the geometries. This class also implements the base-pair parameters (buckle, propeller, opening, shear, stretch, and stagger). The class holds functions to generate the geometries.

See also
Chain::setCoordsForChain
ConformationSearch::measureDistance

Constructor & Destructor Documentation

◆ HelicalParameters()

PNAB::HelicalParameters::HelicalParameters ( )
inline

Empty constructor.

This empty constructor can be used. After that, values for the member variables should be specified.

Member Function Documentation

◆ computeHelicalParameters()

void HelicalParameters::computeHelicalParameters ( )

A function to compute the helical parameters. This should be called when the the step parameters are provided.

See also
is_helical
StepParametersToReferenceFrame
ReferenceFrameToHelicalParameters

◆ getGlobalRotationMatrix()

matrix3x3 HelicalParameters::getGlobalRotationMatrix ( bool  is_base_pair = false,
bool  is_second_strand = false 
)

Get the global rotation matrix.

For the base step transformation, the HelicalParameters::tip and HelicalParameters::inclination are used. For the base-pair transformation, the HelicalParameters::buckle and HelicalParameters::propeller are used. The base pair parameters are divided by two and set to positive or negative values depending on which strand is being constructed.

Parameters
is_base_pairWhetehr the vector requested is for base-pair transformation
is_second_strandWhether the strand being constructed is the second strand. Used only for base-pair parameters
Returns
The global rotation matrix
See also
rodrigues_formula

◆ getGlobalTranslationVec()

vector3 HelicalParameters::getGlobalTranslationVec ( bool  is_base_pair = false,
bool  is_second_strand = false 
)

Get the global translation vector.

For the base step transformation, the HelicalParameters::x_displacement and HelicalParameters::y_displacement are used. For the base-pair transformation, the HelicalParameters::shear and HelicalParameters::stretch are used. The base pair parameters are divided by two and set to positive or negative values depending on which strand is being constructed.

Parameters
is_base_pairWhetehr the vector requested is for base-pair transformation
is_second_strandWhether the strand being constructed is the second strand. Used only for base-pair parameters
Returns
The translation vector

◆ getStepRotationMatrix()

matrix3x3 HelicalParameters::getStepRotationMatrix ( unsigned  n = 0,
bool  is_base_pair = false,
bool  is_second_strand = false 
)

Get the step rotation matrix.

For the base step transformation, the HelicalParameters::twist is used. For the base-pair transformation, the HelicalParameters::opening is used. The base pair parameters are divided by two and set to positive or negative values depending on which strand is being constructed.

Parameters
nThe sequence of the nucleobase in the strand. Used only for the base step transformation
is_base_pairWhetehr the vector requested is for base-pair transformation
is_second_strandWhether the strand being constructed is the second strand. Used only for base-pair parameters
Returns
The step rotation matrix

◆ getStepTranslationVec()

vector3 HelicalParameters::getStepTranslationVec ( unsigned  n = 0,
bool  is_base_pair = false,
bool  is_second_strand = false 
)

Get the step translation vector.

For the base step transformation, the HelicalParameters::h_rise is used. For the base-pair transformation, the HelicalParameters::stagger is used. The base pair parameters are divided by two and set to positive or negative values depending on which strand is being constructed.

Parameters
nThe sequence of the nucleobase in the strand. Used only for the base step transformation
is_base_pairWhetehr the vector requested is for base-pair transformation
is_second_strandWhether the strand being constructed is the second strand. Used only for base-pair parameters
Returns
The step translation vector

◆ ReferenceFrameToHelicalParameters()

void HelicalParameters::ReferenceFrameToHelicalParameters ( OpenBabel::vector3  origin2,
OpenBabel::vector3  x2,
OpenBabel::vector3  y2,
OpenBabel::vector3  z2 
)
private

Computes the helical parameters given the origin and direction vectors of the second base.

This function computes the helical parameters and set the values for the appropriate member variables

Reference: Lu, Xiang-Jun, M. A. El Hassan, and C. A. Hunter. "Structure and conformation of helical nucleic acids: analysis program (SCHNAaP)." Journal of molecular biology 273.3 (1997): 668-680.

Parameters
origin2The coordinates of the origin of the second base pair
x2The x direction vector for the second base pair
y2The y direction vector for the second base pair
z2The z direction vector for the second base pair
See also
StepParametersToReferenceFrame

◆ rodrigues_formula()

matrix3x3 HelicalParameters::rodrigues_formula ( OpenBabel::vector3  axis_vector,
double  theta 
)
private

Rodrigues rotation formula for rotating a vector in space.

Outputs a 3x3 rotation matrix.

Parameters
axis_vectorA unit vector defining the axis about which to rotate by angle theta
thetaThe angle at which to rotate about vector given by axis
Returns
The new rotation matrix

◆ StepParametersToReferenceFrame()

vector< vector3 > HelicalParameters::StepParametersToReferenceFrame ( )
private

Computes the origin and direction vectors given a set of step parameters.

Outputs a list containing the new origin, and x, y, and z direction vectors. It uses the class member variables to access the step parameters.

Reference: El Hassan, M. A., and C. R. Calladine. "The assessment of the geometry of dinucleotide steps in double-helical DNA; a new local calculation scheme." Journal of molecular biology 251.5 (1995): 648-664.

Returns
The origin and direction vectors
See also
ReferenceFrameToHelicalParameters

Member Data Documentation

◆ buckle

double PNAB::HelicalParameters::buckle

Buckle.

◆ h_rise

double PNAB::HelicalParameters::h_rise

Helical rise.

◆ h_twist

double PNAB::HelicalParameters::h_twist

Helical twist.

◆ inclination

double PNAB::HelicalParameters::inclination

Inclination.

◆ is_helical

bool PNAB::HelicalParameters::is_helical

Are the base parameters helical or step parameters.

◆ opening

double PNAB::HelicalParameters::opening

Opening.

◆ propeller

double PNAB::HelicalParameters::propeller

Propeller twist.

◆ rise

double PNAB::HelicalParameters::rise

Rise.

◆ roll

double PNAB::HelicalParameters::roll

Roll.

◆ shear

double PNAB::HelicalParameters::shear

Shear.

◆ shift

double PNAB::HelicalParameters::shift

Shift.

◆ slide

double PNAB::HelicalParameters::slide

Slide.

◆ stagger

double PNAB::HelicalParameters::stagger

Stagger.

◆ stretch

double PNAB::HelicalParameters::stretch

Stretch.

◆ tilt

double PNAB::HelicalParameters::tilt

Tilt.

◆ tip

double PNAB::HelicalParameters::tip

Tip.

◆ twist

double PNAB::HelicalParameters::twist

Twist.

◆ x_displacement

double PNAB::HelicalParameters::x_displacement

X-Displacement.

◆ y_displacement

double PNAB::HelicalParameters::y_displacement

Y-Displacement.


The documentation for this class was generated from the following files: