LocARNA-1.9.2
src/LocARNA/aligner.hh
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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends