Browse code

remode the dependence of msa.

JIANHONG OU authored on 02/08/2021 22:28:10
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,66 @@
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