source: tags/initial/GDE/MOLPHY/protml.h

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.3 KB
Line 
1/*
2 * protml.h   Adachi, J.   1996.07.01
3 * Copyright (C) 1992-1996 J. Adachi & M. Hasegawa. All rights reserved.
4 */
5
6#include "molphy.h"
7#include "matrixut.h"
8           /* unit time (length) is a number of substitutions per 100 sites */
9#define UPPERLIMIT  500.0   /* upper limit on branch length (subsutitutions) */
10#define LOWERLIMIT  0.001   /* lower limit on branch length (subsutitutions) */
11#define EPSILON     0.001   /* stopping value of error (branch length) */
12#define DEPSILON    0.0001  /* stopping value of error (distance) */
13#define REPSILON    0.005   /* stopping value of error (local rearrangement) */
14#define NUMBOOTS    10000   /* number of bootstrap resamplings */
15#define NUMBOOTSR   1000    /* number of bootstrap resamplings (reliability) */
16#define MAXIT       50      /* maximum number of iterates of smoothing */
17#define TBLRATE     0.3 /* if number of possible trees >  945 (OTUs >  7) */
18#define TBLRATE7    2.0 /* if number of possible trees <= 945 (OTUs <= 7) */
19#define MAXALTREES  105
20#define NUMQLTREES  50
21#define MAXQLBUF    9
22#define MAXSLBUF    30 /* 20 */
23#define RSRATE      0.5
24#define QRSRATE     1.15
25#define SRSRATE     1.5 /* 1.3 */
26#define NUMTBLBIN   20
27#define INITCOEFMLE 0.5
28
29#define VARITPM 0
30
31#define MINFREQ    0.005
32#define NUMAMI     20
33#define NUMNUC     4
34
35#define MTREVNAME   "mtREV24"
36#define LLSFILEEXT  ".lls"
37#define EPSFILEEXT  ".eps"
38#ifndef NUC
39#define TPMRADIX    NUMAMI
40#define INFOMOL     "Amino"
41#define RSRINFILE   "prot.rsr"
42#define RSROUTFILE  "p.rsr"
43#define TPMOUTFILE  "p.src"
44#define TPLFILE     "protml.tpl"
45#define TREFILE     "protml.tre"
46#define EPSFILE     "protml.eps"
47#define LOGFILE     "Protml.log"
48#else  /* NUC*/
49#define TPMRADIX    NUMNUC
50#define INFOMOL     "Nucleic"
51#define RSRINFILE   "nuc.rsr"
52#define RSROUTFILE  "n.rsr"
53#define TPMOUTFILE  "n.src"
54#define TPLFILE     "nucml.tpl"
55#define TREFILE     "nucml.tre"
56#define EPSFILE     "nucml.eps"
57#define LOGFILE     "Nucml.log"
58#define ALPHABETA   4.0
59#define ALPHAYR     1.0
60#define BETA12      1.0
61#define MINAB       0.5
62#define MAXAB       100.0
63#define MINAYR      0.1
64#define MAXAYR      5.0
65#define MINB12      0.1
66#define MAXB12      10.0
67#endif /* NUC*/
68
69#define MAXCOLUMN  80
70#define LINESITES  60
71#define BUFLINE    512
72#define MAXWORD    32
73#define MAXOVER    50
74#define MAXLENG    30
75#define MIDLIMIT  100.0
76#define NMLNGTH    10 /* max. num. of characters in species name with S or I */
77#define VERSION    "2.3b3" /* beta 2 */
78#define DATE       "July 1 1996"
79
80typedef int       ivectpmty[TPMRADIX];
81typedef double    dvectpmty[TPMRADIX];
82typedef dvectpmty dmattpmty[TPMRADIX];
83
84typedef struct node {
85        struct node *isop;
86        struct node *kinp;
87        int descen;
88        int num;
89        double length;
90        double lklhdl;
91        double reliab;
92        ivector paths;
93        ivector eprob;
94        dmatrix iprob;
95} Node;
96
97typedef struct tree {
98        Node *rootp;
99        Node *firstp;
100        Node **ebrnchp;
101        Node **ibrnchp;
102        double lklhd;
103        double varilkl;
104        double lklmin;
105        double lklmean;
106        double aic;
107        double aproxl;
108        double tblength;
109        double tbldis;
110        double rssleast;
111        int npara;
112        int numorder;
113        ivector bturn;
114} Tree;
115
116typedef struct infotree {
117        int npara;
118        int bsprob;
119        int mlsite;
120        double lklhd;
121        double varilkl;
122        double lklaprox;
123        double lklbs;
124        double aic;
125        double tblength;
126        double abdistan;
127        char *ltplgy;
128} Infotree;
129
130typedef struct infoaltree {
131        struct infoaltree *up;
132        double lklaprox;
133        double tbl;
134        double rss;
135        char *ltplgy;
136} Infoaltree;
137
138typedef struct infoqltree {
139        struct infoqltree *up;
140        Node *ap;
141        double lklaprox;
142        double residual;
143        dvector lengths;
144} Infoqltree;
145
146typedef struct infoaddtree {
147        struct infoaddtree *dp;
148        double lklaprox;
149        int frequency;
150        char *ltplgy;
151} Infoaddtree;
152
153typedef struct infosltree {
154        struct infosltree *up;
155        Node *ibp;
156        Node *jbp;
157        double lklaprox;
158        double residual;
159        dvector lengths;
160} Infosltree;
161
162extern char *Cacid1[];
163extern char *Cacid3[];
164
165
166#ifdef MAIN_MODULE
167
168#define EXTERN
169int Tpmradix = TPMRADIX;
170char *Infomol = INFOMOL;
171
172#else
173
174#define EXTERN extern
175EXTERN int Tpmradix;
176EXTERN char *Infomol;
177
178#endif
179
180
181EXTERN FILE *Epsfp;
182EXTERN FILE *Tplfp;
183EXTERN FILE *Trefp;
184EXTERN FILE *Lklfp;
185EXTERN FILE *Logfp;
186EXTERN FILE *Rtfofp; /* TPM! */
187EXTERN FILE *Rtfifp; /* TPM! */
188EXTERN FILE *Tpmofp; /* TPM! */
189EXTERN time_t Ct0;
190EXTERN time_t Ct1;
191
192#define SWITCHES   "aAbCdDefFhHiIjl:LmMn:No:pP:qQrRsSt:TuvVwXzZ"
193                                /*    Bc  E  G   JkK      O             U  Wx */
194EXTERN boolean Aneal_optn;    /* a option  Annealing */
195EXTERN boolean Aprox_optn;    /* A option  Approximate likelihood */
196EXTERN boolean Boots_optn;    /* b option  no Bootstrap probability */
197EXTERN boolean Ctacit_optn;   /* C option  taCiturnity */
198EXTERN boolean Dayhf_optn;    /* d option  Dayhoff model */
199EXTERN boolean Distn_optn;    /* D option  Distance matrix only */
200EXTERN boolean Exhau_optn;    /* e option  Exhaustive search */
201EXTERN boolean Frequ_optn;    /* f option  with data frequency */
202EXTERN boolean Logdet_optn;   /* F option  */
203EXTERN boolean Info_optn;     /* i option  */
204EXTERN boolean Inlvd_optn;    /* I option  interleaved input format */
205EXTERN boolean Jtt_optn;      /* j option  JTT model */
206EXTERN boolean Lklhd_optn;    /* l option  */
207EXTERN boolean Logfl_optn;    /* L option  */
208EXTERN boolean Mtrev_optn;    /* m option  Mitochondrial model */
209EXTERN boolean Mevol_optn;    /* M option  minimum evolution */
210EXTERN boolean Njoin_optn;    /* N option  NJ */
211EXTERN boolean Outgr_optn;    /* o option  */
212EXTERN boolean Poisn_optn;    /* p option  Poisson process */
213EXTERN boolean Percnt_optn;   /* P option  Per cent */
214EXTERN boolean Quick_optn;    /* q option  quick mode */
215EXTERN boolean Quick1_optn;   /* Q option  quick 1 mode */
216EXTERN boolean Rrsr_optn;     /* r option  Read RSR, TPM */
217EXTERN boolean Relia_optn;    /* R option  Reliability of a branch */
218EXTERN boolean Stard_optn;    /* s option  Star Decomposition */
219EXTERN boolean Seque_optn;    /* S option  PHYLIP Sequential input format */
220EXTERN boolean Tstv_optn;     /* t option  with decimal number */
221EXTERN boolean Toptim_optn;   /* t option  without decimal number */
222EXTERN boolean Triad_optn;    /* T option  */
223EXTERN boolean User_optn;     /* u option  designate user trees */
224EXTERN boolean Verbs_optn;    /* v option  Verbose to stderr */
225EXTERN boolean Varia_optn;    /* V option  Variance */
226EXTERN boolean Write_optn;    /* w option  output sequence infomation */
227EXTERN boolean Xreli_optn;    /* X option  Reliability of a branch 2 */
228EXTERN boolean Debug_optn;    /* z option  */
229EXTERN boolean Debug;         /* Z option  */
230EXTERN boolean Const_optn;    /*   option  with constrained_tree */
231
232#ifndef NUC
233#else  /* NUC */
234EXTERN double AlphaBeta;
235EXTERN double AlphaYR;
236EXTERN double Beta12;
237#endif /* NUC */
238
239EXTERN boolean Converg;
240EXTERN boolean Topting;
241EXTERN char *Prog_name;
242EXTERN char Modelname[64];
243EXTERN char *Comment;
244EXTERN char *Llsfile;
245EXTERN char *Epsfile;
246EXTERN int Aneal_mode;
247EXTERN int Maxspc;
248EXTERN int Numspc;
249EXTERN int Maxibrnch;
250EXTERN int Numibrnch;
251EXTERN int Maxbrnch;
252EXTERN int Numbrnch;
253EXTERN int Maxpair;
254EXTERN int Numpair;
255EXTERN int Maxsite;
256EXTERN int Numsite;
257EXTERN int Numptrn;
258EXTERN int Numtree;
259EXTERN int Maxaltree;
260EXTERN int Numaltree;
261EXTERN int Numqltree;
262EXTERN int Numaddtree;
263EXTERN int Cnotree;
264EXTERN int Maxlkltree;
265EXTERN int Minaictree;
266EXTERN int Mintbltree;
267EXTERN int Numexe;
268EXTERN int Cnoexe;
269EXTERN int Numit;
270EXTERN int Linesites;
271EXTERN int Outgroup1;
272EXTERN int Outgroup2;
273EXTERN int Numverbs;
274EXTERN int Tblunder;
275EXTERN int Tblover;
276EXTERN double Epsilon;
277EXTERN double Ulimit;
278EXTERN double Llimit;
279EXTERN double Mlimit;
280EXTERN double Numtplgy;
281EXTERN double Maxlkl;
282EXTERN double Minaic;
283EXTERN double Mintbl;
284EXTERN double Mintbldm;
285EXTERN double Maxtbldm;
286EXTERN double Basetbldm;
287EXTERN double Proportion;
288EXTERN double Percent;
289EXTERN double Tblrate;
290EXTERN double Tblcoef;
291EXTERN ivector Numsites; /* Mar 22 1995 */
292
293EXTERN Tree *Ctree;
294EXTERN Infotree *Infotrees;
295EXTERN Infoaltree *Infoaltrees;
296EXTERN Infoaltree Atail, Ahead;
297EXTERN Infoqltree *Infoqltrees;
298EXTERN Infoqltree *Qtail, *Qhead;
299
300EXTERN char **Identif;
301EXTERN char **Sciname;
302EXTERN char **Engname;
303EXTERN cmatrix Seqchar;
304EXTERN imatrix Seqconint;
305EXTERN ivector Weight;
306EXTERN dmatrix Distanmat;
307EXTERN dvector Distanvec;
308EXTERN dvector Brnlength;
309EXTERN cvector Strtree;
310EXTERN ivector Poolorder;
311EXTERN ivector Relistat;
312EXTERN imatrix Relinum;
313EXTERN dvector Relidiff;
314EXTERN dmatrix Reliprob;
315EXTERN ivector Tblbin;
316EXTERN dvector Relitrif;
317
318#ifdef LIGHT
319#define LPMATRIX fmatrix
320#define LPVECTOR fvector
321#define LPCUBE   fcube
322#define NEW_LPMATRIX  new_fmatrix
323#define NEW_LPVECTOR  new_fvector
324#define NEW_LPCUBE    new_fcube
325#define FREE_LPMATRIX free_fmatrix
326#define FREE_LPVECTOR free_fvector
327#define FREE_LPCUBE   free_fcube
328#else  /* LIGHT */
329#define LPMATRIX dmatrix
330#define LPVECTOR dvector
331#define LPCUBE   dcube
332#define NEW_LPMATRIX  new_dmatrix
333#define NEW_LPVECTOR  new_dvector
334#define NEW_LPCUBE    new_dcube
335#define FREE_LPMATRIX free_dmatrix
336#define FREE_LPVECTOR free_dvector
337#define FREE_LPCUBE   free_dcube
338#endif /* LIGHT */
339
340EXTERN LPMATRIX Lklptrn;
341EXTERN LPVECTOR Alklptrn;
342
343EXTERN dvectpmty Freqemp;
344EXTERN dvectpmty Freqtpm;
345EXTERN dvectpmty Eval;
346EXTERN dvectpmty Evl2;
347EXTERN dmattpmty Evec;
348EXTERN dmattpmty Ievc;
349
350#ifdef TPM
351EXTERN dmattpmty Rtf; /* TPM! */
352EXTERN dmattpmty Tpm; /* TPM! */
353EXTERN int Itpm; /* TPM! */
354EXTERN int Jtpm; /* TPM! */
355#endif /* TPM */
Note: See TracBrowser for help on using the repository browser.