source: tags/arb_5.1/GDE/MOLPHY/protml.h

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