LocARNA-1.9.2
|
00001 #ifndef LOCARNA_ALIGNER_HH 00002 #define LOCARNA_ALIGNER_HH 00003 00004 #ifdef HAVE_CONFIG_H 00005 #include <config.h> 00006 #endif 00007 00008 #include "aux.hh" 00009 #include "scoring_fwd.hh" 00010 #include "rna_structure.hh" 00011 00012 #include "params.hh" 00013 00014 namespace LocARNA { 00015 00016 class AlignerImpl; 00017 00018 class Sequence; 00019 class AlignerParams; 00020 class ArcMatches; 00021 class Alignment; 00022 00023 class AlignerRestriction; 00024 00032 template <class T> 00033 class greater_second { 00034 public: 00040 bool 00041 operator()(const T &a, const T &b) { 00042 return a.second < b.second; 00043 } 00044 }; 00045 00066 class Aligner { 00067 AlignerImpl *pimpl_; 00068 00069 public: 00075 Aligner(const Aligner &aligner); 00076 00082 Aligner & 00083 operator=(const Aligner &aligner); 00084 00093 Aligner(const AlignerParams &ap); 00094 00099 static AlignerParams 00100 create() { 00101 return AlignerParams(); 00102 } 00103 00105 ~Aligner(); 00106 00108 Alignment const & 00109 get_alignment() const; 00110 00119 void 00120 set_alignment(const Alignment &alignment); 00121 00123 infty_score_t 00124 align(); 00125 00127 void 00128 trace(); 00129 00134 void 00135 set_restriction(const AlignerRestriction &r); 00136 00141 const AlignerRestriction & 00142 get_restriction() const; 00143 00161 void 00162 suboptimal(int k, 00163 score_t threshold, 00164 bool normalized, 00165 score_t normalized_L, 00166 size_t output_width, 00167 bool verbose, 00168 bool opt_local_out, 00169 bool opt_pos_output, 00170 bool opt_write_structure); 00171 00173 infty_score_t 00174 normalized_align(score_t L, bool verbose); 00175 00178 infty_score_t 00179 penalized_align(score_t position_penalty); 00180 00187 score_t 00188 evaluate(); 00189 00195 RnaStructure 00196 optimize_consensus_structure(); 00197 }; 00198 00199 } // end namespace LocARNA 00200 00201 #endif // LOCARNA_ALIGNER_HH