PTripepClosure.h File Reference

Go to the source code of this file.

Defines

#define pi   3.141592653589793238462643383279502884197e0
 ----------------------------------------------------------------------------
#define two_pi   2.0e0*pi
#define deg2rad   pi/180.0e0
#define rad2deg   180.0e0/pi
#define max(a, b)   ((a) > (b))? (a) : (b)
#define min(a, b)   ((a) < (b))? (a) : (b)

Functions

double dot_product (double va[], double vb[])
void matmul (double ma[3][3], double mb[3], double mc[3])
double sign (double a, double b)
void solve_3pep_poly (double r_n1[3], double r_a1[3], double r_a3[3], double r_c3[3], double r_soln_n[16][3][3], double r_soln_a[16][3][3], double r_soln_c[16][3][3], int *n_soln)
 -----------------------------------------------------------------------
void initialize_loop_closure (double b_len[], double b_ang[], double t_ang[])
void get_input_angles (int *n_soln, double r_n1[], double r_a1[], double r_a3[], double r_c3[])
void test_two_cone_existence_soln (double tt, double kx, double et, double ap, int *n_soln, char cone_type[])
void get_poly_coeff (double poly_coeff[])
void poly_mul_sub2 (double u1[5][5], double u2[5][5], double u3[5][5], double u4[5][5], int p1[2], int p2[2], int p3[2], int p4[2], double u5[5][5], int p5[2])
 ----------------------------------------------------------------------------
void poly_mul2 (double u1[5][5], double u2[5][5], int p1[2], int p2[2], double u3[5][5], int p3[2])
 ----------------------------------------------------------------------------
void poly_sub2 (double u1[5][5], double u2[5][5], int p1[2], int p2[2], double u3[5][5], int p3[2])
 ----------------------------------------------------------------------------
void poly_mul_sub1 (double u1[17], double u2[17], double u3[17], double u4[17], int p1, int p2, int p3, int p4, double u5[17], int *p5)
 ----------------------------------------------------------------------------
void poly_mul1 (double u1[], double u2[], int p1, int p2, double u3[], int *p3)
void poly_sub1 (double u1[], double u2[], int p1, int p2, double u3[], int *p3)
void coord_from_poly_roots (int *n_soln, double roots[16], double r_n1[3], double r_a1[3], double r_a3[3], double r_c3[3], double r_soln_n[16][3][3], double r_soln_a[16][3][3], double r_soln_c[16][3][3])
 ----------------------------------------------------------------------------
double calc_t2 (double t0)
 -----------------------------------------------------------------------
double calc_t1 (double t0, double t2)
 -----------------------------------------------------------------------
void calc_dih_ang (double r1[], double r2[], double r3[], double *angle)
void calc_bnd_ang (double r1[], double r2[], double *angle)
void cross (double p[], double q[], double s[])
void quaternion (double axis[], double quarter_ang, double p[])
void rotation_matrix (double q[4], double U[3][3])
 -----------------------------------------------------------------------
double dot_product (double va[3], double vb[3])
void initialize_loop_closure (double b_len[6], double b_ang[7], double t_ang[2])
 -----------------------------------------------------------------------
void get_input_angles (int *n_soln, double r_n1[3], double r_a1[3], double r_a3[3], double r_c3[3])
 -----------------------------------------------------------------------
void test_two_cone_existence_soln (double tt, double kx, double et, double ap, int *n_soln, char cone_type[2])
 -----------------------------------------------------------------------
void get_poly_coeff (double poly_coeff[16+1])
 -----------------------------------------------------------------------
void poly_mul1 (double u1[17], double u2[17], int p1, int p2, double u3[17], int *p3)
 ----------------------------------------------------------------------------
void poly_sub1 (double u1[17], double u2[17], int p1, int p2, double u3[17], int *p3)
 ----------------------------------------------------------------------------
void calc_dih_ang (double r1[3], double r2[3], double r3[3], double *angle)
 -----------------------------------------------------------------------
void calc_bnd_ang (double r1[3], double r2[3], double *angle)
 -----------------------------------------------------------------------
void cross (double p[3], double q[3], double s[3])
 -----------------------------------------------------------------------
void quaternion (double axis[3], double quarter_ang, double p[4])
 -----------------------------------------------------------------------

Variables

