Next version of JABA
[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 <stdio.h>
10 #include <stdlib.h>
11 #include <stddef.h>
12 #include <sys/types.h>
13 #include <string.h>
14 #include <unistd.h>
15 #include <math.h>
16 #include <ctype.h>
17 #include "mtxutl.h"
18 #include <float.h>
19
20 #define VERSION "6.713b"
21 #define SHOWVERSION fprintf( stderr, "%s (%s) Version " VERSION " alg=%c, model=%s\n", progName( argv[0] ), (dorp=='d')?"nuc":"aa", alg, modelname )
22
23 #define FFT_THRESHOLD  80
24 #define FFT_WINSIZE_P   20
25 #define FFT_WINSIZE_D   100
26 #define DISPSEQF  60
27 #define DISPSITEI    0
28 #define MAXITERATION 500
29 #define M   50000       /* njob no saidaiti */
30 #define N 5000000       /* nlen no saidaiti */
31 #define MAXSEG 100000
32 #define B     256
33 #define C     60       /*  1 gyou no mojisuu */
34 #define D      6
35 #define rnd() ( ( 1.0 / ( RAND_MAX + 1.0 ) ) * rand() )
36 #define MAX(X,Y)    ( ((X)>(Y))?(X):(Y) )
37 #define MIN(X,Y)    ( ((X)<(Y))?(X):(Y) )
38 #define G(X)        ( ((X)>(0))?(X):(0) )
39 #define BEFF   1.0   /* 0.6 ni suruto zureru */
40 #define WIN   3
41 #define SGAPP -1000
42 #define GETA2 0.001
43 #define GETA3 0.001
44 #define NOTSPECIFIED  100009
45 #define SUEFF   0.1  /* upg/(spg+upg)  -> sueff.sed */ 
46 #define DIVLOCAL 0
47 #define INTMTXSCALE 1000000.0
48 #define JTT 201
49 #define TM  202
50
51 extern char modelname[100];
52 extern int njob, nlenmax;
53 extern int amino_n[0x80];
54 extern char amino_grp[0x80];
55 extern int amino_dis[0x80][0x80];
56 extern int amino_disLN[0x80][0x80];
57 extern double amino_dis_consweight_multi[0x80][0x80];
58 extern int n_dis[26][26];
59 extern int n_disFFT[26][26];
60 extern float n_dis_consweight_multi[26][26];
61 extern char amino[26];
62 extern double polarity[20];
63 extern double volume[20];
64 extern int ribosumdis[37][37];
65
66 extern int ppid;
67 extern double thrinter;
68 extern double fastathreshold;
69 extern int pslocal, ppslocal;
70 extern int constraint;
71 extern int divpairscore;
72 extern int fmodel; // 1-> fmodel 0->default -1->raw
73 extern int nblosum; // 45, 50, 62, 80
74 extern int kobetsubunkatsu;
75 extern int bunkatsu;
76 extern int dorp;
77 extern int niter;
78 extern int contin;
79 extern int calledByXced;
80 extern int devide;
81 extern int scmtd;
82 extern int weight;
83 extern int utree;
84 extern int tbutree;
85 extern int refine;
86 extern int check;
87 extern double cut;
88 extern int cooling;
89 extern int penalty, ppenalty, penaltyLN;
90 extern int RNApenalty, RNAppenalty;
91 extern int RNApenalty_ex, RNAppenalty_ex;
92 extern int penalty_ex, ppenalty_ex, penalty_exLN;
93 extern int penalty_EX, ppenalty_EX;
94 extern int penalty_OP, ppenalty_OP;
95 extern int offset, poffset, offsetLN, offsetFFT;
96 extern int RNAthr, RNApthr;
97 extern int scoremtx;
98 extern int TMorJTT;
99 extern char use_fft;
100 extern char force_fft;
101 extern int nevermemsave;
102 extern int fftscore;
103 extern int fftWinSize;
104 extern int fftThreshold;
105 extern int fftRepeatStop;
106 extern int fftNoAnchStop;
107 extern int divWinSize;
108 extern int divThreshold;
109 extern int disp;
110 extern int outgap;
111 extern char alg;
112 extern int cnst;
113 extern int mix;
114 extern int tbitr;
115 extern int tbweight;
116 extern int tbrweight;
117 extern int disopt;
118 extern int pamN;
119 extern int checkC;
120 extern float geta2;
121 extern int treemethod;
122 extern int kimuraR;
123 extern char *swopt;
124 extern int fftkeika;
125 extern int score_check;
126 extern char *inputfile;
127 extern float consweight_multi;
128 extern float consweight_rna;
129 extern char RNAscoremtx;
130
131 extern char *signalSM;
132 extern FILE *prep_g;
133 extern FILE *trap_g;
134 extern char **seq_g;
135 extern char **res_g;
136 extern int rnakozo;
137 extern char rnaprediction;
138
139 /* sengen no ichi ha koko dake de ha nai */
140 extern void constants();
141 extern char **Calignm1();
142 extern char **Dalignm1();
143 extern char **align0();
144 extern double Cscore_m_1( char **, int, int, double ** );
145 extern double score_m_1(  char **, int, int, double ** );
146 extern double score_calc0( char **, int, double **, int );
147 extern char seqcheck( char ** );
148 extern float substitution( char *, char * );
149 extern float substitution_score( char *, char * );
150 extern float substitution_nid( char *, char * );
151 extern float substitution_hosei( char *, char * );
152 extern double ipower( double, int );
153 extern float translate_and_Calign();
154 extern float A__align();
155 extern float A__align11();
156 extern float A__align_gapmap();
157 extern float partA__align();
158 extern float L__align11();
159 extern float G__align11();
160 extern float Falign();
161 extern float Falign_localhom();
162 extern float Conalign();
163 extern float Aalign();
164 extern float imp_match_out_sc( int, int );
165 extern float part_imp_match_out_sc( int, int );
166 extern void ErrorExit();
167 extern void cpmx_calc();
168 extern void intergroup_score( char **, char **, double *, double *, int, int, int, double * );
169 extern int conjuctionfortbfast();
170 extern int fastconjuction();
171 extern char seqcheck( char ** );
172
173 typedef struct _LocalHom
174 {
175         int nokori;
176         struct _LocalHom *next;
177         struct _LocalHom *last;
178         int start1;
179         int end1;
180         int start2;
181         int end2;
182         double opt;
183         int overlapaa;
184         int extended;
185         double importance;
186         float fimportance;
187         double wimportance;
188         char korh;
189 } LocalHom;
190
191 typedef struct _NodeInCub
192 {
193         int step;
194         int LorR;
195 } NodeInCub;
196
197 typedef struct _Node
198 {
199         struct _Node *children[3];
200         int tmpChildren[3];
201         double length[3];
202         double *weightptr[3];
203         int top[3];
204         int *members[3];
205 } Node;
206
207 typedef struct _Segment
208 {
209         int start;
210         int end;
211         int center;
212         double score;
213         int skipForeward;
214         int skipBackward;
215         struct _Segment *pair;
216         int  number;
217 } Segment;
218
219 typedef struct _Segments
220 {
221         Segment group1;
222         Segment group2;
223         int number1;
224         int number2;
225 } Segments;
226
227 typedef struct _Bchain
228 {
229         struct _Bchain *next;
230         struct _Bchain *prev;
231         int pos;
232 } Bchain;
233
234 typedef struct _Achain
235 {
236         int next;
237         int prev;
238 //      int curr;
239 } Achain;
240
241
242 typedef struct _Fukusosuu
243 {
244     double R;
245     double I;
246 } Fukusosuu;
247
248 typedef struct _Gappattern
249 {
250         int len;
251         float freq;
252 } Gappat;
253
254 typedef struct _RNApair
255 {
256         int uppos;
257         float upscore;
258         int downpos;
259         float downscore;
260         int bestpos;
261         float bestscore;
262 } RNApair;
263
264
265 #include "fft.h"
266 #include "dp.h"
267 #include "functions.h"
268