1 #ifndef MUSALIGNA7GDNETYQI385MDKWOWOO
2 #define MUSALIGNA7GDNETYQI385MDKWOWOO
9 #include "csuu_matrix.hpp"
16 using Geert_cs_uu_nl::Matrix;
17 const double mininf= -std::numeric_limits<double>::infinity();
87 enum AlignKind {FirstSeqWithGap=0, SecondSeqWithGap=1, BothSeqs, FirstWithMany, SecondWithMany};
113 std::vector< AlignKind > a;
190 template <
class CostCalc>
193 typedef CostCalc CostCalculator;
195 mutable CostCalculator m_ccal;
196 template <
class Iter1,
class Iter2>
197 void fill_matrix_std(Geert_cs_uu_nl::Matrix<detail::NwCell> &matrix,
198 Iter1 s1cur, Iter2 s2begin)
const;
199 template <
class Iter1,
class Iter2>
200 void fill_matrix_partial(Geert_cs_uu_nl::Matrix<detail::NwCell> &matrix,
201 Iter1 s1cur, Iter2 s2begin)
const;
207 CostCalculator ccal = CostCalculator())
217 template <
class Sequence0,
class Sequence1>
222 template <
class Sequence0,
class Sequence1>
227 template <
class Sequence0,
class Sequence1>
231 template <
class Sequence0,
class Sequence1>
235 template <
class Sequence0,
class Sequence1>
239 template <
class Sequence0,
class Sequence1>
243 template <
class Sequence0,
class Sequence1>
246 template <
class Sequence0,
class Sequence1>
315 template <
class CostCalc>
318 typedef CostCalc CostCalculator;
320 mutable CostCalculator m_ccal;
322 template <
class Iter1,
class Iter2>
323 void fill_matrix_std(Geert_cs_uu_nl::Matrix<detail::NwgCell> &matrix,
324 Iter1 s1cur, Iter2 s2begin)
const;
325 template <
class Iter1,
class Iter2>
326 void fill_matrix_partial(Geert_cs_uu_nl::Matrix<detail::NwgCell> &matrix,
327 Iter1 s1cur, Iter2 s2begin)
const;
342 template <
class Sequence0,
class Sequence1>
347 template <
class Sequence0,
class Sequence1>
352 template <
class Sequence0,
class Sequence1>
356 template <
class Sequence0,
class Sequence1>
360 template <
class Sequence0,
class Sequence1>
364 template <
class Sequence0,
class Sequence1>
368 template <
class Sequence0,
class Sequence1>
371 template <
class Sequence0,
class Sequence1>
419 std::vector<AlignType2> a;
527 template <
class CostCalc>
530 typedef CostCalc CostCalculator;
532 mutable CostCalculator m_ccal;
533 template <
class Iter1,
class Iter2>
534 void fill_matrix(Geert_cs_uu_nl::Matrix<detail::FrCell> &matrix,
535 Iter1 s1begin, Iter2 s2begin,
double initial_value)
const;
536 template <
class Iter1,
class Iter2>
537 void fill_matrix_std(Geert_cs_uu_nl::Matrix<detail::FrCell> &matrix,
538 Iter1 s1begin, Iter2 s2begin)
const
540 fill_matrix(matrix, s1begin, s2begin, detail::mininf);
542 template <
class Iter1,
class Iter2>
543 void fill_matrix_partial(Geert_cs_uu_nl::Matrix<detail::FrCell> &matrix,
544 Iter1 s1begin, Iter2 s2begin)
const
546 fill_matrix(matrix, s1begin, s2begin, 0.0);
549 template <
class Sequence1>
550 void gap_init_first_column(
551 Geert_cs_uu_nl::Matrix<detail::FrCell> &matrix,
552 Sequence1
const &seq1)
const;
553 template <
class Sequence0>
554 void gap_init_first_row(Geert_cs_uu_nl::Matrix<detail::FrCell> &matrix,
555 Sequence0
const &seq0)
const;
557 template <
class Sequence0,
class Sequence1>
558 void gap_init(Geert_cs_uu_nl::Matrix<detail::FrCell> &matrix,
559 Sequence0
const &seq0, Sequence1
const &seq1)
const;
565 CostCalculator ccal = CostCalculator())
574 template <
class Sequence0,
class Sequence1>
579 template <
class Sequence0,
class Sequence1>
584 template <
class Sequence0,
class Sequence1>
588 template <
class Sequence0,
class Sequence1>
592 template <
class Sequence0,
class Sequence1>
596 template <
class Sequence0,
class Sequence1>
600 template <
class Sequence0,
class Sequence1>
603 template <
class Sequence0,
class Sequence1>
609 #include "musaline_impl.hpp"
610 #include "musaline_fragment.hpp"
614 #endif // MUSALIGNA7GDNETYQI385MDKWOWOO
Definition: musaline.hpp:528
ConsolidatingAligner(CostCalculator ccal=CostCalculator())
Constructor. Takes a CostaCalculator object as parameter.
Definition: musaline.hpp:564
int n[2]
n[0] and n[1] hold the number of elements of seq0 and seq1 that are involved. At most one of them can...
Definition: musaline.hpp:41
AffineAligner(CostCalculator ccal=CostCalculator())
Constructor.
Definition: musaline.hpp:332
CostCalculator const & get_cost_calculator() const
Get a const reference to the current CostCalculator object.
Definition: musaline.hpp:213
double score
The contribution of this match to the total alignment score.
Definition: musaline.hpp:43
Definition: musaline.hpp:54
CostCalculator const & get_cost_calculator() const
Get a const reference to the current CostCalculator object.
Definition: musaline.hpp:338
Alignment cut_one_begin_off_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment cut_one_begin_off_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Definition: musaline.hpp:424
void set_cost_calculator(CostCalculator ccal)
Set a different CostCalculator object.
Definition: musaline.hpp:211
double score
The computed similarity value for the alignment.
Definition: musaline.hpp:57
Alignment cut_one_end_off_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment initial_align(Sequence0 const &seq0, Sequence1 const &seq1) const
This class can compute the most simple form of alignment.
Definition: musaline.hpp:191
Alignment initial_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment inside_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment global_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment initial_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment semi_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Definition: musaline.hpp:19
Alignment cut_one_end_off_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment end_align(Sequence0 const &seq0, Sequence1 const &seq1) const
size_t start[2]
start[i] points to the start of the matched part of sequence i.
Definition: musaline.hpp:67
Alignment semi_align(Sequence0 const &seq0, Sequence1 const &seq1) const
This class can compute a form of alignment with a slightly more complicated cost function than Linear...
Definition: musaline.hpp:316
Alignment partial_align(Sequence0 const &seq0, Sequence1 const &seq1) const
No requirement for start and end.
void set_cost_calculator(CostCalculator ccal)
Set a different CostCalculator object.
Definition: musaline.hpp:568
Alignment end_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment semi_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment global_align(Sequence0 const &seq0, Sequence1 const &seq1) const
size_t end[2]
end[i] points one after the end of the matched part of sequence i.
Definition: musaline.hpp:71
Alignment global_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment end_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Definition: musaline.hpp:25
LinearAligner(CostCalculator ccal=CostCalculator())
Constructor.
Definition: musaline.hpp:206
void set_cost_calculator(CostCalculator ccal)
Set a different CostCalculator object.
Definition: musaline.hpp:336
Alignment partial_align(Sequence0 const &seq0, Sequence1 const &seq1) const
No requirement for start and end.
Alignment cut_one_end_off_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Alignment inside_align(Sequence0 const &seq0, Sequence1 const &seq1) const
CostCalculator const & get_cost_calculator() const
Get a const reference to the current CostCalculator object.
Definition: musaline.hpp:570
Alignment partial_align(Sequence0 const &seq0, Sequence1 const &seq1) const
No requirement for start and end.
std::vector< Match > matches
This vector holds details of the parts of seq0 and seq1 that are matched with each other...
Definition: musaline.hpp:76
Alignment cut_one_begin_off_align(Sequence0 const &seq0, Sequence1 const &seq1) const
Definition: musaline.hpp:37
Alignment inside_align(Sequence0 const &seq0, Sequence1 const &seq1) const