int max_soln = 16
int deg_pol = 16
int print_level = 1
double len0 [6]
double b_ang0 [7]
double t_ang0 [2]
double aa13_min_sqr
double aa13_max_sqr
double delta [4]
double xi [3]
double eta [3]
double alpha [3]
double theta [3]
double cos_alpha [3]
double sin_alpha [3]
double cos_theta [3]
double sin_theta [3]
double cos_delta [4]
double sin_delta [4]
double cos_xi [3]
double cos_eta [3]
double sin_xi [3]
double sin_eta [3]
double r_a1a3 [3]
double r_a1n1 [3]
double r_a3c3 [3]
double b_a1a3 [3]
double b_a1n1 [3]
double b_a3c3 [3]
double len_na [3]
double len_ac [3]
double len_aa [3]
double C0 [3][3]
double C1 [3][3]
double C2 [3][3]
double Q [5][17]
double R [3][17]


Define Documentation

#define deg2rad   pi/180.0e0

#define max ( a,
 )     ((a) > (b))? (a) : (b)

#define min ( a,
 )     ((a) < (b))? (a) : (b)

#define pi   3.141592653589793238462643383279502884197e0

----------------------------------------------------------------------------

* b_ang(1:7): bond angles (N1-A1-C1, A1-C1-N2, ..., N3-A3-C3) t_ang(1:2): torsion angles (A1-C1-N2-A2, A2-C2-N3-A3)

subroutine solv_3pep_poly(r_n1, r_a1, r_a3, r_c3, & r_soln_n, r_soln_a, r_soln_c, n_soln)

input: r_n1(3), r_a1(3), r_a3(3), r_c3(3): Cartesian coordinates of N and CA atoms of the first residue and CA and C atoms of the last (third) residue. output: n_soln: number of alternative loop closure solutions. r_soln_n(3,3,8), r_soln_a(3,3,8), r_soln_c(3,3,8): Cartesian coordinates of loop closure solutions. first dimension: x, y, z component second dim: residue number third dim: solution number

----------------------------------------------------------------------------

#define rad2deg   180.0e0/pi

#define two_pi   2.0e0*pi


Function Documentation

void calc_bnd_ang ( double  r1[3],
double  r2[3],
double *  angle 
)

-----------------------------------------------------------------------

----------------------------------------------------------------------- assume that each vector is normalized r1=Rba, r2=Rbc: angle between r1 and r2 -----------------------------------------------------------------------

void calc_bnd_ang ( double  r1[],
double  r2[],
double *  angle 
)

void calc_dih_ang ( double  r1[3],
double  r2[3],
double  r3[3],
double *  angle 
)

-----------------------------------------------------------------------

----------------------------------------------------------------------- r1=Rab, r2=Rbc, r3=Rcd : angle between planes abc and bcd -----------------------------------------------------------------------

void calc_dih_ang ( double  r1[],
double  r2[],
double  r3[],
double *  angle 
)

double calc_t1 ( double  t0,
double  t2 
)

-----------------------------------------------------------------------

double calc_t2 ( double  t0  ) 

-----------------------------------------------------------------------

void coord_from_poly_roots ( int *  n_soln,
double  roots[16],
double  r_n1[3],
double  r_a1[3],
double  r_a3[3],
double  r_c3[3],
double  r_soln_n[16][3][3],
double  r_soln_a[16][3][3],
double  r_soln_c[16][3][3] 
)

----------------------------------------------------------------------------

void cross ( double  p[3],
double  q[3],
double  s[3] 
)

-----------------------------------------------------------------------

-----------------------------------------------------------------------

void cross ( double  p[],
double  q[],
double  s[] 
)

double dot_product ( double  va[3],
double  vb[3] 
)

double dot_product ( double  va[],
double  vb[] 
)

void get_input_angles ( int *  n_soln,
double  r_n1[3],
double  r_a1[3],
double  r_a3[3],
double  r_c3[3] 
)

-----------------------------------------------------------------------

----------------------------------------------------------------------- Input angles and vectors (later used in coordinates) -----------------------------------------------------------------------

-----------------------------------------------------------------------

print*, 'return 0' print*, sqrt(dr_sqr), sqrt(aa13_min_sqr), sqrt(aa13_max_sqr)

void get_input_angles ( int *  n_soln,
double  r_n1[],
double  r_a1[],
double  r_a3[],
double  r_c3[] 
)

void get_poly_coeff ( double  poly_coeff[16+1]  ) 

-----------------------------------------------------------------------

void get_poly_coeff ( double  poly_coeff[]  ) 

void initialize_loop_closure ( double  b_len[6],
double  b_ang[7],
double  t_ang[2] 
)

