WSTester updated to work plus hopefully all the other changes that need to go into...
[jabaws.git] / binaries / src / ViennaRNA / RNAforester / src / rnaforest.h
diff --git a/binaries/src/ViennaRNA/RNAforester/src/rnaforest.h b/binaries/src/ViennaRNA/RNAforester/src/rnaforest.h
new file mode 100644 (file)
index 0000000..1fdb5e7
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+  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_FOREST_H_
+#define _RNA_FOREST_H_
+
+#include <iostream>
+
+#include "algebra.h"
+#include "ppforest.h"
+#include "rna_alphabet.h"
+#include "rnafuncs.h"
+
+
+using namespace std;
+
+
+/** RNAForest encapsulates the forest representation of an RNA */
+class RNAForest
+       : public PPForest<RNA_Alphabet>
+{
+private:
+       typedef PPForest<RNA_Alphabet> PPForestRNAType;
+
+       string m_name;
+       string m_baseStr;
+       string m_viennaStr;
+
+       void showLabel(ostream &s,RNA_Alphabet a) const;        // virtual function     of PPForest
+       void makeLabel(RNA_Alphabet &a,char c);
+
+       /** Build       forest from     structure, sequence     pair. */
+       void buildForest(const string   &baseStr, const string &viennaStr);
+
+public:
+       /**     Build forest from structure     sequence pair.
+       *       This allows     for     direct use of Vienna RNA strings.
+       *       e.g.: str="(..(...))", seq="accguuucu"   
+       */
+       RNAForest(const string &baseStr, const string   &viennaStr, const string &name);
+
+       const   string& getName() const {return m_name;};
+       const   string& getBaseStr() const {return m_baseStr;};
+       const   string& getViennaStr() const {return m_viennaStr;};
+
+       void plot2d(const string &filename_prefix, const list<pair<Uint,Uint> > &regions, const RNAFuncs::SquigglePlotOptions &sqOptions) const;        
+};
+
+#endif
+
+