/usr/include/blasr/algorithms/anchoring/FindMaxInterval.hpp is in libblasr-dev 0~20151014+gitbe5d1bf-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | #ifndef _BLASR_FIND_MAX_INTERVAL_HPP_
#define _BLASR_FIND_MAX_INTERVAL_HPP_
#include <semaphore.h>
#include <math.h>
#include <fstream>
#include <iostream>
#include "algorithms/anchoring/LongestIncreasingSubsequence.hpp"
#include "algorithms/anchoring/GlobalChain.hpp"
#include "algorithms/anchoring/BasicEndpoint.hpp"
#include "datastructures/anchoring/WeightedInterval.hpp"
#include "datastructures/anchoring/MatchPos.hpp"
#include "datastructures/anchoring/ClusterList.hpp"
#include "statistics/VarianceAccumulator.hpp"
unsigned int NumRemainingBases(DNALength curPos, DNALength intervalLength);
class IntervalSearchParameters {
public:
bool advanceHalf;
int globalChainType;
float maxPValue;
float aboveCategoryPValue;
bool warp;
bool fastMaxInterval;
bool aggressiveIntervalCut;
int verbosity;
float ddPValueThreshold;
IntervalSearchParameters();
};
template<typename T_Sequence, typename T_AnchorList>
class DefaultWeightFunction {
public:
float operator()(T_Sequence &text, T_Sequence &read,
T_AnchorList matchPosList);
};
template<typename T_Pos>
class MatchPosQueryOrderFunctor {
public:
int operator()(T_Pos &pos);
};
template<typename T_MatchList>
void PrintLIS(T_MatchList &matchList, DNALength curPos,
DNALength curGenomePos, DNALength nextGenomePos, DNALength clp,
DNALength cle);
template<typename T_MatchList, typename T_SequenceDB>
void FilterMatchesAsLIMSTemplateSquare(T_MatchList &matches,
DNALength queryLength, DNALength limsTemplateLength,
T_SequenceDB &seqDB);
template<typename T_MatchList, typename T_SequenceBoundaryDB>
void AdvanceIndexToPastInterval(T_MatchList &pos, DNALength nPos,
DNALength intervalLength, DNALength contigLength,
T_SequenceBoundaryDB &SeqBoundary,
DNALength startIndex, DNALength startIntervalBoundary,
DNALength &index, DNALength &indexIntervalBoundary);
template<typename T_MatchList>
int RemoveZeroLengthAnchors(T_MatchList &matchList);
template<typename T_MatchList>
int RemoveOverlappingAnchors(T_MatchList &matchList);
template<typename T_MatchList>
int SumAnchors(T_MatchList &pos, int start, int end);
template<typename T_MatchList,
typename T_SequenceBoundaryDB>
void StoreLargestIntervals(
T_MatchList &pos,
// End search for intervals at boundary positions
// stored in seqBoundaries
T_SequenceBoundaryDB & ContigStartPos,
// parameters
// How many values to search through for a max set.
DNALength intervalLength,
// How many sets to keep track of
int minSize,
vector<DNALength> &start,
vector<DNALength> &end);
template<typename T_MatchList,
typename T_PValueFunction,
typename T_WeightFunction,
typename T_SequenceBoundaryDB,
typename T_ReferenceSequence,
typename T_Sequence>
int FindMaxIncreasingInterval(
// Input
// readDir is used to indicate if the interval that is being stored is
// in the forward or reverse strand. This is important later when
// refining alignments so that the correct sequence is aligned back
// to the reference.
int readDir,
T_MatchList &pos,
// How many values to search through for a max set.
DNALength intervalLength,
// How many sets to keep track of
VectorIndex nBest,
// End search for intervals at boundary positions
// stored in seqBoundaries
T_SequenceBoundaryDB & ContigStartPos,
// First rand intervals by their p-value
T_PValueFunction &MatchPValueFunction,
// When ranking intervals, sum over weights determined by MatchWeightFunction
T_WeightFunction &MatchWeightFunction,
// Output.
// The increasing interval coordinates,
// in order by queue weight.
WeightedIntervalSet &intervalQueue,
T_ReferenceSequence &reference,
T_Sequence &query,
IntervalSearchParameters ¶ms,
std::vector<BasicEndpoint<ChainedMatchPos> > *chainEndpointBuffer,
ClusterList &clusterList,
VarianceAccumulator<float> &accumPValue,
VarianceAccumulator<float> &accumWeight,
VarianceAccumulator<float> &accumNumAnchorBases,
const char *titlePtr=NULL);
template<typename T_MatchList,
typename T_PValueFunction,
typename T_WeightFunction,
typename T_SequenceBoundaryDB,
typename T_ReferenceSequence,
typename T_Sequence>
int FastFindMaxIncreasingInterval(
int readDir,
T_MatchList &pos,
DNALength intervalLength,
VectorIndex nBest,
T_SequenceBoundaryDB & ContigStartPos,
T_PValueFunction &MatchPValueFunction,
T_WeightFunction &MatchWeightFunction,
WeightedIntervalSet &intervalQueue,
T_ReferenceSequence &reference,
T_Sequence &query,
IntervalSearchParameters ¶ms,
std::vector<BasicEndpoint<ChainedMatchPos> > *chainEndpointBuffer,
ClusterList &clusterList,
VarianceAccumulator<float> &accumPValue,
VarianceAccumulator<float> &accumWeight);
template<typename T_MatchList,
typename T_PValueFunction,
typename T_WeightFunction,
typename T_SequenceBoundaryDB,
typename T_ReferenceSequence,
typename T_Sequence>
int ExhaustiveFindMaxIncreasingInterval(
int readDir,
T_MatchList &pos,
DNALength intervalLength,
VectorIndex nBest,
T_SequenceBoundaryDB & ContigStartPos,
T_PValueFunction &MatchPValueFunction,
T_WeightFunction &MatchWeightFunction,
WeightedIntervalSet &intervalQueue,
T_ReferenceSequence &reference,
T_Sequence &query,
IntervalSearchParameters ¶ms,
std::vector<BasicEndpoint<ChainedMatchPos> > *chainEndpointBuffer,
ClusterList &clusterList,
VarianceAccumulator<float> &accumPValue,
VarianceAccumulator<float> &accumWeight);
#include "algorithms/anchoring/FindMaxIntervalImpl.hpp"
#endif
|