LocARNA-1.9.2
|
00001 #ifndef LOCARNA_ALIGNMENT_IMPL_HH 00002 #define LOCARNA_ALIGNMENT_IMPL_HH 00003 00004 #ifdef HAVE_CONFIG_H 00005 #include <config.h> 00006 #endif 00007 00008 #include <iosfwd> 00009 #include <vector> 00010 00011 namespace LocARNA { 00012 00013 template <class T> 00014 class plusvector; 00015 class Alignment; 00016 class Sequence; 00017 class RnaData; 00018 class Scoring; 00019 00023 class AlignmentImpl { 00024 public: 00025 Alignment *self_; 00026 00027 const Sequence &seqA_; 00028 const Sequence &seqB_; 00029 00042 Alignment::edge_ends_t a_; 00043 00056 Alignment::edge_ends_t b_; 00057 00058 std::string strA_; 00059 std::string strB_; 00060 00068 AlignmentImpl(Alignment *self, 00069 const Sequence &seqA, 00070 const Sequence &seqB) 00071 : self_(self), 00072 seqA_(seqA), 00073 seqB_(seqB), 00074 a_(), 00075 b_(), 00076 strA_(), 00077 strB_() {} 00078 00084 void 00085 write_debug(std::ostream &out) const; 00086 00093 static void 00094 write_debug(std::ostream &out, const Alignment::edge_ends_t &ends); 00095 00104 static std::string 00105 dot_bracket_structure(const std::string &str, 00106 const Alignment::edge_ends_t &x); 00107 }; 00108 00109 } // end namespace LocARNA 00110 00111 #endif // LOCARNA_ALIGNMENT_IMPL_HH