/* 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 */ #ifndef _RNA_FOREST_H_ #define _RNA_FOREST_H_ #include #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 { private: typedef PPForest 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 > ®ions, const RNAFuncs::SquigglePlotOptions &sqOptions) const; }; #endif