1 #ifndef GPIPE_COMMON___ALIGN_COMPARE__HPP
2 #define GPIPE_COMMON___ALIGN_COMPARE__HPP
59 enum EMode { e_Interval, e_Exon, e_Span, e_Intron, e_Full };
61 enum EMatchLevel {e_Equiv, e_Overlap, e_OverlapBetter, e_OverlapWorse, e_NoMatch};
121 int CompareGroup(
const SAlignment &o,
bool strict_only)
const;
123 void PopulateBoundariesMap()
const;
125 list< AutoPtr<SAlignment> > BreakOnBoundaries(
int row)
const;
134 bool ignore_not_present =
false,
137 const vector<string> &quality_scores = vector<string>(),
139 bool score_set_as_blacklist =
false,
140 double real_score_tolerance = 0,
142 bool ext_set_as_blacklist =
false,
148 , m_IgnoreNotPresent(ignore_not_present)
150 , m_DisambiguitingScores(scores)
151 , m_QualityScores(quality_scores)
152 , m_ScoreSet(score_set)
153 , m_ScoreSetAsBlacklist(score_set_as_blacklist)
154 , m_RealScoreTolerance(real_score_tolerance)
156 , m_ExtSetAsBlacklist(ext_set_as_blacklist)
157 , m_DistributiveScores(distributive_scores)
160 , m_CountSplitSet1(0)
161 , m_CountSplitSet2(0)
162 , m_CountEquivSet1(0)
163 , m_CountEquivSet2(0)
164 , m_CountOverlapSet1(0)
165 , m_CountOverlapSet2(0)
168 , m_CountEquivGroups(0)
169 , m_CountOverlapGroups(0)
170 , m_CountBasesSet1(0)
171 , m_CountBasesSet2(0)
172 , m_CountBasesEquivSet1(0)
173 , m_CountBasesEquivSet2(0)
174 , m_CountBasesOverlapSet1(0)
175 , m_CountBasesOverlapSet2(0)
176 , m_CountBasesOnlySet1(0)
177 , m_CountBasesOnlySet2(0)
183 return m_NextSet1Group.empty() && m_NextSet2Group.empty() &&
184 m_Set1.EndOfData() && m_Set2.EndOfData();
187 void PopulateBoundariesMap();
189 vector<const SAlignment *> NextGroup();
261 int x_DetermineNextGroupSet();
266 void x_GetCurrentGroup(
int set);
268 void x_SplitOnOverlaps(
int group,
int row);
size_t CountBasesEquivSet2() const
size_t CountEquivSet1() const
size_t CountOverlapSet1() const
size_t m_CountOverlapGroups
size_t CountOverlapSet2() const
size_t CountBasesOverlapSet2() const
map< string, double > TRealScoreSet
map< TSeqRange, TSeqRange > TAlignmentSpans
list< AutoPtr< SAlignment > > m_NextSet2Group
list< AutoPtr< SAlignment > > m_NextSet1Group
size_t CountSplitSet1() const
size_t m_CountBasesOverlapSet2
size_t CountOnlySet2() const
list< AutoPtr< SAlignment > > m_CurrentSet2Group
size_t m_CountBasesOnlySet2
pair< vector< string >, vector< string > > TDisambiguatingScoreList
size_t m_CountBasesEquivSet1
size_t CountBasesOverlapSet1() const
map< CSeq_id_Handle, set< TSeqPos > > m_BoundariesMap
size_t CountOnlySet1() const
size_t CountEquivSet2() const
size_t m_CountBasesEquivSet2
size_t m_CountOverlapSet1
size_t CountEquivGroups() const
double m_RealScoreTolerance
size_t CountBasesOnlySet2() const
size_t CountBasesOnlySet1() const
bool m_ScoreSetAsBlacklist
size_t CountBasesSet1() const
TDisambiguatingScoreList m_DisambiguitingScores
CAlignCompare(IAlignSource &set1, IAlignSource &set2, EMode mode=e_Interval, bool strict=false, bool ignore_not_present=false, ERowComparison row=e_Both, const TDisambiguatingScoreList &scores=TDisambiguatingScoreList(), const vector< string > &quality_scores=vector< string >(), const set< string > &score_set=set< string >(), bool score_set_as_blacklist=false, double real_score_tolerance=0, const set< string > &ext_set=set< string >(), bool ext_set_as_blacklist=false, const set< string > distributive_scores=set< string >())
size_t CountBasesEquivSet1() const
size_t m_CountBasesOverlapSet1
size_t CountOverlapGroups() const
list< AutoPtr< SAlignment > > m_CurrentSet1Group
pair< vector< int >, vector< int > > TDisambiguatingScoreValues
Optional list of disambiguiting scores; alignments can only be compared if they are equal in these sc...
size_t m_CountBasesOnlySet1
vector< string > m_QualityScores
set< string > m_DistributiveScores
size_t m_CountEquivGroups
map< string, CRef< CUser_object > > TExtSet
size_t CountSplitSet2() const
size_t m_CountOverlapSet2
size_t CountBasesSet2() const
map< string, int > TIntegerScoreSet
unsigned int TSeqPos
Type for sequence locations and lengths.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_XALGOALIGN_EXPORT
ENa_strand
strand of nucleic acid
#define row(bind, expected)
TDisambiguatingScoreValues scores
vector< const SAlignment * > matched_alignments
TRealScoreSet real_scores
vector< double > quality_scores
CAlignCompare & compare_object
ENa_strand subject_strand
TIntegerScoreSet integer_scores
CRangeCollection< TSeqPos > query_mismatches
CRangeCollection< TSeqPos > subject_mismatches