Next version of JABA
[jabaws.git] / binaries / src / clustalw / src / pairwise / FastPairwiseAlign.h
1 /**
2  * Author: Mark Larkin
3  * 
4  * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.  
5  */
6 #ifndef FASTPAIRWISEALIGN_H
7 #define FASTPAIRWISEALIGN_H
8
9 #include "PairwiseAlignBase.h"
10
11 namespace clustalw
12 {
13
14 class FastPairwiseAlign : public PairwiseAlignBase
15 {
16     public:
17         /* Functions */
18         FastPairwiseAlign();
19         virtual ~FastPairwiseAlign(){};
20
21         virtual void pairwiseAlign(Alignment *alignPtr, DistMatrix *distMat, int iStart, 
22                                    int iEnd, int jStart, int jEnd);
23         /* Attributes */
24
25     private:
26         /* Functions */
27         void pairAlign(const vector<int>* seq, int l1, int l2); 
28         void makePPtrs(vector<int>& tptr, vector<int>& pl, const vector<int>* seq, 
29                        int length); 
30         void makeNPtrs(vector<int>& tptr, vector<int>& pl, const vector<int>* seq, 
31                        int length);
32         void putFrag(int fs, int v1, int v2, int flen);
33         int fragRelPos(int a1, int b1, int a2, int b2);
34         void desQuickSort(vector<int>& array1, vector<int>& array2, int arraySize);
35
36         /* Attributes */
37         
38         vector<int> displ;
39         vector<int> zza;
40         vector<int> zzb;
41         vector<int> zzc;
42         vector<int> zzd;        
43         int next;
44         int currFrag;
45         int maxSoFar;
46         int vatend;
47         
48         Array2D<int> accum;
49         vector<int> diagIndex;
50         vector<int> slopes;
51         int _maxAlnLength;        
52 };
53 }
54 #endif