Next version of JABA
[jabaws.git] / binaries / src / clustalw / src / pairwise / FullPairwiseAlign.h
1 /**
2  * Author: Mark Larkin
3  * 
4  * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.  
5  */
6 #ifndef FULLPAIRWISEALIGN_H
7 #define FULLPAIRWISEALIGN_H
8
9 #include "PairwiseAlignBase.h"
10
11 namespace clustalw
12 {
13
14 class FullPairwiseAlign : public PairwiseAlignBase
15 {
16     public:
17         /* Functions */
18         FullPairwiseAlign();
19         virtual ~FullPairwiseAlign(){};
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 add(int v);
28         int calcScore(int iat, int jat, int v1, int v2); 
29         float tracePath(int tsb1, int tsb2);
30         void forwardPass(const vector<int>* seq1, const vector<int>* seq2, int n, int m);
31         void reversePass(const vector<int>* ia, const vector<int>* ib);
32         int diff(int A, int B, int M, int N, int tb, int te);
33         void del(int k);
34         int gap(int k);
35         int tbgap(int k, int tb);
36         int tegap(int k, int te);
37         /* Attributes */
38         // I have constant pointers to the data. This allows for the fastest access.
39         const vector<int>* _ptrToSeq1;
40         const vector<int>* _ptrToSeq2;
41         int _maxAlnLength;
42         int intScale;
43         float mmScore;
44         int printPtr;
45         int lastPrint;
46         vector<int> displ;
47         vector<int> HH;
48         vector<int> DD;
49         vector<int> RR;
50         vector<int> SS;
51
52         int _gapOpen; // scaled to be an integer, this is not a mistake
53         int _gapExtend; // scaled to be an integer, not a mistake
54         int seq1;
55         int seq2;
56         int matrix[NUMRES][NUMRES];
57         int maxScore;
58         int sb1;
59         int sb2;
60         int se1;
61         int se2;
62
63 };
64
65 }
66 #endif