WSTester updated to work plus hopefully all the other changes that need to go into...
[jabaws.git] / binaries / src / ViennaRNA / RNAforester / src / rna_alignment.h
diff --git a/binaries/src/ViennaRNA/RNAforester/src/rna_alignment.h b/binaries/src/ViennaRNA/RNAforester/src/rna_alignment.h
new file mode 100644 (file)
index 0000000..c8cca47
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+  Copyright by Matthias Hoechsmann (C) 2002-2004
+  =====================================                                   
+  You may use, copy and distribute this file freely as long as you
+  - do not change the file,
+  - leave this copyright notice in the file,
+  - do not make any profit with the distribution of this file
+  - give credit where credit is due
+  You are not allowed to copy or distribute this file otherwise
+  The commercial usage and distribution of this file is prohibited
+  Please report bugs and suggestions to <mhoechsm@TechFak.Uni-Bielefeld.DE>
+*/
+
+#ifndef _RNA_ALIGNMENT_H
+#define _RNA_ALIGNMENT_H
+
+#include <iostream>
+#include <map>
+#include <string>
+
+#include "alignment.h"
+#include "ppforestali.h"
+#include "rna_algebra.h"
+#include "rnaforest.h"
+#include "rnafuncs.h"
+#include "types.h"
+
+#include "alignment.t.cpp"
+
+using namespace std;
+
+/** Alignment of RNAForests */
+class RNA_Alignment : public PPForestAli<RNA_Alphabet,RNA_AlphaPair>
+{
+private:
+       string m_strname1;
+       string m_strname2;
+
+       /** @name Implementations of virtual functions */       
+       //@{ 
+
+       void makeRepLabel(size_type node, RNA_Alphabet a,  RNA_Alphabet b)
+       {
+               m_lb[node].a=a;
+               m_lb[node].b=b;
+       };
+
+       void makeDelLabel(size_type node, RNA_Alphabet a)
+       {
+               m_lb[node].a=a;
+               m_lb[node].b=ALPHA_GAP;
+       };
+
+       void makeInsLabel(size_type node, RNA_Alphabet b)
+       {
+               m_lb[node].a=ALPHA_GAP;
+               m_lb[node].b=b;
+       };
+
+       void showLabel(ostream &s,RNA_AlphaPair p) const
+       {
+               s << "[" << p.a << p.b << "]";
+       };
+
+       //@}
+
+       void makePairTable(map<Uint,Uint> &pairs, bool first) const;
+
+public:
+       void setStructureNames(const string &s1,const string &s2);
+       const string& getStructureNameX() const {return m_strname1;};
+       const string& getStructureNameY() const {return m_strname2;};
+       void getSequenceAlignments(string &s1, string &s2) const;
+       void getStructureAlignment(string &s, bool first) const;
+       void generateXML(ostream &s) const;
+       void squigglePlot(const string &filename_suffix, const RNAFuncs::SquigglePlotOptions &options) const;
+};
+
+/*
+class PW_RNA_Alignment: public Alignment<int,RNA_Alphabet,RNA_AlphaPair>
+{
+ public:
+  PW_RNA_Alignment(const RNAForest *ppfx, const RNAForest *ppfy, const IntScoreRNA_AlgebraType &alg)
+      : Alignment<int,RNA_Alphabet,RNA_AlphaPair>((const PPForest<RNA_Alphabet>*)ppfx,(const PPForest<RNA_Alphabet>*)ppfy,alg) {};
+};*/
+
+#endif