]> git.donarmstrong.com Git - mothur.git/blobdiff - alignment.hpp
Revert to previous commit
[mothur.git] / alignment.hpp
diff --git a/alignment.hpp b/alignment.hpp
new file mode 100644 (file)
index 0000000..7a943fd
--- /dev/null
@@ -0,0 +1,57 @@
+#ifndef DPALIGNMENT_H
+#define DPALIGNMENT_H
+
+/*
+ *  dpalignment.h
+ *  
+ *
+ *  Created by Pat Schloss on 12/15/08.
+ *  Copyright 2008 Patrick D. Schloss. All rights reserved.
+ *
+ *  This is a class for an abstract datatype for classes that implement various types of alignment     algorithms.
+ *     As of 12/18/08 these included alignments based on blastn, needleman-wunsch, and the     Gotoh algorithms
+ * 
+ */
+
+#include "mothur.h"
+#include "alignmentcell.hpp"
+
+/**************************************************************************************************/
+
+class Alignment {
+       
+public:
+       Alignment(int);
+       Alignment();
+       virtual ~Alignment();
+       virtual void align(string, string) = 0;
+       
+       
+//     float getAlignmentScore();
+       string getSeqAAln();
+       string getSeqBAln();
+       int getCandidateStartPos();
+       int getCandidateEndPos();
+       int getTemplateStartPos();
+       int getTemplateEndPos();
+       
+       int getPairwiseLength();
+       void resize(int);
+       int getnRows() { return nRows; }
+//     int getLongestTemplateGap();
+
+protected:
+       void traceBack();
+       string seqA, seqAaln;
+       string seqB, seqBaln;
+       int seqAstart, seqAend;
+       int seqBstart, seqBend;
+       int pairwiseLength;
+       int nRows, nCols, lA, lB;
+       vector<vector<AlignmentCell> > alignment;
+       MothurOut* m;
+};
+
+/**************************************************************************************************/
+
+#endif