initial commit
[jalview.git] / forester / archive / RIO / others / puzzle_mod / src / model2.c
1 /*
2  * model2.c
3  *
4  *
5  * Part of TREE-PUZZLE 5.0 (June 2000)
6  *
7  * (c) 1999-2000 by Heiko A. Schmidt, Korbinian Strimmer,
8  *                  M. Vingron, and Arndt von Haeseler
9  * (c) 1995-1999 by Korbinian Strimmer and Arndt von Haeseler
10  *
11  * All parts of the source except where indicated are distributed under
12  * the GNU public licence.  See http://www.opensource.org for details.
13  */
14
15
16 /* definitions */
17 #define EXTERN extern
18
19 /* prototypes */
20 #include <stdio.h>
21 #include "util.h"
22 #include "ml.h"
23
24
25 void jttdata(dmatrix q, double *f)
26 {
27         /*
28          * JTT model for amino acid evolution
29          * D.T. Jones, W.R. Taylor, and J.M. Thornton
30          * "The rapid generation of mutation data matrices from protein sequences"
31          * CABIOS  vol. 8 no. 3 1992 pp. 275-282
32          */
33
34         q[0][1]=3.1628651460584e+00;    q[0][2]=3.2804935927860e+00;
35         q[0][3]=4.8477237048666e+00;    q[0][4]=3.4612244897959e+00;
36         q[0][5]=3.3130910900946e+00;    q[0][6]=6.3199473337722e+00;
37         q[0][7]=1.0440154440154e+01;    q[0][8]=1.3061224489796e+00;
38         q[0][9]=2.1726844583987e+00;    q[0][10]=1.8443597219107e+00;
39         q[0][11]=2.2137668626773e+00;   q[0][12]=2.7210884353741e+00;
40         q[0][13]=8.3265306122449e-01;   q[0][14]=1.1537414965986e+01;
41         q[0][15]=2.2838213546288e+01;   q[0][16]=2.7007955724663e+01;
42         q[0][17]=5.1311953352770e-01;   q[0][18]=8.3673469387755e-01;
43         q[0][19]=1.7474335188621e+01; 
44         
45         q[1][2]=2.6598918637222e+00;    q[1][3]=9.1014867485456e-01;
46         q[1][4]=6.1624649859944e+00;    q[1][5]=1.8036482885837e+01;
47         q[1][6]=1.8924731182796e+00;    q[1][7]=8.1810886516769e+00;
48         q[1][8]=1.9119717452198e+01;    q[1][9]=1.4410687351864e+00;
49         q[1][10]=2.2211961707760e+00;   q[1][11]=3.9239234676922e+01;
50         q[1][12]=2.5060690943044e+00;   q[1][13]=3.9439775910364e-01;
51         q[1][14]=4.1953094963476e+00;   q[1][15]=5.9016766126741e+00;
52         q[1][16]=3.8437069743152e+00;   q[1][17]=7.6766706682673e+00;
53         q[1][18]=1.4173669467787e+00;   q[1][19]=1.0308123249300e+00;
54
55         q[2][3]=3.2226935854843e+01;    q[2][4]=1.8710963455150e+00;
56         q[2][5]=4.5351268130622e+00;    q[2][6]=3.3951344979102e+00;
57         q[2][7]=4.5987249708180e+00;    q[2][8]=2.3693774375271e+01;
58         q[2][9]=2.9235880398671e+00;    q[2][10]=8.0960899565551e-01;
59         q[2][11]=1.5024269384537e+01;   q[2][12]=1.9003322259136e+00;
60         q[2][13]=4.3853820598007e-01;   q[2][14]=7.1083317047749e-01;
61         q[2][15]=2.9456208772690e+01;   q[2][16]=1.3735908553410e+01;
62         q[2][17]=1.6706217370669e-01;   q[2][18]=4.1661129568106e+00;
63         q[2][19]=9.7452934662237e-01; 
64         
65         q[3][4]=6.2857142857143e-01;    q[3][5]=3.0662020905923e+00;
66         q[3][6]=4.5450549450549e+01;    q[3][7]=7.5402435402435e+00;
67         q[3][8]=6.0544672718586e+00;    q[3][9]=6.8808114961961e-01;
68         q[3][10]=3.6130902064968e-01;   q[3][11]=1.6718197057180e+00;
69         q[3][12]=1.0879120879121e+00;   q[3][13]=1.9340659340659e-01;
70         q[3][14]=7.3949579831933e-01;   q[3][15]=3.4196528109572e+00;
71         q[3][16]=2.4749487800335e+00;   q[3][17]=3.4536891679749e-01;
72         q[3][18]=2.6895604395604e+00;   q[3][19]=1.8608058608059e+00;
73
74         q[4][5]=5.5191637630662e-01;    q[4][6]=3.2442396313364e-01;
75         q[4][7]=3.3297297297297e+00;    q[4][8]=4.3726708074534e+00;
76         q[4][9]=9.1868131868132e-01;    q[4][10]=9.9466248037677e-01;
77         q[4][11]=2.9830508474576e-01;   q[4][12]=2.4095238095238e+00;
78         q[4][13]=4.1485714285714e+00;   q[4][14]=7.3949579831933e-01;
79         q[4][15]=1.2862939958592e+01;   q[4][16]=2.8125907990315e+00;
80         q[4][17]=6.8244897959184e+00;   q[4][18]=1.2885714285714e+01;
81         q[4][19]=3.7714285714286e+00; 
82         
83         q[5][6]=2.0316061593796e+01;    q[5][7]=1.3922214897825e+00;
84         q[5][8]=3.3861536130889e+01;    q[5][9]=4.7172339855267e-01;
85         q[5][10]=4.2320327755868e+00;   q[5][11]=1.7835941652395e+01;
86         q[5][12]=2.6573751451800e+00;   q[5][13]=2.7595818815331e-01;
87         q[5][14]=9.4992143198743e+00;   q[5][15]=3.2350653941322e+00;
88         q[5][16]=3.0973838067678e+00;   q[5][17]=1.0512692882031e+00;
89         q[5][18]=1.5331010452962e+00;   q[5][19]=1.0778164924506e+00;
90
91         q[6][7]=6.6857641051189e+00;    q[6][8]=1.4458024443999e+00;
92         q[6][9]=6.7068415455512e-01;    q[6][10]=5.7932850559579e-01;
93         q[6][11]=1.0365070686558e+01;   q[6][12]=1.0138248847926e+00;
94         q[6][13]=2.6359447004608e-01;   q[6][14]=1.1291226167887e+00;
95         q[6][15]=1.8337006611901e+00;   q[6][16]=1.9520424900414e+00;
96         q[6][17]=6.9519420671494e-01;   q[6][18]=3.8018433179723e-01;
97         q[6][19]=2.7772657450077e+00; 
98         
99         q[7][8]=1.2113479939567e+00;    q[7][9]=3.2670032670033e-01;
100         q[7][10]=4.1817641817642e-01;   q[7][11]=1.6354950592239e+00;
101         q[7][12]=7.6447876447876e-01;   q[7][13]=3.0579150579151e-01;
102         q[7][14]=1.2391551215081e+00;   q[7][15]=1.1138492529797e+01;
103         q[7][16]=1.8888816176952e+00;   q[7][17]=3.3491450634308e+00;
104         q[7][18]=3.1853281853282e-01;   q[7][19]=2.8416988416988e+00;
105
106         q[8][9]=1.0931677018634e+00;    q[8][10]=3.2194389461470e+00;
107         q[8][11]=3.1498052426571e+00;   q[8][12]=1.9130434782609e+00;
108         q[8][13]=2.7329192546584e+00;   q[8][14]=6.7304834977469e+00;
109         q[8][15]=4.3726708074534e+00;   q[8][16]=2.8162964522581e+00;
110         q[8][17]=7.8083407275954e-01;   q[8][18]=3.5118012422360e+01;
111         q[8][19]=7.2877846790890e-01; 
112         
113         q[9][10]=1.4069798333535e+01;   q[9][11]=1.2292791953809e+00;
114         q[9][12]=2.8366300366300e+01;   q[9][13]=4.7384615384615e+00;
115         q[9][14]=5.8780435251023e-01;   q[9][15]=2.4105749323141e+00;
116         q[9][16]=1.5243062022723e+01;   q[9][17]=8.2888540031397e-01;
117         q[9][18]=1.8434065934066e+00;   q[9][19]=5.7699633699634e+01;
118
119         q[10][11]=8.8039805231089e-01;  q[10][12]=2.2425954997384e+01;
120         q[10][13]=1.5099529042386e+01;  q[10][14]=6.2626896912611e+00;
121         q[10][15]=3.4917298022888e+00;  q[10][16]=1.6109411169944e+00;
122         q[10][17]=3.2366001345593e+00;  q[10][18]=1.4505494505495e+00;
123         q[10][19]=1.0557823129252e+01; 
124         
125         q[11][12]=3.6577885391445e+00;  q[11][13]=1.4915254237288e-01;
126         q[11][14]=1.2868062479229e+00;  q[11][15]=2.8162964522581e+00;
127         q[11][16]=5.7494151926786e+00;  q[11][17]=5.4790729851263e-01;
128         q[11][18]=5.3268765133172e-01;  q[11][19]=7.4899112187248e-01;
129
130         q[12][13]=2.5666666666667e+00;  q[12][14]=9.4491129785247e-01;
131         q[12][15]=1.6397515527950e+00;  q[12][16]=1.2180790960452e+01;
132         q[12][17]=1.1972789115646e+00;  q[12][18]=1.1130952380952e+00;
133         q[12][19]=1.7746031746032e+01; 
134         
135         q[13][14]=8.8739495798319e-01;  q[13][15]=5.6298136645963e+00;
136         q[13][16]=8.3099273607748e-01;  q[13][17]=3.3224489795918e+00;
137         q[13][18]=3.3392857142857e+01;  q[13][19]=3.6000000000000e+00;
138
139         q[14][15]=1.6261762676085e+01;  q[14][16]=6.8852490148602e+00;
140         q[14][17]=4.2256902761104e-01;  q[14][18]=6.7787114845938e-01;
141         q[14][19]=1.2549019607843e+00; 
142         
143         q[15][16]=2.7891216619293e+01;  q[15][17]=1.8740017746229e+00;
144         q[15][18]=3.7349896480331e+00;  q[15][19]=2.4182194616977e+00;
145
146         q[16][17]=4.8702870978900e-01;  q[16][18]=1.1985472154964e+00;
147         q[16][19]=6.7925746569814e+00; 
148         
149         q[17][18]=4.6020408163265e+00;  q[17][19]=1.4693877551020e+00;
150
151         q[18][19]=1.0000000000000e+00; 
152
153
154         f[0] = 0.077; f[1] = 0.051; f[2] = 0.043; f[3] = 0.052;
155         f[4] = 0.02; f[5] = 0.041; f[6] = 0.062; f[7] = 0.074;
156         f[8] = 0.023; f[9] = 0.052; f[10] = 0.091; f[11] = 0.059;
157         f[12] = 0.024; f[13] = 0.04; f[14] = 0.051; f[15] = 0.069;
158         f[16] = 0.059; f[17] = 0.014; f[18] = 0.032; f[19] = 0.066;
159 }
160
161 void dyhfdata(dmatrix q, double *f)
162 {
163         /*
164          * Dayhoff model for amino acid evolution
165          * Dayhoff, M.O., Schwartz, R.M., Orcutt, B.C. (1978)
166          * "A model of evolutionary change in proteins."
167          * Dayhoff, M.O. (ed.) Atlas of Protein Sequence Structur., Vol5, Suppl. 3,
168          * National Biomedical Research Foundation, Washington DC, pp. 345-352.
169          */
170
171         q[0][1]=9.6472567159749e-01;    q[0][2]=3.5927991886410e+00;
172         q[0][3]=4.3200552414656e+00;    q[0][4]=1.3184584178499e+00;
173         q[0][5]=3.2267534963169e+00;    q[0][6]=7.0141987829615e+00;
174         q[0][7]=8.5773867857875e+00;    q[0][8]=8.1434196396611e-01;
175         q[0][9]=2.3518447453539e+00;    q[0][10]=1.4735711728911e+00;
176         q[0][11]=9.3940162271805e-01;   q[0][12]=2.5490196078431e+00;
177         q[0][13]=6.5922920892495e-01;   q[0][14]=8.9189834148670e+00;
178         q[0][15]=1.4540712836859e+01;   q[0][16]=1.3411904595370e+01;
179         q[0][17]=3.8517964118027e-02;   q[0][18]=8.7897227856660e-01;
180         q[0][19]=7.4036511156187e+00; 
181         
182         q[1][2]=1.1890243902439e+00;    q[1][3]=5.9525626545377e-02;
183         q[1][4]=8.4778922655537e-01;    q[1][5]=8.8348561504191e+00;
184         q[1][6]=5.5954088952654e-02;    q[1][7]=3.1434881434075e-01;
185         q[1][8]=8.4753987678285e+00;    q[1][9]=2.2684090115941e+00;
186         q[1][10]=5.5954088952654e-01;   q[1][11]=1.6681312769010e+01;
187         q[1][12]=3.1707317073171e+00;   q[1][13]=4.8959827833572e-01;
188         q[1][14]=3.6754156468900e+00;   q[1][15]=5.4755072760812e+00;
189         q[1][16]=9.6472567159749e-01;   q[1][17]=7.5538020086083e+00;
190         q[1][18]=2.7977044476327e-01;   q[1][19]=8.6083213773314e-01;
191
192         q[2][3]=3.2459324155194e+01;    q[2][4]=7.3852625416383e-02;
193         q[2][5]=3.7732198142415e+00;    q[2][6]=5.3911764705882e+00;
194         q[2][7]=5.0264375413087e+00;    q[2][8]=1.9061418685121e+01;
195         q[2][9]=2.7901430842607e+00;    q[2][10]=1.2482698961938e+00;
196         q[2][11]=1.1542279411765e+01;   q[2][12]=1.9117647058824e-01;
197         q[2][13]=5.0183823529412e-01;   q[2][14]=1.5181660899654e+00;
198         q[2][15]=1.7697478991597e+01;   q[2][16]=8.3557302231237e+00;
199         q[2][17]=8.6029411764706e-01;   q[2][18]=3.4411764705882e+00;
200         q[2][19]=5.7352941176471e-01; 
201         
202         q[3][4]=2.5534152404601e-02;    q[3][5]=4.8811013767209e+00;
203         q[3][6]=4.0561952440551e+01;    q[3][7]=4.4423506911730e+00;
204         q[3][8]=3.0865788117500e+00;    q[3][9]=8.5749078239692e-01;
205         q[3][10]=2.5926985518518e-02;   q[3][11]=2.5930851063830e+00;
206         q[3][12]=1.1667143483333e-01;   q[3][13]=1.2963492759259e-02;
207         q[3][14]=4.7853935065891e-01;   q[3][15]=3.4167709637046e+00;
208         q[3][16]=2.3984722282163e+00;   q[3][17]=3.2408731898147e-02;
209         q[3][18]=8.1351689612015e-02;   q[3][19]=6.3829787234043e-01;
210
211         q[4][5]=2.1864264103535e-02;    q[4][6]=1.4770525083277e-02;
212         q[4][7]=3.9055458751427e-01;    q[4][8]=1.0223340673168e+00;
213         q[4][9]=1.5970515970516e+00;    q[4][10]=3.9098448749850e-02;
214         q[4][11]=8.0776309049169e-03;   q[4][12]=1.4155086538140e-01;
215         q[4][13]=8.6898395721925e-02;   q[4][14]=6.8155604487784e-01;
216         q[4][15]=5.8097784568373e+00;   q[4][16]=5.9929928084086e-01;
217         q[4][17]=3.4759358288770e-01;   q[4][18]=3.4759358288770e+00;
218         q[4][19]=1.7647058823529e+00; 
219         
220         q[5][6]=2.5476780185759e+01;    q[5][7]=1.0174974779977e+00;
221         q[5][8]=2.1573939173192e+01;    q[5][9]=6.5266504894988e-01;
222         q[5][10]=2.6634492806410e+00;   q[5][11]=5.5466331269350e+00;
223         q[5][12]=4.0247678018576e+00;   q[5][13]=1.8038017885416e-02;
224         q[5][14]=5.5044618466582e+00;   q[5][15]=2.0267580716497e+00;
225         q[5][16]=1.9256432155439e+00;   q[5][17]=9.6202762055552e-02;
226         q[5][18]=1.0061919504644e-01;   q[5][19]=1.2538699690402e+00;
227
228         q[6][7]=2.8869795109055e+00;    q[6][8]=1.5519031141869e+00;
229         q[6][9]=2.1701112877583e+00;    q[6][10]=4.0484429065744e-01;
230         q[6][11]=2.9823529411765e+00;   q[6][12]=1.0705882352941e+00;
231         q[6][13]=1.9801735189768e-02;   q[6][14]=1.7993079584775e+00;
232         q[6][15]=2.8184873949580e+00;   q[6][16]=1.2261663286004e+00;
233         q[6][17]=7.3114099162219e-02;   q[6][18]=7.6470588235294e-01;
234         q[6][19]=1.3058823529412e+00; 
235         
236         q[7][8]=3.7906768788150e-01;    q[7][9]=2.3128004846840e-02;
237         q[7][10]=2.5776602775942e-01;   q[7][11]=9.6662260409782e-01;
238         q[7][12]=6.0145406477198e-01;   q[7][13]=5.4775280898876e-01;
239         q[7][14]=1.2382877804129e+00;   q[7][15]=8.2853366065527e+00;
240         q[7][16]=1.1110604644803e+00;   q[7][17]=1.2888301387971e-01;
241         q[7][18]=1.7114723586662e-02;   q[7][19]=1.9233311302049e+00;
242
243         q[8][9]=2.7354343963341e-01;    q[8][10]=1.5876246692449e+00;
244         q[8][11]=9.6993944636678e-01;   q[8][12]=1.2544085640577e-01;
245         q[8][13]=1.6868512110727e+00;   q[8][14]=3.3075513942601e+00;
246         q[8][15]=1.2530894710826e+00;   q[8][16]=8.1434196396611e-01;
247         q[8][17]=1.0121107266436e+00;   q[8][18]=4.4982698961938e+00;
248         q[8][19]=1.5570934256055e+00; 
249         
250         q[9][10]=9.2275320303002e+00;   q[9][11]=1.6663354531002e+00;
251         q[9][12]=1.1780604133545e+01;   q[9][13]=6.9753577106518e+00;
252         q[9][14]=4.2551201720752e-01;   q[9][15]=8.8575970928912e-01;
253         q[9][16]=6.8951811852420e+00;   q[9][17]=9.8802836705702e-02;
254         q[9][18]=1.3434022257552e+00;   q[9][19]=3.1526232114467e+01;
255
256         q[10][11]=6.5787197231834e-01;  q[10][12]=1.8622837370242e+01;
257         q[10][13]=5.6340830449827e+00;  q[10][14]=1.1377976796255e+00;
258         q[10][15]=6.1690558576372e-01;  q[10][16]=1.2098794893211e+00;
259         q[10][17]=1.7543252595156e+00;  q[10][18]=1.0346020761246e+00;
260         q[10][19]=6.2906574394464e+00; 
261         
262         q[11][12]=8.6029411764706e+00;  q[11][13]=6.6640454965565e-03;
263         q[11][14]=1.2089100346021e+00;  q[11][15]=3.4411764705882e+00;
264         q[11][16]=4.9442190669371e+00;  q[11][17]=3.4272233982290e-02;
265         q[11][18]=4.7794117647059e-01;  q[11][19]=3.7500000000000e-01;
266
267         q[12][13]=3.2500000000000e+00;  q[12][14]=5.9976931949250e-01;
268         q[12][15]=2.1848739495798e+00;  q[12][16]=3.6916835699797e+00;
269         q[12][17]=1.6247577591604e-01;  q[12][18]=1.1508700794053e-01;
270         q[12][19]=9.0588235294118e+00; 
271         
272         q[13][14]=3.9359861591695e-01;  q[13][15]=1.6386554621849e+00;
273         q[13][16]=4.9442190669371e-01;  q[13][17]=2.8676470588235e+00;
274         q[13][18]=2.4852941176471e+01;  q[13][19]=4.4117647058824e-01;
275
276         q[14][15]=8.6431043005437e+00;  q[14][16]=2.8308077795013e+00;
277         q[14][17]=3.5840244687362e-02;  q[14][18]=4.3804743506776e-02;
278         q[14][19]=1.7301038062284e+00; 
279         
280         q[15][16]=1.9663865546218e+01;  q[15][17]=2.7857142857143e+00;
281         q[15][18]=1.2016806722689e+00;  q[15][19]=1.0840336134454e+00;
282
283         q[16][17]=4.2019597219666e-02;  q[16][18]=1.5162271805274e+00;
284         q[16][19]=5.6592292089249e+00; 
285         
286         q[17][18]=2.2941176470588e+00;  q[17][19]=1.2654363316538e-01;
287
288         q[18][19]=1.0000000000000e+00; 
289
290
291         f[0] = 0.087; f[1] = 0.041; f[2] = 0.040; f[3] = 0.047;
292         f[4] = 0.033; f[5] = 0.038; f[6] = 0.05; f[7] = 0.089;
293         f[8] = 0.034; f[9] = 0.037; f[10] = 0.085; f[11] = 0.08;
294         f[12] = 0.015; f[13] = 0.04; f[14] = 0.051; f[15] = 0.07;
295         f[16] = 0.058; f[17] = 0.01; f[18] = 0.03; f[19] = 0.065;
296 }
297
298 void mtrevdata(dmatrix q, double *f)
299 {       
300         /*
301          * mtREV24 model of amino acid evolution
302          * (complete sequence data of mtDNA from 24 vertebrate species)
303          * Adachi, J. and Hasegawa, M. (1996)
304          */
305
306         q[0][1]=1.2199217606346e+01;    q[0][2]=1.4182139942122e+01;
307         q[0][3]=9.2985091873208e+00;    q[0][4]=3.1542792981957e+01;
308         q[0][5]=1.0025852846688e+00;    q[0][6]=5.1418866803338e+00;
309         q[0][7]=6.3531246495131e+01;    q[0][8]=7.3137132861715e+00;
310         q[0][9]=5.0782382656186e+01;    q[0][10]=1.3399741808481e+01;
311         q[0][11]=4.4021672780560e+00;   q[0][12]=7.4673480520104e+01;
312         q[0][13]=3.3513021631978e+00;   q[0][14]=2.8582502221773e+01;
313         q[0][15]=2.0413623195312e+02;   q[0][16]=2.5301305153906e+02;
314         q[0][17]=1.0000000000000e+00;   q[0][18]=3.4084158197615e+00;
315         q[0][19]=1.0266468401249e+02; 
316         
317         q[1][2]=6.9661274444534e+00;    q[1][3]=1.0000000000000e+00;
318         q[1][4]=5.4384584796568e+01;    q[1][5]=1.1631134513343e+02;
319         q[1][6]=1.0000000000000e+00;    q[1][7]=1.2122831341194e+01;
320         q[1][8]=8.6961067087353e+01;    q[1][9]=1.0000000000000e+00;
321         q[1][10]=8.1976829394538e+00;   q[1][11]=7.4423215395318e+01;
322         q[1][12]=1.0000000000000e+00;   q[1][13]=2.4659158338099e+00;
323         q[1][14]=1.2439947713615e+01;   q[1][15]=3.1791814866372e+00;
324         q[1][16]=1.0935327216119e+00;   q[1][17]=1.1550775790126e+01;
325         q[1][18]=1.0000000000000e+00;   q[1][19]=4.0211417480338e+00;
326
327         q[2][3]=4.1809325468160e+02;    q[2][4]=3.1020979842967e+01;
328         q[2][5]=9.1349622725361e+01;    q[2][6]=3.3185663516310e+01;
329         q[2][7]=2.8052324651124e+01;    q[2][8]=2.6112087577885e+02;
330         q[2][9]=1.4261453863336e+01;    q[2][10]=7.9775653461977e+00;
331         q[2][11]=3.2036829276162e+02;   q[2][12]=3.4424354918739e+01;
332         q[2][13]=7.9996445145608e+00;   q[2][14]=3.8586541461044e+01;
333         q[2][15]=2.6020426225852e+02;   q[2][16]=1.2550758780474e+02;
334         q[2][17]=5.6207759736659e+00;   q[2][18]=1.0071406219571e+02;
335         q[2][19]=1.0000000000000e+00; 
336         
337         q[3][4]=1.0000000000000e+00;    q[3][5]=2.9097352675564e+01;
338         q[3][6]=3.0713149855302e+02;    q[3][7]=2.9877072751897e+01;
339         q[3][8]=5.9995408885817e+01;    q[3][9]=2.2827096245105e+00;
340         q[3][10]=1.0000000000000e+00;   q[3][11]=1.2183938185384e+00;
341         q[3][12]=1.0000000000000e+00;   q[3][13]=2.6221929413096e+00;
342         q[3][14]=7.0708004204733e+00;   q[3][15]=3.6327934317139e+01;
343         q[3][16]=1.4743408713748e+01;   q[3][17]=1.0453246057102e+01;
344         q[3][18]=1.1165627147496e+01;   q[3][19]=1.0000000000000e+00;
345
346         q[4][5]=3.9599394038972e+01;    q[4][6]=1.0000000000000e+00;
347         q[4][7]=1.6163581056674e+01;    q[4][8]=7.4467985406234e+01;
348         q[4][9]=3.3018175376623e+01;    q[4][10]=1.3500725995091e+01;
349         q[4][11]=1.0000000000000e+00;   q[4][12]=3.2504095376923e+00;
350         q[4][13]=3.7264767083096e+01;   q[4][14]=1.6454136037822e+01;
351         q[4][15]=1.4581783243113e+02;   q[4][16]=9.4720031458442e+01;
352         q[4][17]=1.7684087896962e+01;   q[4][18]=1.3409157685926e+02;
353         q[4][19]=1.0000000000000e+00; 
354         
355         q[5][6]=1.6503249008836e+02;    q[5][7]=3.5530760735494e+00;
356         q[5][8]=3.0652523140859e+02;    q[5][9]=4.3905393139325e+00;
357         q[5][10]=2.0895470525345e+01;   q[5][11]=2.4504076430724e+02;
358         q[5][12]=2.4931300477797e+01;   q[5][13]=1.0059428264289e+01;
359         q[5][14]=7.2256314165467e+01;   q[5][15]=2.8480937892158e+01;
360         q[5][16]=4.9962974409828e+01;   q[5][17]=1.0000000000000e+00;
361         q[5][18]=2.0430790980529e+01;   q[5][19]=9.9986289000676e+00;
362
363         q[6][7]=1.4884496769963e+01;    q[6][8]=2.5853576435567e+01;
364         q[6][9]=1.7418201388328e+00;    q[6][10]=1.0000000000000e+00;
365         q[6][11]=1.6519126809071e+02;   q[6][12]=1.0000000000000e+00;
366         q[6][13]=1.4067850525292e+00;   q[6][14]=6.7547121641947e+00;
367         q[6][15]=2.8794794140840e+01;   q[6][16]=7.8001372062558e+00;
368         q[6][17]=1.0000000000000e+00;   q[6][18]=6.9067239183061e+00;
369         q[6][19]=1.1127702362585e+01; 
370         
371         q[7][8]=1.0000000000000e+00;    q[7][9]=3.1466649021550e+00;
372         q[7][10]=1.2699794194865e+00;   q[7][11]=1.1962111069278e+01;
373         q[7][12]=1.0000000000000e+00;   q[7][13]=1.0000000000000e+00;
374         q[7][14]=1.0000000000000e+00;   q[7][15]=6.6277950574411e+01;
375         q[7][16]=5.8800079133028e+00;   q[7][17]=5.7494182626674e+00;
376         q[7][18]=1.6887657206208e+00;   q[7][19]=1.3320553471351e+00;
377
378         q[8][9]=6.4536986087271e+00;    q[8][10]=6.0472584534958e+00;
379         q[8][11]=6.7197196398961e+01;   q[8][12]=6.2977633277779e+00;
380         q[8][13]=2.5347805183364e+01;   q[8][14]=3.2089868698728e+01;
381         q[8][15]=4.0766987134407e+01;   q[8][16]=2.3570850628539e+01;
382         q[8][17]=3.7286635325194e+00;   q[8][18]=3.5270764890474e+02;
383         q[8][19]=1.0000000000000e+00; 
384         
385         q[9][10]=1.7320653206333e+02;   q[9][11]=1.0298655619743e+01;
386         q[9][12]=2.7262244199514e+02;   q[9][13]=4.4561065036310e+01;
387         q[9][14]=1.0856482766156e+01;   q[9][15]=2.5107659603898e+01;
388         q[9][16]=1.9391167162525e+02;   q[9][17]=1.0000000000000e+00;
389         q[9][18]=1.3161329199391e+01;   q[9][19]=6.4365086389428e+02;
390
391         q[10][11]=7.8314019154706e+00;  q[10][12]=2.8290920517725e+02;
392         q[10][13]=1.1371735519833e+02;  q[10][14]=2.1105885757279e+01;
393         q[10][15]=3.8741359395934e+01;  q[10][16]=6.6524559321657e+01;
394         q[10][17]=1.7071378554833e+01;  q[10][18]=2.3234516108847e+01;
395         q[10][19]=4.8247261078055e+01; 
396         
397         q[11][12]=4.8092094826036e+01;  q[11][13]=3.3887559483420e+00;
398         q[11][14]=2.6368577564199e+01;  q[11][15]=5.5679895711418e+01;
399         q[11][16]=7.1750284708933e+01;  q[11][17]=1.2631893872825e+01;
400         q[11][18]=2.6932728996777e+01;  q[11][19]=1.0000000000000e+00;
401
402         q[12][13]=4.7798798034572e+01;  q[12][14]=9.9165053447429e+00;
403         q[12][15]=5.8505442466161e+01;  q[12][16]=2.7798190504760e+02;
404         q[12][17]=1.1427000119701e+01;  q[12][18]=2.1029990530586e+01;
405         q[12][19]=2.0397078683768e+02; 
406         
407         q[13][14]=9.1089574817139e+00;  q[13][15]=3.3835737720574e+01;
408         q[13][16]=1.7815549567056e+01;  q[13][17]=4.1272404968214e+00;
409         q[13][18]=2.4504156395152e+02;  q[13][19]=3.3435675442163e+00;
410
411         q[14][15]=8.9421193040709e+01;  q[14][16]=6.7485067008375e+01;
412         q[14][17]=2.2161693733113e+00;  q[14][18]=8.5338209390745e+00;
413         q[14][19]=4.3342126659660e+00; 
414         
415         q[15][16]=3.1432036618746e+02;  q[15][17]=2.0305343047059e+01;
416         q[15][18]=3.4167877957799e+01;  q[15][19]=1.0000000000000e+00;
417
418         q[16][17]=5.2559565123081e+00;  q[16][18]=2.0382362288681e+01;
419         q[16][19]=1.0765527137500e+02; 
420         
421         q[17][18]=1.3814733274637e+01;  q[17][19]=2.8259139240676e+00;
422
423         q[18][19]=1.0000000000000e+00; 
424
425
426         /* amino acid frequencies */
427         f[0]=0.072; f[1]=0.019; f[2]=0.039; f[3]=0.019; f[4]=0.006;
428         f[5]=0.025; f[6]=0.024; f[7]=0.056; f[8]=0.028; f[9]=0.088;
429         f[10]=0.168; f[11]=0.023; f[12]=0.054; f[13]=0.061; f[14]=0.054;
430         f[15]=0.072; f[16]=0.086; f[17]=0.029; f[18]=0.033; f[19]=0.043;
431 }
432
433 void blosum62data(dmatrix q, double *f)
434 {
435         /*
436          * BLOSUM62 model of amino acid evolution
437          * 
438          * S. Henikoff and J. G. Henikoff.  1992.  PNAS USA 89:10915-10919.
439          * 
440          */
441
442         q[0][1]=7.3579038969751e-01;    q[0][2]=4.8539105546575e-01;
443         q[0][3]=5.4316182089867e-01;    q[0][4]=1.4599953104700e+00;
444         q[0][5]=1.1997057046020e+00;    q[0][6]=1.1709490427999e+00;
445         q[0][7]=1.9558835749595e+00;    q[0][8]=7.1624144499779e-01;
446         q[0][9]=6.0589900368677e-01;    q[0][10]=8.0001653051838e-01;
447         q[0][11]=1.2952012667833e+00;   q[0][12]=1.2537582666635e+00;
448         q[0][13]=4.9296467974759e-01;   q[0][14]=1.1732759009239e+00;
449         q[0][15]=4.3250926870566e+00;   q[0][16]=1.7291780194850e+00;
450         q[0][17]=4.6583936772479e-01;   q[0][18]=7.1820669758623e-01;
451         q[0][19]=2.1877745220045e+00; 
452         
453         q[1][2]=1.2974467051337e+00;    q[1][3]=5.0096440855513e-01;
454         q[1][4]=2.2782657420895e-01;    q[1][5]=3.0208336100636e+00;
455         q[1][6]=1.3605741904203e+00;    q[1][7]=4.1876330851753e-01;
456         q[1][8]=1.4561411663360e+00;    q[1][9]=2.3203644514174e-01;
457         q[1][10]=6.2271166969249e-01;   q[1][11]=5.4111151414889e+00;
458         q[1][12]=9.8369298745695e-01;   q[1][13]=3.7164469320875e-01;
459         q[1][14]=4.4813366171831e-01;   q[1][15]=1.1227831042096e+00;
460         q[1][16]=9.1466595456337e-01;   q[1][17]=4.2638231012175e-01;
461         q[1][18]=7.2051744121611e-01;   q[1][19]=4.3838834377202e-01;
462
463         q[2][3]=3.1801000482161e+00;    q[2][4]=3.9735894989702e-01;
464         q[2][5]=1.8392161469920e+00;    q[2][6]=1.2404885086396e+00;
465         q[2][7]=1.3558723444845e+00;    q[2][8]=2.4145014342081e+00;
466         q[2][9]=2.8301732627800e-01;    q[2][10]=2.1188815961519e-01;
467         q[2][11]=1.5931370434574e+00;   q[2][12]=6.4844127878707e-01;
468         q[2][13]=3.5486124922252e-01;   q[2][14]=4.9488704370192e-01;
469         q[2][15]=2.9041016564560e+00;   q[2][16]=1.8981736345332e+00;
470         q[2][17]=1.9148204624678e-01;   q[2][18]=5.3822251903674e-01;
471         q[2][19]=3.1285879799342e-01; 
472         
473         q[3][4]=2.4083661480204e-01;    q[3][5]=1.1909457033960e+00;
474         q[3][6]=3.7616252083685e+00;    q[3][7]=7.9847324896839e-01;
475         q[3][8]=7.7814266402188e-01;    q[3][9]=4.1855573246161e-01;
476         q[3][10]=2.1813157759360e-01;   q[3][11]=1.0324479249521e+00;
477         q[3][12]=2.2262189795786e-01;   q[3][13]=2.8173069420651e-01;
478         q[3][14]=7.3062827299842e-01;   q[3][15]=1.5827541420653e+00;
479         q[3][16]=9.3418750943056e-01;   q[3][17]=1.4534504627853e-01;
480         q[3][18]=2.6142220896504e-01;   q[3][19]=2.5812928941763e-01;
481
482         q[4][5]=3.2980150463028e-01;    q[4][6]=1.4074889181440e-01;
483         q[4][7]=4.1820319228376e-01;    q[4][8]=3.5405810983129e-01;
484         q[4][9]=7.7489402279418e-01;    q[4][10]=8.3184264014158e-01;
485         q[4][11]=2.8507880090648e-01;   q[4][12]=7.6768882347954e-01;
486         q[4][13]=4.4133747118660e-01;   q[4][14]=3.5600849876863e-01;
487         q[4][15]=1.1971884150942e+00;   q[4][16]=1.1198313585160e+00;
488         q[4][17]=5.2766441887169e-01;   q[4][18]=4.7023773369610e-01;
489         q[4][19]=1.1163524786062e+00; 
490         
491         q[5][6]=5.5289191779282e+00;    q[5][7]=6.0984630538281e-01;
492         q[5][8]=2.4353411311401e+00;    q[5][9]=2.3620245120365e-01;
493         q[5][10]=5.8073709318144e-01;   q[5][11]=3.9452776745146e+00;
494         q[5][12]=2.4948960771127e+00;   q[5][13]=1.4435695975031e-01;
495         q[5][14]=8.5857057567418e-01;   q[5][15]=1.9348709245965e+00;
496         q[5][16]=1.2774802945956e+00;   q[5][17]=7.5865380864172e-01;
497         q[5][18]=9.5898974285014e-01;   q[5][19]=5.3078579012486e-01;
498
499         q[6][7]=4.2357999217628e-01;    q[6][8]=1.6268910569817e+00;
500         q[6][9]=1.8684804693170e-01;    q[6][10]=3.7262517508685e-01;
501         q[6][11]=2.8024271516787e+00;   q[6][12]=5.5541539747043e-01;
502         q[6][13]=2.9140908416530e-01;   q[6][14]=9.2656393484598e-01;
503         q[6][15]=1.7698932389373e+00;   q[6][16]=1.0710972360073e+00;
504         q[6][17]=4.0763564893830e-01;   q[6][18]=5.9671930034577e-01;
505         q[6][19]=5.2425384633796e-01; 
506         
507         q[7][8]=5.3985912495418e-01;    q[7][9]=1.8929629237636e-01;
508         q[7][10]=2.1772115923623e-01;   q[7][11]=7.5204244030271e-01;
509         q[7][12]=4.5943617357855e-01;   q[7][13]=3.6816646445253e-01;
510         q[7][14]=5.0408659952683e-01;   q[7][15]=1.5093262532236e+00;
511         q[7][16]=6.4143601140497e-01;   q[7][17]=5.0835892463812e-01;
512         q[7][18]=3.0805573703500e-01;   q[7][19]=2.5334079019018e-01;
513
514         q[8][9]=2.5271844788492e-01;    q[8][10]=3.4807220979697e-01;
515         q[8][11]=1.0225070358890e+00;   q[8][12]=9.8431152535870e-01;
516         q[8][13]=7.1453370392764e-01;   q[8][14]=5.2700733915060e-01;
517         q[8][15]=1.1170297629105e+00;   q[8][16]=5.8540709022472e-01;
518         q[8][17]=3.0124860078016e-01;   q[8][18]=4.2189539693890e+00;
519         q[8][19]=2.0155597175031e-01; 
520         
521         q[9][10]=3.8909637733035e+00;   q[9][11]=4.0619358664202e-01;
522         q[9][12]=3.3647977631042e+00;   q[9][13]=1.5173593259539e+00;
523         q[9][14]=3.8835540920564e-01;   q[9][15]=3.5754441245967e-01;
524         q[9][16]=1.1790911972601e+00;   q[9][17]=3.4198578754023e-01;
525         q[9][18]=6.7461709322842e-01;   q[9][19]=8.3118394054582e+00;
526
527         q[10][11]=4.4557027426059e-01;  q[10][12]=6.0305593795716e+00;
528         q[10][13]=2.0648397032375e+00;  q[10][14]=3.7455568747097e-01;
529         q[10][15]=3.5296918452729e-01;  q[10][16]=9.1525985769421e-01;
530         q[10][17]=6.9147463459998e-01;  q[10][18]=8.1124585632307e-01;
531         q[10][19]=2.2314056889131e+00; 
532         
533         q[11][12]=1.0730611843319e+00;  q[11][13]=2.6692475051102e-01;
534         q[11][14]=1.0473834507215e+00;  q[11][15]=1.7521659178195e+00;
535         q[11][16]=1.3038752007987e+00;  q[11][17]=3.3224304063396e-01;
536         q[11][18]=7.1799348690032e-01;  q[11][19]=4.9813847530407e-01;
537
538         q[12][13]=1.7738551688305e+00;  q[12][14]=4.5412362510273e-01;
539         q[12][15]=9.1872341574605e-01;  q[12][16]=1.4885480537218e+00;
540         q[12][17]=8.8810109815193e-01;  q[12][18]=9.5168216224591e-01;
541         q[12][19]=2.5758507553153e+00; 
542         
543         q[13][14]=2.3359790962888e-01;  q[13][15]=5.4002764482413e-01;
544         q[13][16]=4.8820611879305e-01;  q[13][17]=2.0743248934965e+00;
545         q[13][18]=6.7472604308008e+00;  q[13][19]=8.3811961017754e-01;
546
547         q[14][15]=1.1691295777157e+00;  q[14][16]=1.0054516831488e+00;
548         q[14][17]=2.5221483002727e-01;  q[14][18]=3.6940531935451e-01;
549         q[14][19]=4.9690841067567e-01; 
550         
551         q[15][16]=5.1515562922704e+00;  q[15][17]=3.8792562209837e-01;
552         q[15][18]=7.9675152076106e-01;  q[15][19]=5.6192545744165e-01;
553
554         q[16][17]=5.1312812689059e-01;  q[16][18]=8.0101024319939e-01;
555         q[16][19]=2.2530740511763e+00; 
556         
557         q[17][18]=4.0544190065580e+00;  q[17][19]=2.6650873142646e-01;
558
559         q[18][19]=1.0000000000000e+00; 
560
561
562         f[0]=0.074; f[1]=0.052; f[2]=0.045; f[3]=0.054;
563         f[4]=0.025; f[5]=0.034; f[6]=0.054; f[7]=0.074;
564         f[8]=0.026; f[9]=0.068; f[10]=0.099; f[11]=0.058;
565         f[12]=0.025; f[13]=0.047; f[14]=0.039; f[15]=0.057;
566         f[16]=0.051; f[17]=0.013; f[18]=0.032; f[19]=0.073;
567 }
568
569
570
571 void vtmvdata(dmatrix q, double *f)
572 {
573    /* 
574    * variable time (VT) model for amino acid evolution 
575    * Mueller, T. and Vingron, M. (1999)
576    * "Modeling Amino Acid Replacement" 
577    * Journal of Comp. Biology
578    */
579
580 /* amino acid frequencies */
581
582 f[0]=0.078837 ;
583 f[1]=0.051238 ;
584 f[2]=0.042313 ;
585 f[3]=0.053066 ;
586 f[4]=0.015175 ;
587 f[5]=0.036713 ;
588 f[6]=0.061924 ;
589 f[7]=0.070852 ;
590 f[8]=0.023082 ;
591 f[9]=0.062056 ;
592 f[10]=0.096371 ;
593 f[11]=0.057324 ;
594 f[12]=0.023771 ;
595 f[13]=0.043296 ;
596 f[14]=0.043911 ;
597 f[15]=0.063403 ;
598 f[16]=0.055897 ;
599 f[17]=0.013272 ;
600 f[18]=0.034399 ;
601 f[19]=0.073101 ;
602
603
604 q[0][1] = 0.233108 ;
605 q[0][2] = 0.199097 ;
606 q[0][3] = 0.265145 ;
607 q[0][4] = 0.227333 ;
608 q[0][5] = 0.310084 ;
609 q[0][6] = 0.567957 ;
610 q[0][7] = 0.876213 ;
611 q[0][8] = 0.078692 ;
612 q[0][9] = 0.222972 ;
613 q[0][10] = 0.424630 ;
614 q[0][11] = 0.393245 ;
615 q[0][12] = 0.211550 ;
616 q[0][13] = 0.116646 ;
617 q[0][14] = 0.399143 ;
618 q[0][15] = 1.817198 ;
619 q[0][16] = 0.877877 ;
620 q[0][17] = 0.030309 ;
621 q[0][18] = 0.087061 ;
622 q[0][19] = 1.230985 ;
623
624 q[1][2] = 0.210797 ;
625 q[1][3] = 0.105191 ;
626 q[1][4] = 0.031726 ;
627 q[1][5] = 0.493763 ;
628 q[1][6] = 0.255240 ;
629 q[1][7] = 0.156945 ;
630 q[1][8] = 0.213164 ;
631 q[1][9] = 0.081510 ;
632 q[1][10] = 0.192364 ;
633 q[1][11] = 1.755838 ;
634 q[1][12] = 0.087930 ;
635 q[1][13] = 0.042569 ;
636 q[1][14] = 0.128480 ;
637 q[1][15] = 0.292327 ;
638 q[1][16] = 0.204109 ;
639 q[1][17] = 0.046417 ;
640 q[1][18] = 0.097010 ;
641 q[1][19] = 0.113146 ;
642
643 q[2][3] = 0.883422 ;
644 q[2][4] = 0.027495 ;
645 q[2][5] = 0.275700 ;
646 q[2][6] = 0.270417 ;
647 q[2][7] = 0.362028 ;
648 q[2][8] = 0.290006 ;
649 q[2][9] = 0.087225 ;
650 q[2][10] = 0.069245 ;
651 q[2][11] = 0.503060 ;
652 q[2][12] = 0.057420 ;
653 q[2][13] = 0.039769 ;
654 q[2][14] = 0.083956 ;
655 q[2][15] = 0.847049 ;
656 q[2][16] = 0.471268 ;
657 q[2][17] = 0.010459 ;
658 q[2][18] = 0.093268 ;
659 q[2][19] = 0.049824 ;
660
661 q[3][4] = 0.010313 ;
662 q[3][5] = 0.205842 ;
663 q[3][6] = 1.599461 ;
664 q[3][7] = 0.311718 ;
665 q[3][8] = 0.134252 ;
666 q[3][9] = 0.011720 ;
667 q[3][10] = 0.060863 ;
668 q[3][11] = 0.261101 ;
669 q[3][12] = 0.012182 ;
670 q[3][13] = 0.016577 ;
671 q[3][14] = 0.160063 ;
672 q[3][15] = 0.461519 ;
673 q[3][16] = 0.178197 ;
674 q[3][17] = 0.011393 ;
675 q[3][18] = 0.051664 ;
676 q[3][19] = 0.048769 ;
677
678 q[4][5] = 0.004315 ;
679 q[4][6] = 0.005321 ;
680 q[4][7] = 0.050876 ;
681 q[4][8] = 0.016695 ;
682 q[4][9] = 0.046398 ;
683 q[4][10] = 0.091709 ;
684 q[4][11] = 0.004067 ;
685 q[4][12] = 0.023690 ;
686 q[4][13] = 0.051127 ;
687 q[4][14] = 0.011137 ;
688 q[4][15] = 0.175270 ;
689 q[4][16] = 0.079511 ;
690 q[4][17] = 0.007732 ;
691 q[4][18] = 0.042823 ;
692 q[4][19] = 0.163831 ;
693
694 q[5][6] = 0.960976 ;
695 q[5][7] = 0.128660 ;
696 q[5][8] = 0.315521 ;
697 q[5][9] = 0.054602 ;
698 q[5][10] = 0.243530 ;
699 q[5][11] = 0.738208 ;
700 q[5][12] = 0.120801 ;
701 q[5][13] = 0.026235 ;
702 q[5][14] = 0.156570 ;
703 q[5][15] = 0.358017 ;
704 q[5][16] = 0.248992 ;
705 q[5][17] = 0.021248 ;
706 q[5][18] = 0.062544 ;
707 q[5][19] = 0.112027 ;
708
709 q[6][7] = 0.250447 ;
710 q[6][8] = 0.104458 ;
711 q[6][9] = 0.046589 ;
712 q[6][10] = 0.151924 ;
713 q[6][11] = 0.888630 ;
714 q[6][12] = 0.058643 ;
715 q[6][13] = 0.028168 ;
716 q[6][14] = 0.205134 ;
717 q[6][15] = 0.406035 ;
718 q[6][16] = 0.321028 ;
719 q[6][17] = 0.018844 ;
720 q[6][18] = 0.055200 ;
721 q[6][19] = 0.205868 ;
722
723 q[7][8] = 0.058131 ;
724 q[7][9] = 0.051089 ;
725 q[7][10] = 0.087056 ;
726 q[7][11] = 0.193243 ;
727 q[7][12] = 0.046560 ;
728 q[7][13] = 0.050143 ;
729 q[7][14] = 0.124492 ;
730 q[7][15] = 0.612843 ;
731 q[7][16] = 0.136266 ;
732 q[7][17] = 0.023990 ;
733 q[7][18] = 0.037568 ;
734 q[7][19] = 0.082579 ;
735
736 q[8][9] = 0.020039 ;
737 q[8][10] = 0.103552 ;
738 q[8][11] = 0.153323 ;
739 q[8][12] = 0.021157 ;
740 q[8][13] = 0.079807 ;
741 q[8][14] = 0.078892 ;
742 q[8][15] = 0.167406 ;
743 q[8][16] = 0.101117 ;
744 q[8][17] = 0.020009 ;
745 q[8][18] = 0.286027 ;
746 q[8][19] = 0.068575 ;
747
748 q[9][10] = 2.089890 ;
749 q[9][11] = 0.093181 ;
750 q[9][12] = 0.493845 ;
751 q[9][13] = 0.321020 ;
752 q[9][14] = 0.054797 ;
753 q[9][15] = 0.081567 ;
754 q[9][16] = 0.376588 ;
755 q[9][17] = 0.034954 ;
756 q[9][18] = 0.086237 ;
757 q[9][19] = 3.654430 ;
758
759 q[10][11] = 0.201204 ;
760 q[10][12] = 1.105667 ;
761 q[10][13] = 0.946499 ;
762 q[10][14] = 0.169784 ;
763 q[10][15] = 0.214977 ;
764 q[10][16] = 0.243227 ;
765 q[10][17] = 0.083439 ;
766 q[10][18] = 0.189842 ;
767 q[10][19] = 1.337571 ;
768
769 q[11][12] = 0.096474 ;
770 q[11][13] = 0.038261 ;
771 q[11][14] = 0.212302 ;
772 q[11][15] = 0.400072 ;
773 q[11][16] = 0.446646 ;
774 q[11][17] = 0.023321 ;
775 q[11][18] = 0.068689 ;
776 q[11][19] = 0.144587 ;
777
778 q[12][13] = 0.173052 ;
779 q[12][14] = 0.010363 ;
780 q[12][15] = 0.090515 ;
781 q[12][16] = 0.184609 ;
782 q[12][17] = 0.022019 ;
783 q[12][18] = 0.073223 ;
784 q[12][19] = 0.307309 ;
785
786 q[13][14] = 0.042564 ;
787 q[13][15] = 0.138119 ;
788 q[13][16] = 0.085870 ;
789 q[13][17] = 0.128050 ;
790 q[13][18] = 0.898663 ;
791 q[13][19] = 0.247329 ;
792
793 q[14][15] = 0.430431 ;
794 q[14][16] = 0.207143 ;
795 q[14][17] = 0.014584 ;
796 q[14][18] = 0.032043 ;
797 q[14][19] = 0.129315 ;
798
799 q[15][16] = 1.767766 ;
800 q[15][17] = 0.035933 ;
801 q[15][18] = 0.121979 ;
802 q[15][19] = 0.127700 ;
803
804 q[16][17] = 0.020437 ;
805 q[16][18] = 0.094617 ;
806 q[16][19] = 0.740372 ;
807
808 q[17][18] = 0.124746 ;
809 q[17][19] = 0.022134 ;
810
811 q[18][19] = 0.125733 ;
812
813 }
814
815
816 /*
817  * WAG matrix: Simon Whelan and Nick Goldman
818  *
819  */
820
821 void wagdata(dmatrix q, double *f)
822 {
823                 /*
824                  * WAG model of amino acid evolution
825                  * 
826                  * S. Whelan and N. Goldman.  2000.  In prep.
827                  * 
828                  * presented at the MASAMB-X workshop in Cambridge
829                  *
830                  * Whelan, S., and N. Goldman.  2000.  
831                  * The WAG amino acid rate matrix.
832                  * Manuscript in prep.
833                  */
834
835                 /* Q matrix */
836                 q[0][1] = 0.610810; q[0][2] = 0.569079; 
837                 q[0][3] = 0.821500; q[0][4] = 1.141050; 
838                 q[0][5] = 1.011980; q[0][6] = 1.756410; 
839                 q[0][7] = 1.572160; q[0][8] = 0.354813; 
840                 q[0][9] = 0.219023; q[0][10] = 0.443935; 
841                 q[0][11] = 1.005440; q[0][12] = 0.989475; 
842                 q[0][13] = 0.233492; q[0][14] = 1.594890; 
843                 q[0][15] = 3.733380; q[0][16] = 2.349220; 
844                 q[0][17] = 0.125227; q[0][18] = 0.268987; 
845                 q[0][19] = 2.221870; 
846
847                 q[1][2] = 0.711690; q[1][3] = 0.165074; 
848                 q[1][4] = 0.585809; q[1][5] = 3.360330; 
849                 q[1][6] = 0.488649; q[1][7] = 0.650469; 
850                 q[1][8] = 2.362040; q[1][9] = 0.206722; 
851                 q[1][10] = 0.551450; q[1][11] = 5.925170; 
852                 q[1][12] = 0.758446; q[1][13] = 0.116821; 
853                 q[1][14] = 0.753467; q[1][15] = 1.357640; 
854                 q[1][16] = 0.613776; q[1][17] = 1.294610; 
855                 q[1][18] = 0.423612; q[1][19] = 0.280336; 
856
857                 q[2][3] = 6.013660; q[2][4] = 0.296524; 
858                 q[2][5] = 1.716740; q[2][6] = 1.056790; 
859                 q[2][7] = 1.253910; q[2][8] = 4.378930; 
860                 q[2][9] = 0.615636; q[2][10] = 0.147156; 
861                 q[2][11] = 3.334390; q[2][12] = 0.224747; 
862                 q[2][13] = 0.110793; q[2][14] = 0.217538; 
863                 q[2][15] = 4.394450; q[2][16] = 2.257930; 
864                 q[2][17] = 0.078463; q[2][18] = 1.208560; 
865                 q[2][19] = 0.221176; 
866
867                 q[3][4] = 0.033379; q[3][5] = 0.691268; 
868                 q[3][6] = 6.833400; q[3][7] = 0.961142; 
869                 q[3][8] = 1.032910; q[3][9] = 0.043523; 
870                 q[3][10] = 0.093930; q[3][11] = 0.533362; 
871                 q[3][12] = 0.116813; q[3][13] = 0.052004; 
872                 q[3][14] = 0.472601; q[3][15] = 1.192810; 
873                 q[3][16] = 0.417372; q[3][17] = 0.146348; 
874                 q[3][18] = 0.363243; q[3][19] = 0.169417; 
875
876                 q[4][5] = 0.109261; q[4][6] = 0.023920; 
877                 q[4][7] = 0.341086; q[4][8] = 0.275403; 
878                 q[4][9] = 0.189890; q[4][10] = 0.428414; 
879                 q[4][11] = 0.083649; q[4][12] = 0.437393; 
880                 q[4][13] = 0.441300; q[4][14] = 0.122303; 
881                 q[4][15] = 1.560590; q[4][16] = 0.570186; 
882                 q[4][17] = 0.795736; q[4][18] = 0.604634; 
883                 q[4][19] = 1.114570; 
884
885                 q[5][6] = 6.048790; q[5][7] = 0.366510; 
886                 q[5][8] = 4.749460; q[5][9] = 0.131046; 
887                 q[5][10] = 0.964886; q[5][11] = 4.308310; 
888                 q[5][12] = 1.705070; q[5][13] = 0.110744; 
889                 q[5][14] = 1.036370; q[5][15] = 1.141210; 
890                 q[5][16] = 0.954144; q[5][17] = 0.243615; 
891                 q[5][18] = 0.252457; q[5][19] = 0.333890; 
892
893                 q[6][7] = 0.630832; q[6][8] = 0.635025; 
894                 q[6][9] = 0.141320; q[6][10] = 0.172579; 
895                 q[6][11] = 2.867580; q[6][12] = 0.353912; 
896                 q[6][13] = 0.092310; q[6][14] = 0.755791; 
897                 q[6][15] = 0.782467; q[6][16] = 0.914814; 
898                 q[6][17] = 0.172682; q[6][18] = 0.217549; 
899                 q[6][19] = 0.655045; 
900
901                 q[7][8] = 0.276379; q[7][9] = 0.034151; 
902                 q[7][10] = 0.068651; q[7][11] = 0.415992; 
903                 q[7][12] = 0.194220; q[7][13] = 0.055288; 
904                 q[7][14] = 0.273149; q[7][15] = 1.486700; 
905                 q[7][16] = 0.251477; q[7][17] = 0.374321; 
906                 q[7][18] = 0.114187; q[7][19] = 0.209108; 
907                 
908                 q[8][9] = 0.152215; q[8][10] = 0.555096; 
909                 q[8][11] = 0.992083; q[8][12] = 0.450867; 
910                 q[8][13] = 0.756080; q[8][14] = 0.771387; 
911                 q[8][15] = 0.822459; q[8][16] = 0.525511; 
912                 q[8][17] = 0.289998; q[8][18] = 4.290350; 
913                 q[8][19] = 0.131869; 
914
915                 q[9][10] = 3.517820; q[9][11] = 0.360574; 
916                 q[9][12] = 4.714220; q[9][13] = 1.177640; 
917                 q[9][14] = 0.111502; q[9][15] = 0.353443; 
918                 q[9][16] = 1.615050; q[9][17] = 0.234326; 
919                 q[9][18] = 0.468951; q[9][19] = 8.659740; 
920                 
921                 q[10][11] = 0.287583; q[10][12] = 5.375250; 
922                 q[10][13] = 2.348200; q[10][14] = 0.462018; 
923                 q[10][15] = 0.382421; q[10][16] = 0.364222; 
924                 q[10][17] = 0.740259; q[10][18] = 0.443205; 
925                 q[10][19] = 1.997370; 
926                 
927                 q[11][12] = 1.032220; q[11][13] = 0.098843; 
928                 q[11][14] = 0.619503; q[11][15] = 1.073780; 
929                 q[11][16] = 1.537920; q[11][17] = 0.152232; 
930                 q[11][18] = 0.147411; q[11][19] = 0.342012; 
931                 
932                 q[12][13] = 1.320870; q[12][14] = 0.194864; 
933                 q[12][15] = 0.556353; q[12][16] = 1.681970; 
934                 q[12][17] = 0.570369; q[12][18] = 0.473810; 
935                 q[12][19] = 2.282020; 
936                 
937                 q[13][14] = 0.179896; q[13][15] = 0.606814; 
938                 q[13][16] = 0.191467; q[13][17] = 1.699780; 
939                 q[13][18] = 7.154480; q[13][19] = 0.725096; 
940                 
941                 q[14][15] = 1.786490; q[14][16] = 0.885349; 
942                 q[14][17] = 0.156619; q[14][18] = 0.239607; 
943                 q[14][19] = 0.351250; 
944                 
945                 q[15][16] = 4.847130; q[15][17] = 0.578784; 
946                 q[15][18] = 0.872519; q[15][19] = 0.258861; 
947                 
948                 q[16][17] = 0.126678; q[16][18] = 0.325490; 
949                 q[16][19] = 1.547670; 
950                 
951                 q[17][18] = 2.763540; q[17][19] = 0.409817; 
952                 
953                 q[18][19] = 0.347826; 
954
955                 /* original frequencies */
956                 f[ 0] = 0.0866;
957                 f[ 1] = 0.0440;
958                 f[ 2] = 0.0391;
959                 f[ 3] = 0.0570;
960                 f[ 4] = 0.0193;
961                 f[ 5] = 0.0367;
962                 f[ 6] = 0.0581;
963                 f[ 7] = 0.0833;
964                 f[ 8] = 0.0244;
965                 f[ 9] = 0.0485;
966                 f[10] = 0.0862;
967                 f[11] = 0.0620;
968                 f[12] = 0.0195;
969                 f[13] = 0.0384;
970                 f[14] = 0.0458;
971                 f[15] = 0.0695;
972                 f[16] = 0.0610;
973                 f[17] = 0.0144;
974                 f[18] = 0.0353;
975                 f[19] = 0.0709;
976 }
977
978 void cprev45data(dmatrix q, double *f)
979 {
980         /* cpREV45 model of amino acid evolution
981          * Adachi, J., P.J. Waddell, W. Martin, and M. Hasegawa. 2000. 
982          * J. Mol. Evol. 50:348-358
983          * (reconstructed from 45 chloroplast genomes)
984          */
985         q[0][1]  =  105; q[0][2]  =  227; 
986         q[0][3]  =  175; q[0][4]  =  669; 
987         q[0][5]  =  157; q[0][6]  =  499; 
988         q[0][7]  =  665; q[0][8]  =   66; 
989         q[0][9]  =  145; q[0][10] =  197; 
990         q[0][11] =  236; q[0][12] =  185; 
991         q[0][13] =   68; q[0][14] =  490; 
992         q[0][15] = 2440; q[0][16] = 1340; 
993         q[0][17] =   14; q[0][18] =   56; 
994         q[0][19] =  968; 
995         
996         q[1][2]  =  357; q[1][3]  =   43; 
997         q[1][4]  =  823; q[1][5]  = 1745; 
998         q[1][6]  =  152; q[1][7]  =  243; 
999         q[1][8]  =  715; q[1][9]  =  136; 
1000         q[1][10] =  203; q[1][11] = 4482; 
1001         q[1][12] =  125; q[1][13] =   53; 
1002         q[1][14] =   87; q[1][15] =  385; 
1003         q[1][16] =  314; q[1][17] =  230; 
1004         q[1][18] =  323; q[1][19] =   92; 
1005         
1006         q[2][3]  = 4435; q[2][4]  =  538; 
1007         q[2][5]  =  768; q[2][6]  = 1055; 
1008         q[2][7]  =  653; q[2][8]  = 1405; 
1009         q[2][9]  =  168; q[2][10] =  113; 
1010         q[2][11] = 2430; q[2][12] =   61; 
1011         q[2][13] =   97; q[2][14] =  173; 
1012         q[2][15] = 2085; q[2][16] = 1393; 
1013         q[2][17] =   40; q[2][18] =  754; 
1014         q[2][19] =   83; 
1015         
1016         q[3][4]  =   10; q[3][5]  =  400; 
1017         q[3][6]  = 3691; q[3][7]  =  431; 
1018         q[3][8]  =  331; q[3][9]  =   10; 
1019         q[3][10] =   10; q[3][11] =  412; 
1020         q[3][12] =   47; q[3][13] =   22; 
1021         q[3][14] =  170; q[3][15] =  590; 
1022         q[3][16] =  266; q[3][17] =   18; 
1023         q[3][18] =  281; q[3][19] =   75; 
1024         
1025         q[4][5]  =   10; q[4][6]  =   10; 
1026         q[4][7]  =  303; q[4][8]  =  441; 
1027         q[4][9]  =  280; q[4][10] =  396; 
1028         q[4][11] =   48; q[4][12] =  159; 
1029         q[4][13] =  726; q[4][14] =  285; 
1030         q[4][15] = 2331; q[4][16] =  576; 
1031         q[4][17] =  435; q[4][18] = 1466; 
1032         q[4][19] =  592; 
1033         
1034         q[5][6]  = 3122; q[5][7]  =  133; 
1035         q[5][8]  = 1269; q[5][9]  =   92; 
1036         q[5][10] =  286; q[5][11] = 3313; 
1037         q[5][12] =  202; q[5][13] =   10; 
1038         q[5][14] =  323; q[5][15] =  396; 
1039         q[5][16] =  241; q[5][17] =   53; 
1040         q[5][18] =  391; q[5][19] =   54; 
1041         
1042         q[6][7]  =  379; q[6][8]  =  162; 
1043         q[6][9]  =  148; q[6][10] =   82; 
1044         q[6][11] = 2629; q[6][12] =  113; 
1045         q[6][13] =  145; q[6][14] =  185; 
1046         q[6][15] =  568; q[6][16] =  369; 
1047         q[6][17] =   63; q[6][18] =  142; 
1048         q[6][19] =  200; 
1049         
1050         q[7][8]  =   19; q[7][9]  =   40; 
1051         q[7][10] =   20; q[7][11] =  263; 
1052         q[7][12] =   21; q[7][13] =   25; 
1053         q[7][14] =   28; q[7][15] =  691; 
1054         q[7][16] =   92; q[7][17] =   82; 
1055         q[7][18] =   10; q[7][19] =   91; 
1056         
1057         q[8][9]  =   29; q[8][10] =   66; 
1058         q[8][11] =  305; q[8][12] =   10; 
1059         q[8][13] =  127; q[8][14] =  152; 
1060         q[8][15] =  303; q[8][16] =   32; 
1061         q[8][17] =   69; q[8][18] = 1971; 
1062         q[8][19] =   25; 
1063         
1064         q[9][10] = 1745; q[9][11] =  345; 
1065         q[9][12] = 1772; q[9][13] =  454; 
1066         q[9][14] =  117; q[9][15] =  216; 
1067         q[9][16] = 1040; q[9][17] =   42; 
1068         q[9][18] =   89; q[9][19] = 4797; 
1069         
1070         q[10][11] =  218; q[10][12] = 1351; 
1071         q[10][13] = 1268; q[10][14] =  219; 
1072         q[10][15] =  516; q[10][16] =  156; 
1073         q[10][17] =  159; q[10][18] =  189; 
1074         q[10][19] =  865; 
1075         
1076         q[11][12] =  193; q[11][13] =   72; 
1077         q[11][14] =  302; q[11][15] =  868; 
1078         q[11][16] =  918; q[11][17] =   10; 
1079         q[11][18] =  247; q[11][19] =  249; 
1080         
1081         q[12][13] =  327; q[12][14] =  100; 
1082         q[12][15] =   93; q[12][16] =  645; 
1083         q[12][17] =   86; q[12][18] =  215; 
1084         q[12][19] =  475; 
1085         
1086         q[13][14] =   43; q[13][15] =  487; 
1087         q[13][16] =  148; q[13][17] =  468; 
1088         q[13][18] = 2370; q[13][19] =  317; 
1089         
1090         q[14][15] = 1202; q[14][16] =  260; 
1091         q[14][17] =   49; q[14][18] =   97; 
1092         q[14][19] =  122; 
1093         
1094         q[15][16] = 2151; q[15][17] =   73; 
1095         q[15][18] =  522; q[15][19] =  167; 
1096         
1097         q[16][17] =   29; q[16][18] =   71; 
1098         q[16][19] =  760; 
1099         
1100         q[17][18] =  346; q[17][19] =   10; 
1101         
1102         q[18][19] =  119; 
1103
1104         f[0]  = 0.076;
1105         f[1]  = 0.062;
1106         f[2]  = 0.041;
1107         f[3]  = 0.037;
1108         f[4]  = 0.009;
1109         f[5]  = 0.038;
1110         f[6]  = 0.049;
1111         f[7]  = 0.084;
1112         f[8]  = 0.025;
1113         f[9]  = 0.081;
1114         f[10] = 0.101;
1115         f[11] = 0.050;
1116         f[12] = 0.022;
1117         f[13] = 0.051;
1118         f[14] = 0.043;
1119         f[15] = 0.062;
1120         f[16] = 0.054;
1121         f[17] = 0.018;
1122         f[18] = 0.031;
1123         f[19] = 0.066;
1124 }
1125