1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#ifndef _BLASR_LISPVALUE_WEIGHTOR_HPP_
#define _BLASR_LISPVALUE_WEIGHTOR_HPP_
#include <alignment/algorithms/anchoring/LISPValue.hpp>
#include <alignment/tuples/TupleMetrics.hpp>
template <typename T_RefSequence, typename T_MatchList>
class LISSumOfLogPWeightor
{
public:
DNALength genomeLength;
LISSumOfLogPWeightor(T_RefSequence &targetGenome);
float ComputePValue(T_MatchList &matchList, int &noOvpLisNBases, int &noOvpLisSize);
float operator()(T_MatchList &matchList);
};
template <typename T_RefSequence, typename T_Tuple, typename T_MatchList>
class LISSMatchFrequencyPValueWeightor
{
public:
T_RefSequence target;
LISSMatchFrequencyPValueWeightor(T_RefSequence &_target);
float ComputePValue(T_MatchList &lis, int &noOvpLisNBases, int &noOvpLisSize);
float operator()(T_MatchList &lis);
};
template <typename T_RefSequence, typename T_Tuple, typename T_MatchList>
class LISPValueWeightor
{
public:
//
// All of these must be initialized prior to
// computing weights (running the functor).
//
FASTASequence query;
T_RefSequence target;
TupleMetrics tm;
TupleCountTable<T_RefSequence, T_Tuple> *ct;
LISPValueWeightor(FASTASequence &_query, T_RefSequence &_target, TupleMetrics _tm,
TupleCountTable<T_RefSequence, T_Tuple> *_ct);
float ComputePValue(T_MatchList &matchList, int &noOvpLisNBases, int &noOvpLisSize);
float operator()(T_MatchList &matchList);
};
#include "LISPValueWeightorImpl.hpp"
#endif
|