#ifndef _RNA_FUNCS_H #define _RNA_FUNCS_H #include #include #include #include "types.h" #include "rnaforester_options.h" #include "rna_profile_alignment.h" #ifdef HAVE_LIBXMLPLUSPLUS #ifdef HAVE_LIBXML2 #include #endif #endif using namespace std; class RNAFuncs { public: struct SquigglePlotOptions { bool hideBaseNumbers; Uint baseNumInterval; bool greyColors; bool generatePNG; bool generateJPG; bool generateFIG; double scale; }; typedef struct AddXmlInfos { map idmapping; map comments; map descriptions; map names; map synonyms; Uint xbasepos,ybasepos; bool xmlInput; }; static bool isRNAString(const string &str); static bool isViennaString(const string &str, Ulong &basePairCount, Ulong &maxDepth); static void drawRNAStructure(const string &seq, const string &structure, const string &filename_prefix, const string &structname, const list > ®ions, const SquigglePlotOptions &options); static void drawRNAAlignment(const string &structure, const string &altStructure, const string &seq1, const string &seq2, const string &strname1, const string &strname2, const string &filename_prefix, const bool atX, const SquigglePlotOptions &options); static void generateRNAAlignmentXML(const string &structure, const string &altStructure, const string &seq1, const string &seq2, const string &strname1, const string &strname2, ostream &s); static void printAli(const string &name1, const string &id2, const string &seq1, const string &seq2, const string &str1, const string &str3); static Uint treeSize(const string &viennaStr); #ifdef HAVE_LIBXMLPLUSPLUS #ifdef HAVE_LIBXML2 static string getXSDURL(); static void printMAliXML(deque > &resultList, const RNAforesterOptions &options,double &minPairProb,AddXmlInfos &xmlInfos,const string &outputFile); static void printPAliXML(const string &id1, const string &name2, const string &seq1, const string &seq2, const string &str1, const string &str3, double &score, const RNAforesterOptions &options,AddXmlInfos &xmlInfos,const string &outputFile); static void printMapping(map &mapping); #endif #endif static string UpperCase(const string &str); }; #endif