JWS-112 Bumping version of Mafft to version 7.310.
[jabaws.git] / binaries / src / mafft / core / mltaln.h
1 #define USE_XCED 0
2
3 #if USE_XCED
4 #include "config.h"
5 #include "share.h"
6 #else
7 #endif
8
9 #include "mafft.h"
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <stddef.h>
13 #include <sys/types.h>
14 #include <string.h>
15 #include <unistd.h>
16 #include <math.h>
17 #include <ctype.h>
18 #include "mtxutl.h"
19 //#include <double.h>
20 #include <stdarg.h>
21 #ifdef enablemultithread
22 #include <pthread.h>
23 #endif
24 #ifndef mingw
25 #include <sys/resource.h> // for setstacksize, 2016/Jun
26 #endif
27
28 #define VERSION "7.310"
29 #define SHOWVERSION reporterr( "%s (%s) Version " VERSION " alg=%c, model=%s, amax=%3.1f\n%d thread(s)\n\n", progName( argv[0] ), (dorp=='d')?"nuc":((nblosum==-2)?"text":"aa"), alg, modelname, specificityconsideration, nthread )
30
31 #define FFT_THRESHOLD  80
32 #define FFT_WINSIZE_P   20
33 #define FFT_WINSIZE_D   100
34 #define DISPSEQF  60
35 #define DISPSITEI    0
36 #define MAXITERATION 500
37 #define M  500000       /* njob no saidaiti */
38 #define N 5000000       /* nlen no saidaiti */
39 #define MAXSEG 100000
40 #define B     256
41 #define C     60       /*  1 gyou no mojisuu */
42 #define D      6
43 #define DFORMAT      "%#6.3f"
44 #define rnd() ( ( 1.0 / ( RAND_MAX + 1.0 ) ) * rand() )
45 #define MAX(X,Y)    ( ((X)>(Y))?(X):(Y) )
46 #define MIN(X,Y)    ( ((X)<(Y))?(X):(Y) )
47 #define G(X)        ( ((X)>(0))?(X):(0) )
48 #define BEFF   1.0   /* 0.6 ni suruto zureru */
49 #define WIN   3
50 #define SGAPP -1000
51 #define GETA2 0.001
52 #define GETA3 0.001
53 #define NOTSPECIFIED  100009
54 #define SUEFF   0.1  /* upg/(spg+upg)  -> sueff.sed */ 
55 #define DIVLOCAL 0
56 #define INTMTXSCALE 1000000.0
57 #define JTT 201
58 #define TM  202
59
60 extern char modelname[500];
61 extern int njob, nlenmax;
62 extern int amino_n[0x100];
63 extern char amino_grp[0x100];
64 //extern int amino_dis[0x100][0x100];
65 extern int **amino_dis;
66 extern double **n_disLN;
67 //extern double amino_dis_consweight_multi[0x100][0x100];
68 extern double **amino_dis_consweight_multi;
69 extern int **n_dis;
70 extern int **n_disFFT;
71 extern double **n_dis_consweight_multi;
72 extern unsigned char amino[0x100];
73 extern double polarity[0x100];
74 extern double volume[0x100];
75 extern int ribosumdis[37][37];
76
77 extern int ppid;
78 extern double thrinter;
79 extern double fastathreshold;
80 extern int pslocal, ppslocal;
81 extern int constraint;
82 extern int divpairscore;
83 extern int fmodel; // 1-> fmodel 0->default -1->raw
84 extern int nblosum; // 45, 50, 62, 80
85 extern int kobetsubunkatsu;
86 extern int bunkatsu;
87 extern int dorp;
88 extern int niter;
89 extern int contin;
90 extern int calledByXced;
91 extern int devide;
92 extern int scmtd;
93 extern int weight;
94 extern int utree;
95 extern int tbutree;
96 extern int refine;
97 extern int check;
98 extern double cut;
99 extern int cooling;
100 extern int trywarp;
101 extern int penalty, ppenalty, penaltyLN;
102 extern int penalty_dist, ppenalty_dist;
103 extern int RNApenalty, RNAppenalty;
104 extern int RNApenalty_ex, RNAppenalty_ex;
105 extern int penalty_ex, ppenalty_ex, penalty_exLN;
106 extern int penalty_EX, ppenalty_EX;
107 extern int penalty_OP, ppenalty_OP;
108 extern int penalty_shift;
109 extern double penalty_shift_factor;
110 extern int offset, poffset, offsetLN, offsetFFT;
111 extern int RNAthr, RNApthr;
112 extern int scoremtx;
113 extern int TMorJTT;
114 extern char use_fft;
115 extern char force_fft;
116 extern int nevermemsave;
117 extern int fftscore;
118 extern int fftWinSize;
119 extern int fftThreshold;
120 extern int fftRepeatStop;
121 extern int fftNoAnchStop;
122 extern int divWinSize;
123 extern int divThreshold;
124 extern int disp;
125 extern int outgap;
126 extern char alg;
127 extern int cnst;
128 extern int mix;
129 extern int tbitr;
130 extern int tbweight;
131 extern int tbrweight;
132 extern int disopt;
133 extern int pamN;
134 extern int checkC;
135 extern double geta2;
136 extern int treemethod;
137 extern int kimuraR;
138 extern char *swopt;
139 extern int fftkeika;
140 extern int score_check;
141 extern char *inputfile;
142 extern char *addfile;
143 extern int addprofile;
144 extern double consweight_multi;
145 extern double consweight_rna;
146 extern char RNAscoremtx;
147
148 extern char *signalSM;
149 extern FILE *prep_g;
150 extern FILE *trap_g;
151 extern char **seq_g;
152 extern char **res_g;
153 extern int rnakozo;
154 extern char rnaprediction;
155
156 /* sengen no ichi ha koko dake de ha nai */
157 extern void constants();
158 extern char **Calignm1();
159 extern char **Dalignm1();
160 extern char **align0();
161 extern double Cscore_m_1( char **, int, int, double ** );
162 extern double score_m_1(  char **, int, int, double ** );
163 extern double score_calc0( char **, int, double **, int );
164 extern char seqcheck( char ** );
165 extern double substitution( char *, char * );
166 extern double substitution_score( char *, char * );
167 extern double substitution_nid( char *, char * );
168 extern double substitution_hosei( char *, char * );
169 extern double ipower( double, int );
170 extern double translate_and_Calign();
171 extern double A__align();
172 extern double A__align11();
173 extern double A__align_gapmap();
174 extern double partA__align();
175 extern double L__align11( double **scoringmtx, double scoreoffset, char **seq1, char **seq2, int alloclen, int *off1pt, int *off2pt );
176 extern double G__align11();
177 extern double Falign();
178 extern double Falign_localhom();
179 extern double Conalign();
180 extern double Aalign();
181 extern double imp_match_out_sc( int, int );
182 extern double part_imp_match_out_sc( int, int );
183 extern void ErrorExit();
184 extern void cpmx_calc();
185 extern void intergroup_score( char **, char **, double *, double *, int, int, int, double * );
186 extern int conjuctionfortbfast();
187 extern int fastconjuction();
188 extern char seqcheck( char ** );
189
190 typedef struct _LocalHom
191 {
192         struct _LocalHom *next;
193         struct _LocalHom *last;
194         int start1;
195         int end1;
196         int start2;
197         int end2;
198         double opt;
199         int overlapaa;
200         int extended;
201         double importance;
202         double rimportance;
203 //      double fimportance;
204 //      double wimportance;
205         char korh;
206         int nokori;
207 } LocalHom;
208
209 typedef struct _NodeInCub
210 {
211         int step;
212         int LorR;
213 } NodeInCub;
214
215 typedef struct _Node
216 {
217         struct _Node *children[3];
218         int tmpChildren[3];
219         double length[3];
220         double *weightptr[3];
221         int top[3];
222         int *members[3];
223 } Node;
224
225 typedef struct _Segment
226 {
227         int start;
228         int end;
229         int center;
230         double score;
231         int skipForeward;
232         int skipBackward;
233         struct _Segment *pair;
234         int  number;
235 } Segment;
236
237 typedef struct _Segments
238 {
239         Segment group1;
240         Segment group2;
241         int number1;
242         int number2;
243 } Segments;
244
245 typedef struct _Bchain
246 {
247         struct _Bchain *next;
248         struct _Bchain *prev;
249         int pos;
250 } Bchain;
251
252 typedef struct _Achain
253 {
254         int next;
255         int prev;
256 //      int curr;
257 } Achain;
258
259
260 typedef struct _Fukusosuu
261 {
262     double R;
263     double I;
264 } Fukusosuu;
265
266 typedef struct _Gappattern
267 {
268         int len;
269         double freq;
270 } Gappat;
271
272 typedef struct _RNApair
273 {
274         int uppos;
275         double upscore;
276         int downpos;
277         double downscore;
278         int bestpos;
279         double bestscore;
280 } RNApair;
281
282 typedef struct _Treedep
283 {
284         int child0;
285         int child1;
286         int done;
287         double distfromtip;
288 } Treedep;
289
290 typedef struct _Addtree
291 {
292         int nearest;
293         double dist1;
294         char *neighbors;
295         double dist2;
296 } Addtree;
297
298 #include "fft.h"
299 #include "dp.h"
300 #include "functions.h"
301
302 #ifdef enablemultithread
303 #define TLS __thread
304 #else
305 #define TLS 
306 #endif
307
308 extern TLS int commonAlloc1;
309 extern TLS int commonAlloc2;
310 extern TLS int **commonIP;
311 extern TLS int **commonJP;
312 extern int nthread;
313 extern int randomseed;
314 extern int parallelizationstrategy;
315 #define BESTFIRST 0
316 #define BAATARI0 1
317 #define BAATARI1 2
318 #define BAATARI2 3
319
320 extern int scoreout;
321 extern int spscoreout;
322 extern int outnumber;
323
324 extern int legacygapcost;
325 extern double minimumweight;
326 extern int nwildcard;
327
328 extern TLS char *newgapstr;
329
330 extern int nalphabets;
331 extern int nscoredalphabets;
332 extern double specificityconsideration;
333 extern int ndistclass, maxdistclass;
334
335 extern int gmsg;
336
337 extern double sueff_global;
338 extern double lenfaca, lenfacb, lenfacc, lenfacd;
339 int maxl, tsize;