-----------------------------------------------------------------------

----------------------------------------------------------------------- Input angles for the given bond lengths and angles -----------------------------------------------------------------------

print*, 'len1, len3=', len_aa(2:3)

print*, 'a_min, a_max=', a_min*rad2deg, a_max*rad2deg

print*, 'aa13_min_sqr,aa13_max_sqr', aa13_min_sqr,aa13_max_sqr

void initialize_loop_closure ( double  b_len[],
double  b_ang[],
double  t_ang[] 
)

void matmul ( double  ma[3][3],
double  mb[3],
double  mc[3] 
)

void poly_mul1 ( double  u1[17],
double  u2[17],
int  p1,
int  p2,
double  u3[17],
int *  p3 
)

----------------------------------------------------------------------------

void poly_mul1 ( double  u1[],
double  u2[],
int  p1,
int  p2,
double  u3[],
int *  p3 
)

void poly_mul2 ( double  u1[5][5],
double  u2[5][5],
int  p1[2],
int  p2[2],
double  u3[5][5],
int  p3[2] 
)

----------------------------------------------------------------------------

void poly_mul_sub1 ( double  u1[17],
double  u2[17],
double  u3[17],
double  u4[17],
int  p1,
int  p2,
int  p3,
int  p4,
double  u5[17],
int *  p5 
)

----------------------------------------------------------------------------

void poly_mul_sub2 ( double  u1[5][5],
double  u2[5][5],
double  u3[5][5],
double  u4[5][5],
int  p1[2],
int  p2[2],
int  p3[2],
int  p4[2],
double  u5[5][5],
int  p5[2] 
)

----------------------------------------------------------------------------

void poly_sub1 ( double  u1[17],
double  u2[17],
int  p1,
int  p2,
double  u3[17],
int *  p3 
)

----------------------------------------------------------------------------

void poly_sub1 ( double  u1[],
double  u2[],
int  p1,
int  p2,
double  u3[],
int *  p3 
)

void poly_sub2 ( double  u1[5][5],
double  u2[5][5],
int  p1[2],
int  p2[2],
double  u3[5][5],
int  p3[2] 
)

----------------------------------------------------------------------------

void quaternion ( double  axis[3],
double  quarter_ang,
double  p[4] 
)

-----------------------------------------------------------------------

----------------------------------------------------------------------- calculate quaternion, given rotation axis and angle. -----------------------------------------------------------------------

void quaternion ( double  axis[],
double  quarter_ang,
double  p[] 
)

void rotation_matrix ( double  q[4],
double  U[3][3] 
)

-----------------------------------------------------------------------

----------------------------------------------------------------------- constructs rotation matrix U from quaternion q. -----------------------------------------------------------------------

double sign ( double  a,
double  b 
)

void solve_3pep_poly ( double  r_n1[3],
double  r_a1[3],
double  r_a3[3],
double  r_c3[3],
double  r_soln_n[16][3][3],
double  r_soln_a[16][3][3],
double  r_soln_c[16][3][3],
int *  n_soln 
)

-----------------------------------------------------------------------

print*, 'return 2'

void test_two_cone_existence_soln ( double  tt,
double  kx,
double  et,
double  ap,
int *  n_soln,
char  cone_type[2] 
)

-----------------------------------------------------------------------

void test_two_cone_existence_soln ( double  tt,
double  kx,
double  et,
double  ap,
int *  n_soln,
char  cone_type[] 
)


Variable Documentation

double aa13_max_sqr

double aa13_min_sqr

double alpha[3]

double b_a1a3[3]

double b_a1n1[3]

double b_a3c3[3]

double b_ang0[7]

double C0[3][3]

double C1[3][3]

double C2[3][3]

double cos_alpha[3]

double cos_delta[4]

double cos_eta[3]

double cos_theta[3]

double cos_xi[3]

int deg_pol = 16

double delta[4]

double eta[3]

double len0[6]

double len_aa[3]

double len_ac[3]

double len_na[3]

int max_soln = 16

int print_level = 1

double Q[5][17]

double R[3][17]

double r_a1a3[3]

double r_a1n1[3]

double r_a3c3[3]

double sin_alpha[3]

double sin_delta[4]

double sin_eta[3]

double sin_theta[3]

double sin_xi[3]

double t_ang0[2]

double theta[3]

double xi[3]


Generated on Wed May 16 20:22:10 2007 for LoopTK: Protein Loop Kinematic Toolkit by  doxygen 1.5.1