LocARNA-1.8.11
aligner.hh
1 #ifndef LOCARNA_ALIGNER_HH
2 #define LOCARNA_ALIGNER_HH
3 
4 #ifdef HAVE_CONFIG_H
5 # include <config.h>
6 #endif
7 
8 #include "aux.hh"
9 #include "scoring_fwd.hh"
10 #include "rna_structure.hh"
11 
12 #include "params.hh"
13 
14 
15 namespace LocARNA {
16 
17  class AlignerImpl;
18 
19  class Sequence;
20  class AlignerParams;
21  class ArcMatches;
22  class Alignment;
23 
24  class AlignerRestriction;
25 
33  template <class T>
35  public:
41  bool operator() (const T& a, const T&b) {
42  return a.second < b.second;
43  }
44  };
45 
46 
67  class Aligner {
68  AlignerImpl *pimpl_;
69 
70  public:
71 
77  Aligner(const Aligner &aligner);
78 
84  Aligner &operator =(const Aligner &aligner);
85 
94  Aligner(const AlignerParams &ap);
95 
100  static
102 
104  ~Aligner();
105 
107  Alignment const &
108  get_alignment() const;
109 
118  void
119  set_alignment(const Alignment &alignment);
120 
123  align();
124 
126  void
127  trace();
128 
133  void
134  set_restriction(const AlignerRestriction &r);
135 
140  const AlignerRestriction &
141  get_restriction() const;
142 
143 
160  void
161  suboptimal(int k,
162  score_t threshold,
163  bool opt_normalized,
164  score_t normalized_L,
165  size_t output_width,
166  bool opt_verbose,
167  bool opt_local_out,
168  bool opt_pos_output,
169  bool opt_write_structure
170  );
171 
172 
175  normalized_align(score_t L, bool opt_verbose);
176 
179  penalized_align(score_t position_penalty);
180 
186  score_t
187  evaluate();
188 
195  optimize_consensus_structure();
196 
197 
198  };
199 
200 } //end namespace LocARNA
201 
202 #endif // LOCARNA_ALIGNER_HH
Implements locarna alignment algorithm.
Definition: aligner.hh:67
bool operator()(const T &a, const T &b)
Definition: aligner.hh:41
Definition: aligner.cc:17
Implementation of Aligner.
Definition: aligner_impl.hh:24
Definition: infty_int.hh:344
Parameter for alignment by Aligner.
Definition: params.hh:101
Implements comparison by member second.
Definition: aligner.hh:34
An RNA secondary structure.
Definition: rna_structure.hh:26
static AlignerParams create()
create with named parameters
Definition: aligner.hh:101
Represents a structure-annotated sequence alignment.
Definition: alignment.hh:87
long int score_t
type of the locarna score as defined by the class Scoring
Definition: scoring_fwd.hh:13
Restricts range of an alignment in Aligner.
Definition: aligner_restriction.hh:26