ARB
Main Page
Namespaces
Classes
Files
File List
File Members
DIST
di_protdist.hxx
Go to the documentation of this file.
1
// =============================================================== //
2
// //
3
// File : di_protdist.hxx //
4
// Purpose : //
5
// //
6
// Institute of Microbiology (Technical University Munich) //
7
// http://www.arb-home.de/ //
8
// //
9
// =============================================================== //
10
11
#ifndef DI_PROTDIST_HXX
12
#define DI_PROTDIST_HXX
13
14
#ifndef AP_SEQ_SIMPLE_PRO_HXX
15
#include <
AP_seq_simple_pro.hxx
>
16
#endif
17
18
const
int
DI_MAX_AA
=
STOP
;
// must be 20
19
const
int
DI_MAX_PAA
=
UNK
;
// includes virtual aa
20
const
int
DI_RESOLUTION
= 1000;
// max res
21
const
int
DI_MAX_DIST
= 10;
// max dist
22
23
// stop is first non real AA == 20
24
25
enum
di_codetype
{
UNIVERSAL
,
CILIATE
,
MITO
,
VERTMITO
,
FLYMITO
,
YEASTMITO
};
26
enum
di_cattype
{
NONE
,
SIMILARITY
,
KIMURA
,
PAM
,
CHEMICAL
,
HALL
,
GEORGE
};
27
28
typedef
double
di_aa_matrix
[
DI_MAX_AA
][
DI_MAX_AA
];
29
typedef
double
di_paa_matrix
[
DI_MAX_PAA
][
DI_MAX_PAA
];
30
typedef
char
di_bool_matrix
[
DI_MAX_PAA
][
DI_MAX_PAA
];
31
32
class
DI_ENTRY
;
33
class
AP_smatrix
;
34
35
class
di_protdist
:
virtual
Noncopyable
{
36
static
double
pameigs[20];
37
static
double
pamprobs[20][20];
38
39
di_codetype
whichcode;
40
di_cattype
whichcat;
41
42
long
spp;
// number of species
43
long
chars;
// number of characters
44
45
// spp = number of species chars = number of sites in actual sequences
46
47
double
freqa, freqc, freqg, freqt, ttratio, xi, xv, ease, fracchange;
48
DI_ENTRY
**entries;
// link to entries
49
aas
trans[4][4][4];
50
double
pi[20];
51
long
cat[
DI_MAX_AA
];
52
double
eig[
DI_MAX_AA
];
53
double
exptteig[
DI_MAX_AA
];
54
di_aa_matrix
prob, eigvecs;
55
56
di_paa_matrix
*slopes[DI_RESOLUTION*
DI_MAX_DIST
];
57
// huge cash for many slopes
58
di_paa_matrix
*curves[DI_RESOLUTION*
DI_MAX_DIST
];
59
di_bool_matrix
*infs[DI_RESOLUTION*
DI_MAX_DIST
];
60
61
di_paa_matrix
*akt_slopes;
62
di_paa_matrix
*akt_curves;
63
di_bool_matrix
*akt_infs;
64
AP_smatrix
*matrix;
// link to output matrix
65
66
// Local variables for makedists, propagated globally for c version:
67
double
p, dp, d2p;
68
69
void
maketrans();
70
void
code();
71
void
transition();
72
void
givens(
di_aa_matrix
a,
long
i,
long
j,
long
n,
double
ctheta,
double
stheta,
bool
left);
73
void
coeffs(
double
x,
double
y
,
double
*c,
double
*
s
,
double
accuracy);
74
void
tridiag(
di_aa_matrix
a,
long
n,
double
accuracy);
75
void
shiftqr(
di_aa_matrix
a,
long
n,
double
accuracy);
76
void
qreigen(
di_aa_matrix
prob,
long
n);
77
void
pameigen();
78
79
void
predict(
double
tt,
long
nb1,
long
nb2);
80
int
tt_2_pos(
double
tt);
// double to cash index
81
double
pos_2_tt(
int
pos);
// cash index to pos
82
void
build_exptteig(
double
tt);
83
void
build_predikt_table(
int
pos);
// build akt_slopes akt_curves
84
void
build_akt_predikt(
double
tt);
// build akt_slopes akt_curves
85
86
double
predict_slope(
int
b1,
int
b2) {
return
akt_slopes[0][b1][b2]; }
87
double
predict_curve(
int
b1,
int
b2) {
return
akt_curves[0][b1][b2]; }
88
char
predict_infinity(
int
b1,
int
b2) {
return
akt_infs[0][b1][b2]; }
89
90
void
clean_slopes();
91
92
public
:
93
di_protdist
(
di_codetype
codei,
di_cattype
cati,
long
nentries,
DI_ENTRY
**entries,
long
seq_len,
AP_smatrix
*matrixi);
94
~di_protdist
();
95
96
GB_ERROR
makedists
(
bool
*aborted_flag);
// calculate the distance matrix
97
};
98
99
#else
100
#error di_protdist.hxx included twice
101
#endif // DI_PROTDIST_HXX
GEORGE
Definition:
di_protdist.hxx:26
y
static char * y[maxsp+1]
Definition:
arb_dnarates.cxx:80
di_aa_matrix
double di_aa_matrix[DI_MAX_AA][DI_MAX_AA]
Definition:
di_protdist.hxx:28
AP_seq_simple_pro.hxx
DI_MAX_DIST
const int DI_MAX_DIST
Definition:
di_protdist.hxx:21
di_protdist::di_protdist
di_protdist(di_codetype codei, di_cattype cati, long nentries, DI_ENTRY **entries, long seq_len, AP_smatrix *matrixi)
Definition:
DI_protdist.cxx:754
YEASTMITO
Definition:
di_protdist.hxx:25
di_bool_matrix
char di_bool_matrix[DI_MAX_PAA][DI_MAX_PAA]
Definition:
di_protdist.hxx:30
KIMURA
Definition:
di_protdist.hxx:26
NONE
Definition:
di_protdist.hxx:26
DI_RESOLUTION
const int DI_RESOLUTION
Definition:
di_protdist.hxx:20
FLYMITO
Definition:
di_protdist.hxx:25
HALL
Definition:
di_protdist.hxx:26
di_codetype
di_codetype
Definition:
di_protdist.hxx:25
di_protdist::~di_protdist
~di_protdist()
Definition:
DI_protdist.cxx:750
DI_ENTRY
Definition:
di_matr.hxx:75
di_cattype
di_cattype
Definition:
di_protdist.hxx:26
DI_MAX_AA
const int DI_MAX_AA
Definition:
di_protdist.hxx:18
STOP
Definition:
AP_seq_simple_pro.hxx:23
aas
aas
Definition:
AP_seq_simple_pro.hxx:21
di_protdist
Definition:
di_protdist.hxx:35
di_protdist::makedists
GB_ERROR makedists(bool *aborted_flag)
Definition:
DI_protdist.cxx:605
di_paa_matrix
double di_paa_matrix[DI_MAX_PAA][DI_MAX_PAA]
Definition:
di_protdist.hxx:29
DI_MAX_PAA
const int DI_MAX_PAA
Definition:
di_protdist.hxx:19
CHEMICAL
Definition:
di_protdist.hxx:26
CILIATE
Definition:
di_protdist.hxx:25
AP_smatrix
Definition:
AP_matrix.hxx:35
PAM
Definition:
di_protdist.hxx:26
VERTMITO
Definition:
di_protdist.hxx:25
UNIVERSAL
Definition:
di_protdist.hxx:25
char
UNK
Definition:
AP_seq_simple_pro.hxx:23
SIMILARITY
Definition:
di_protdist.hxx:26
MITO
Definition:
di_protdist.hxx:25
Noncopyable
Definition:
arbtools.h:39
s
GB_write_int const char s
Definition:
AW_awar.cxx:154
Generated by
1.8.8