source: branches/items/GDE/MAFFT/mafft-7.055-with-extensions/core/JTT.c

Last change on this file was 10371, checked in by aboeckma, 11 years ago

updated mafft version. Added extensions (no svn ignore, yet)

File size: 8.3 KB
Line 
1#if 0
2#include "mltaln.h"
3#endif
4#define DEFAULTGOP_J -1530
5#define DEFAULTGEP_J   -00
6#define DEFAULTOFS_J  -123  /* +10 -- -50  teido ka ? */
7#define DEFAULTPAMN  200
8
9void JTTmtx( double **rsr, double *freq, char locamino[26], char locgrp[26], int isTM )
10{
11        int i, j;
12        double r[20][20];
13//      char locamino0[] = "ARNDCQEGHILKMFPSTWYVBZX.-U";
14        char locamino0[] = "ARNDCQEGHILKMFPSTWYVBZX.-J";
15        char locgrp0[] = 
16        {
17                0, 3, 2, 2, 5, 2, 2, 0, 3, 1, 1, 3, 1, 4, 0, 0, 0, 4, 4, 1, 2, 2,
18                6, 6, 6, 1, 
19        };
20
21        double freq0[20] = 
22        {
23                0.077,
24                0.051,
25                0.043,
26                0.052,
27                0.020,
28                0.041,
29                0.062,
30                0.074,
31                0.023,
32                0.052,
33                0.091,
34                0.059,
35                0.024,
36                0.040,
37                0.051,
38                0.069,
39                0.059,
40                0.014,
41                0.032,
42                0.066,
43        };
44        double freq0_TM[20] = 
45        {
46                 0.1051,
47                 0.0157,
48                 0.0185,
49                 0.0089,
50                 0.0219,
51                 0.0141,
52                 0.0097,
53                 0.0758,
54                 0.0168,
55                 0.1188,
56                 0.1635,
57                 0.0112,
58                 0.0333,
59                 0.0777,
60                 0.0260,
61                 0.0568,
62                 0.0523,
63                 0.0223,
64                 0.0324,
65                 0.1195,
66        };
67
68    /* Lower triangular is JTT's Accepted point mutations */
69    r[ 1][ 0]=  247;
70
71    r[ 2][ 0]=  216; r[ 2][ 1]=  116;
72
73    r[ 3][ 0]=  386; r[ 3][ 1]=   48; r[ 3][ 2]= 1433;
74
75    r[ 4][ 0]=  106; r[ 4][ 1]=  125; r[ 4][ 2]=   32; r[ 4][ 3]=   13;
76
77    r[ 5][ 0]=  208; r[ 5][ 1]=  750; r[ 5][ 2]=  159; r[ 5][ 3]=  130;
78    r[ 5][ 4]=    9;
79
80    r[ 6][ 0]=  600; r[ 6][ 1]=  119; r[ 6][ 2]=  180; r[ 6][ 3]= 2914;
81    r[ 6][ 4]=    8; r[ 6][ 5]= 1027;
82
83    r[ 7][ 0]= 1183; r[ 7][ 1]=  614; r[ 7][ 2]=  291; r[ 7][ 3]=  577;
84    r[ 7][ 4]=   98; r[ 7][ 5]=   84; r[ 7][ 6]=  610;
85
86    r[ 8][ 0]=   46; r[ 8][ 1]=  446; r[ 8][ 2]=  466; r[ 8][ 3]=  144;
87    r[ 8][ 4]=   40; r[ 8][ 5]=  635; r[ 8][ 6]=   41; r[ 8][ 7]=   41;
88
89    r[ 9][ 0]=  173; r[ 9][ 1]=   76; r[ 9][ 2]=  130; r[ 9][ 3]=   37;
90    r[ 9][ 4]=   19; r[ 9][ 5]=   20; r[ 9][ 6]=   43; r[ 9][ 7]=   25;
91    r[ 9][ 8]=   26;
92
93    r[10][ 0]=  257; r[10][ 1]=  205; r[10][ 2]=   63; r[10][ 3]=   34;
94    r[10][ 4]=   36; r[10][ 5]=  314; r[10][ 6]=   65; r[10][ 7]=   56;
95    r[10][ 8]=  134; r[10][ 9]= 1324;
96
97    r[11][ 0]=  200; r[11][ 1]= 2348; r[11][ 2]=  758; r[11][ 3]=  102;
98    r[11][ 4]=    7; r[11][ 5]=  858; r[11][ 6]=  754; r[11][ 7]=  142;
99    r[11][ 8]=   85; r[11][ 9]=   75; r[11][10]=   94;
100
101    r[12][ 0]=  100; r[12][ 1]=   61; r[12][ 2]=   39; r[12][ 3]=   27;
102    r[12][ 4]=   23; r[12][ 5]=   52; r[12][ 6]=   30; r[12][ 7]=   27;
103    r[12][ 8]=   21; r[12][ 9]=  704; r[12][10]=  974; r[12][11]=  103;
104
105    r[13][ 0]=   51; r[13][ 1]=   16; r[13][ 2]=   15; r[13][ 3]=    8;
106    r[13][ 4]=   66; r[13][ 5]=    9; r[13][ 6]=   13; r[13][ 7]=   18;
107    r[13][ 8]=   50; r[13][ 9]=  196; r[13][10]= 1093; r[13][11]=    7;
108    r[13][12]=   49;
109
110    r[14][ 0]=  901; r[14][ 1]=  217; r[14][ 2]=   31; r[14][ 3]=   39;
111    r[14][ 4]=   15; r[14][ 5]=  395; r[14][ 6]=   71; r[14][ 7]=   93;
112    r[14][ 8]=  157; r[14][ 9]=   31; r[14][10]=  578; r[14][11]=   77;
113    r[14][12]=   23; r[14][13]=   36;
114
115    r[15][ 0]= 2413; r[15][ 1]=  413; r[15][ 2]= 1738; r[15][ 3]=  244;
116    r[15][ 4]=  353; r[15][ 5]=  182; r[15][ 6]=  156; r[15][ 7]= 1131;
117    r[15][ 8]=  138; r[15][ 9]=  172; r[15][10]=  436; r[15][11]=  228;
118    r[15][12]=   54; r[15][13]=  309; r[15][14]= 1138;
119
120    r[16][ 0]= 2440; r[16][ 1]=  230; r[16][ 2]=  693; r[16][ 3]=  151;
121    r[16][ 4]=   66; r[16][ 5]=  149; r[16][ 6]=  142; r[16][ 7]=  164;
122    r[16][ 8]=   76; r[16][ 9]=  930; r[16][10]=  172; r[16][11]=  398;
123    r[16][12]=  343; r[16][13]=   39; r[16][14]=  412; r[16][15]= 2258;
124
125    r[17][ 0]=   11; r[17][ 1]=  109; r[17][ 2]=    2; r[17][ 3]=    5;
126    r[17][ 4]=   38; r[17][ 5]=   12; r[17][ 6]=   12; r[17][ 7]=   69;
127    r[17][ 8]=    5; r[17][ 9]=   12; r[17][10]=   82; r[17][11]=    9;
128    r[17][12]=    8; r[17][13]=   37; r[17][14]=    6; r[17][15]=   36;
129    r[17][16]=    8;
130
131    r[18][ 0]=   41; r[18][ 1]=   46; r[18][ 2]=  114; r[18][ 3]=   89;
132    r[18][ 4]=  164; r[18][ 5]=   40; r[18][ 6]=   15; r[18][ 7]=   15;
133    r[18][ 8]=  514; r[18][ 9]=   61; r[18][10]=   84; r[18][11]=   20;
134    r[18][12]=   17; r[18][13]=  850; r[18][14]=   22; r[18][15]=  164;
135    r[18][16]=   45; r[18][17]=   41;
136
137    r[19][ 0]= 1766; r[19][ 1]=   69; r[19][ 2]=   55; r[19][ 3]=  127;
138    r[19][ 4]=   99; r[19][ 5]=   58; r[19][ 6]=  226; r[19][ 7]=  276;
139    r[19][ 8]=   22; r[19][ 9]= 3938; r[19][10]= 1261; r[19][11]=   58;
140    r[19][12]=  559; r[19][13]=  189; r[19][14]=   84; r[19][15]=  219;
141    r[19][16]=  526; r[19][17]=   27; r[19][18]=   42;
142
143
144    /* Upper triangular is JTT's Accepted point mutations for transmembrane */
145 r[ 0][ 1]=   21; r[ 0][ 2]=    2; r[ 0][ 3]=    7; r[ 0][ 4]=   13;
146 r[ 0][ 5]=    4; r[ 0][ 6]=    6; r[ 0][ 7]=  160; r[ 0][ 8]=    6;
147 r[ 0][ 9]=   44; r[ 0][10]=   43; r[ 0][11]=    5; r[ 0][12]=   10;
148 r[ 0][13]=   21; r[ 0][14]=   34; r[ 0][15]=  198; r[ 0][16]=  202;
149 r[ 0][17]=    0; r[ 0][18]=    1; r[ 0][19]=  292; 
150 
151 r[ 1][ 2]=    0; r[ 1][ 3]=    1; r[ 1][ 4]=    2; r[ 1][ 5]=   21;
152 r[ 1][ 6]=    3; r[ 1][ 7]=   22; r[ 1][ 8]=   21; r[ 1][ 9]=    4;
153 r[ 1][10]=    8; r[ 1][11]=   53; r[ 1][12]=   19; r[ 1][13]=    0;
154 r[ 1][14]=    1; r[ 1][15]=    5; r[ 1][16]=    5; r[ 1][17]=   28;
155 r[ 1][18]=    0; r[ 1][19]=    0; 
156 
157 r[ 2][ 3]=   14; r[ 2][ 4]=    1; r[ 2][ 5]=    7; r[ 2][ 6]=    0;
158 r[ 2][ 7]=    0; r[ 2][ 8]=    8; r[ 2][ 9]=    4; r[ 2][10]=    5;
159 r[ 2][11]=   11; r[ 2][12]=    3; r[ 2][13]=    1; r[ 2][14]=    2;
160 r[ 2][15]=   32; r[ 2][16]=   19; r[ 2][17]=    1; r[ 2][18]=    1;
161 r[ 2][19]=    2; 
162 
163 r[ 3][ 4]=    0; r[ 3][ 5]=    0; r[ 3][ 6]=   12; r[ 3][ 7]=   15;
164 r[ 3][ 8]=    4; r[ 3][ 9]=    1; r[ 3][10]=    0; r[ 3][11]=    2;
165 r[ 3][12]=    1; r[ 3][13]=    0; r[ 3][14]=    1; r[ 3][15]=    0;
166 r[ 3][16]=    6; r[ 3][17]=    0; r[ 3][18]=    1; r[ 3][19]=    4;
167 
168 r[ 4][ 5]=    0; r[ 4][ 6]=    0; r[ 4][ 7]=   13; r[ 4][ 8]=    2;
169 r[ 4][ 9]=    4; r[ 4][10]=   11; r[ 4][11]=    0; r[ 4][12]=    1;
170 r[ 4][13]=   34; r[ 4][14]=    0; r[ 4][15]=   48; r[ 4][16]=   13;
171 r[ 4][17]=    8; r[ 4][18]=   23; r[ 4][19]=   47; 
172 
173 r[ 5][ 6]=   16; r[ 5][ 7]=    1; r[ 5][ 8]=   26; r[ 5][ 9]=    1;
174 r[ 5][10]=   16; r[ 5][11]=    6; r[ 5][12]=    3; r[ 5][13]=    0;
175 r[ 5][14]=    5; r[ 5][15]=    7; r[ 5][16]=    2; r[ 5][17]=    0;
176 r[ 5][18]=    0; r[ 5][19]=    0; 
177 
178 r[ 6][ 7]=   21; r[ 6][ 8]=    0; r[ 6][ 9]=    0; r[ 6][10]=    0;
179 r[ 6][11]=    0; r[ 6][12]=    0; r[ 6][13]=    0; r[ 6][14]=    0;
180 r[ 6][15]=    4; r[ 6][16]=    2; r[ 6][17]=    0; r[ 6][18]=    0;
181 r[ 6][19]=    7; 
182 
183 r[ 7][ 8]=    1; r[ 7][ 9]=   10; r[ 7][10]=    0; r[ 7][11]=    0;
184 r[ 7][12]=    3; r[ 7][13]=    4; r[ 7][14]=    7; r[ 7][15]=   64;
185 r[ 7][16]=   12; r[ 7][17]=    5; r[ 7][18]=    0; r[ 7][19]=   53;
186 
187 r[ 8][ 9]=    3; r[ 8][10]=    2; r[ 8][11]=    0; r[ 8][12]=    1;
188 r[ 8][13]=    0; r[ 8][14]=    0; r[ 8][15]=    0; r[ 8][16]=    4;
189 r[ 8][17]=    0; r[ 8][18]=   29; r[ 8][19]=    2;
190
191 r[ 9][10]=  273; r[ 9][11]=    0; r[ 9][12]=  161; r[ 9][13]=   66;
192 r[ 9][14]=    4; r[ 9][15]=   22; r[ 9][16]=  150; r[ 9][17]=    1;
193 r[ 9][18]=    4; r[ 9][19]=  883;
194
195 r[10][11]=    1; r[10][12]=  153; r[10][13]=  251; r[10][14]=   37;
196 r[10][15]=   43; r[10][16]=   26; r[10][17]=   20; r[10][18]=    6;
197 r[10][19]=  255;
198
199 r[11][12]=    4; r[11][13]=    0; r[11][14]=    0; r[11][15]=    1;
200 r[11][16]=    2; r[11][17]=    0; r[11][18]=    5; r[11][19]=    1;
201
202 r[12][13]=    8; r[12][14]=    0; r[12][15]=    1; r[12][16]=   32;
203 r[12][17]=    1; r[12][18]=    5; r[12][19]=   89;
204
205 r[13][14]=    0; r[13][15]=   32; r[13][16]=    9; r[13][17]=    2;
206 r[13][18]=   54; r[13][19]=   37;
207
208 r[14][15]=    9; r[14][16]=   10; r[14][17]=    0; r[14][18]=    1;
209 r[14][19]=    1;
210
211 r[15][16]=  134; r[15][17]=    1; r[15][18]=   22; r[15][19]=   13;
212
213 r[16][17]=    1; r[16][18]=    3; r[16][19]=   48;
214
215 r[17][18]=    2; r[17][19]=   18;
216
217 r[18][19]=    2;
218
219
220
221        for (i = 0; i < 20; i++) r[i][i] = 0.0;
222        if( isTM )
223        {
224                for (i = 1; i < 20; i++) for (j = 0; j < i; j++)
225                {
226                        r[j][i] /= 400.0 * freq0_TM[i] * freq0_TM[j];
227                        r[i][j] = r[j][i];
228                }
229                for( i=0; i<20; i++ ) freq[i] = freq0_TM[i];
230        }
231        else
232        {
233                for (i = 1; i < 20; i++) for (j = 0; j < i; j++)
234                {
235                        r[i][j] /= 400.0 * freq0[i] * freq0[j];
236                        r[j][i] = r[i][j];
237                }
238                for( i=0; i<20; i++ ) freq[i] = freq0[i];
239        }
240
241        for( i=0; i<26; i++ ) locamino[i] = locamino0[i];
242        for( i=0; i<26; i++ ) locgrp[(int)locamino[i]] = locgrp0[i];
243        for( i=0; i<20; i++ ) for( j=0; j<20; j++ ) rsr[i][j] = r[i][j];
244}
Note: See TracBrowser for help on using the repository browser.