: m_bioseq_CI(entry_h, params.mol_filter, params.level_filter),
59 if( m_Params.max_num_gaps_per_seq < 1 ||
60m_Params.max_num_seqs < 1)
65 switch( m_Params.mol_filter ) {
73 "for mol_filter. This value was given: " 74<<
static_cast<int>(m_Params.mol_filter) );
163pos_to_try = out_pos + out_len;
193 const TSeqPospos_to_start_looking,
195 TSeqPos& out_len_of_gap )
const 197 TSeqPoscurr_pos = pos_to_start_looking;
207 for( ; curr_pos < bioseq_len; ++curr_pos ) {
209 if( residue == gap_residue ) {
213out_pos_of_gap = curr_pos;
218 while( curr_pos < bioseq_len && ! bDone ) {
225curr_pos = pos_after_end_of_segment;
227 for( ; curr_pos < pos_after_end_of_segment; ++curr_pos) {
228 if( seqvec[curr_pos] != gap_residue ) {
230out_len_of_gap = (curr_pos - out_pos_of_gap);
237 "This segment type is not supported in CBioseqGaps_CI " 238 "at this time: "<<
static_cast<int>(eSegmentType) );
242out_len_of_gap = (curr_pos - out_pos_of_gap);
This iterates over the runs of Ns of each sequence.
Include a standard set of the NCBI C++ Toolkit most basic headers.
unsigned int TSeqPos
Type for sequence locations and lengths.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
#define NCBI_USER_THROW(message)
Throw a quick-and-dirty runtime exception of type 'CException' with the given error message and error...
#define NCBI_USER_THROW_FMT(message)
Throw a "user exception" with message processed as output to ostream.
TSeqPos length
the length of the current gap
size_t num_seqs_seen_so_far
This indicates how many sequences we've seen so far, including the one we're currently on.
CBioseq_CI m_bioseq_CI
This points to the bioseq we're currently on.
SCurrentGapInfo m_infoOnCurrentGap
This indicates information about the gap we're currently on.
TSeqPos max_num_seqs
We only return gaps on up to this many sequences.
EFindNext
This indicates what happened when we tried to run x_FindNextGapOnBioseq.
Params m_Params
This holds the params the caller gave when this object was initially created.
virtual const SCurrentGapInfo & x_GetCurrent(void) const
This gives info on the gap we're currently on.
TSeqPos max_num_gaps_per_seq
We only return up to this many gaps for each sequence.
virtual void x_NextBioseq(void)
This advances m_bioseq_CI although it has extra logic to terminate m_bioseq_CI if we've exceeded the ...
TSeqPos start_pos
the 0-based position at which the current gap starts on the current sequence.
virtual void x_Next(void)
This moves this iterator to the next relevant gap.
virtual EFindNext x_FindNextGapOnBioseq(const CBioseq_Handle &bioseq_h, const TSeqPos pos_to_start_looking, TSeqPos &out_pos_of_gap, TSeqPos &out_len_of_gap) const
This finds the next gap on the bioseq, starting at given pos.
CSeq_id_Handle seq_id
The seq-id that this gap is on.
size_t num_gaps_seen_so_far_on_this_seq
how many gaps we've seen so far on this sequence.
TSeqPos max_gap_len_to_ignore
We completely ignore any gaps we find that have this number of bases or fewer.
@ eFindNext_Found
Another relevant gap was found, and the output parameters are filled in to represent information abou...
@ eFindNext_NotFound
No more relevant gaps were found on this bioseq.
CSeq_id_Handle GetAccessSeq_id_Handle(void) const
Get any CSeq_id_Handle handle that can be used to access this bioseq Use GetSeq_id_Handle() if it's n...
CScope & GetScope(void) const
Get scope this handle belongs to.
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
TSeqPos GetEndPosition(void) const
return end position of current segment in sequence (exclusive)
CSeqMap::ESegmentType GetType(void) const
const CSeqMap & GetSeqMap(void) const
CSeqMap_CI FindSegment(TSeqPos pos, CScope *scope) const
Find segment containing the position.
TResidue GetGapChar(ECaseConversion case_cvt=eCaseConversion_none) const
Return gap symbol corresponding to the selected coding.
@ eSeqData
real sequence data
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
@ eMol_not_set
> cdna = rna
@ eMol_na
just a nucleic acid
The params that control the behavior of CBioseqGaps_CI.
This indicates the state of the iterator right now.
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