The proto-Nucleic-Acid Builder (pNAB)
|
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... | |
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.
|
inline |
Empty constructor.
This empty constructor can be used. After that, values for the member variables should be specified.
void HelicalParameters::computeHelicalParameters | ( | ) |
A function to compute the helical parameters. This should be called when the the step parameters are provided.
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.
is_base_pair | Whetehr the vector requested is for base-pair transformation |
is_second_strand | Whether the strand being constructed is the second strand. Used only for base-pair parameters |
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.
is_base_pair | Whetehr the vector requested is for base-pair transformation |
is_second_strand | Whether the strand being constructed is the second strand. Used only for base-pair parameters |
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.
n | The sequence of the nucleobase in the strand. Used only for the base step transformation |
is_base_pair | Whetehr the vector requested is for base-pair transformation |
is_second_strand | Whether the strand being constructed is the second strand. Used only for base-pair parameters |
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.
n | The sequence of the nucleobase in the strand. Used only for the base step transformation |
is_base_pair | Whetehr the vector requested is for base-pair transformation |
is_second_strand | Whether the strand being constructed is the second strand. Used only for base-pair parameters |
|
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.
origin2 | The coordinates of the origin of the second base pair |
x2 | The x direction vector for the second base pair |
y2 | The y direction vector for the second base pair |
z2 | The z direction vector for the second base pair |
|
private |
Rodrigues rotation formula for rotating a vector in space.
Outputs a 3x3 rotation matrix.
axis_vector | A unit vector defining the axis about which to rotate by angle theta |
theta | The angle at which to rotate about vector given by axis |
|
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.
double PNAB::HelicalParameters::buckle |
Buckle.
double PNAB::HelicalParameters::h_rise |
Helical rise.
double PNAB::HelicalParameters::h_twist |
Helical twist.
double PNAB::HelicalParameters::inclination |
Inclination.
bool PNAB::HelicalParameters::is_helical |
Are the base parameters helical or step parameters.
double PNAB::HelicalParameters::opening |
Opening.
double PNAB::HelicalParameters::propeller |
Propeller twist.
double PNAB::HelicalParameters::rise |
Rise.
double PNAB::HelicalParameters::roll |
Roll.
double PNAB::HelicalParameters::shear |
Shear.
double PNAB::HelicalParameters::shift |
Shift.
double PNAB::HelicalParameters::slide |
Slide.
double PNAB::HelicalParameters::stagger |
Stagger.
double PNAB::HelicalParameters::stretch |
Stretch.
double PNAB::HelicalParameters::tilt |
Tilt.
double PNAB::HelicalParameters::tip |
Tip.
double PNAB::HelicalParameters::twist |
Twist.
double PNAB::HelicalParameters::x_displacement |
X-Displacement.
double PNAB::HelicalParameters::y_displacement |
Y-Displacement.