<
classTAlnRng>
59 typenameTAlnRngColl::const_iterator subtrahend_it = subtrahend.
begin();
60 ITERATE(
typenameTAlnRngColl, minuend_it, minuend) {
70TAlnRngCollExt subtrahend_ext(subtrahend);
71subtrahend_ext.UpdateIndex();
73 typenameTAlnRngCollExt::const_iterator subtrahend_ext_it = subtrahend_ext.begin();
74TAlnRngCollExt diff_on_first_ext(difference_on_first);
75diff_on_first_ext.UpdateIndex();
76 ITERATE(
typenameTAlnRngCollExt, minuend_it, diff_on_first_ext) {
85 template<
classRange>
91 return r.GetFirstToOpen() <= pos;
95 returnpos <
r.GetFirstToOpen();
99 return r1.GetFirstToOpen() <=
r2.GetFirstToOpen();
103 return r->GetFirstToOpen() <= pos;
107 returnpos <
r->GetFirstToOpen();
111 return r1->GetFirstToOpen() <=
r2->GetFirstToOpen();
116 template<
classIter,
classT,
classCompare>
129 template<
classTAlnRng>
131 constTAlnRng& minuend,
140minuend.GetFirstFrom(),
143 if(r_it == subtrahend.
end()) {
144difference.
insert(minuend);
150trim = (r_it->
GetFirstFrom() <= minuend.GetFirstFrom());
161 if((
int)
r.GetLength() <= 0) {
165 if(r_it == subtrahend.
end()) {
186difference.
insert(tmp_r);
192 template<
classTAlnRng>
200 returnp.second->GetSecondTo() < pos;
205 returnpos < p.second->GetSecondTo();
210 returnp1.second->GetSecondTo() < p2.second->GetSecondTo();
215 template<
classTAlnRng>
217 constTAlnRng& minuend,
222 if(minuend.GetSecondFrom() < 0) {
223difference.
insert(minuend);
230subtrahend_ext.end(),
231minuend.GetSecondFrom(),
234 if(r_it == subtrahend_ext.end()) {
235difference.
insert(minuend);
241trim = (r_it->second->GetSecondFrom() <= minuend.GetSecondFrom());
250trim = r_it->second->GetSecondToOpen() -
r.GetSecondFrom();
252 if((
int)
r.GetLength() <= 0) {
256 if(r_it == subtrahend_ext.end()) {
264trim =
r.GetSecondToOpen() - r_it->second->GetSecondFrom();
277difference.
insert(tmp_r);
283 template<
classTAlnRng>
286rng.SetLength(rng.GetLength() - trim);
287rng.SetFirstFrom(rng.GetFirstFrom() + trim);
288 if(rng.IsDirect()) {
289rng.SetSecondFrom(rng.GetSecondFrom() + trim);
294 template<
classTAlnRng>
297 if(rng.IsReversed()) {
298rng.SetSecondFrom(rng.GetSecondFrom() + trim);
300rng.SetLength(rng.GetLength() - trim);
303 template<
classTAlnRng>
306rng.SetLength(rng.GetLength() - trim);
307rng.SetSecondFrom(rng.GetSecondFrom() + trim);
308 if(rng.IsDirect()) {
309rng.SetFirstFrom(rng.GetFirstFrom() + trim);
313 template<
classTAlnRng>
316 if(rng.IsReversed()) {
317rng.SetFirstFrom(rng.GetFirstFrom() + trim);
319rng.SetLength(rng.GetLength() - trim);
void TrimSecondTo(TAlnRng &rng, int trim)
void SubtractAlnRngCollections(const CAlignRangeCollection< TAlnRng > &minuend, const CAlignRangeCollection< TAlnRng > &subtrahend, CAlignRangeCollection< TAlnRng > &difference)
Subtract one range collection from another.
void TrimFirstFrom(TAlnRng &rng, int trim)
void TrimFirstTo(TAlnRng &rng, int trim)
void SubtractOnFirst(const TAlnRng &minuend, const CAlignRangeCollection< TAlnRng > &subtrahend, CAlignRangeCollection< TAlnRng > &difference, typename CAlignRangeCollection< TAlnRng >::const_iterator &r_it)
Iter scan_to_lower_bound(Iter first, Iter last, const T &value, Compare comp)
void SubtractOnSecond(const TAlnRng &minuend, const CAlignRangeCollExtender< CAlignRangeCollection< TAlnRng > > &subtrahend_ext, CAlignRangeCollection< TAlnRng > &difference, typename CAlignRangeCollExtender< CAlignRangeCollection< TAlnRng > >::const_iterator &r_it)
void TrimSecondFrom(TAlnRng &rng, int trim)
class CAlignRangeCollection<TAlignRange> represent a sorted collection of TAlignRange.
TAlignRangeVector::const_iterator const_iterator
int GetPolicyFlags() const
position_type GetFirstToOpen() const
position_type GetFirstFrom() const
const_iterator insert(const TAlignRange &r)
const_iterator end() const
const_iterator begin() const
Include a standard set of the NCBI C++ Toolkit most basic headers.
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
double value_type
The numeric datatype used by the parser.
const GenericPointer< typename T::ValueType > T2 value
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static const sljit_gpr r1
static const sljit_gpr r2
TAlnRng::position_type position_type
CAlignRangeCollExtender< CAlignRangeCollection< TAlnRng > >::TFrom2Range::value_type value_type
bool operator()(const value_type &p, position_type pos)
bool operator()(const Range &r1, const Range &r2)
bool operator()(const Range &r, position_type pos)
bool operator()(const Range *r1, const Range *r2)
Range::position_type position_type
bool operator()(const Range *r, position_type pos)
bool operator()(position_type pos, const Range *r)
bool operator()(position_type pos, const Range &r)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4