1 #ifndef OBJECTS_ALNMGR___ALNMAP__HPP
2 #define OBJECTS_ALNMGR___ALNMAP__HPP
53 fNotAlignedToSeqOnAnchor = 0x0002,
54 fInsert = fSeq | fNotAlignedToSeqOnAnchor,
55 fUnalignedOnRight = 0x0004,
56 fUnalignedOnLeft = 0x0008,
57 fNoSeqOnRight = 0x0010,
58 fNoSeqOnLeft = 0x0020,
62 fUnalignedOnRightOnAnchor = 0x0200,
63 fUnalignedOnLeftOnAnchor = 0x0400,
78 fIgnoreUnaligned = 0x0001,
85 fInsertSameAsSeq = 0x0002,
86 fDeletionSameAsGap = 0x0004,
87 fIgnoreAnchor = fInsertSameAsSeq | fDeletionSameAsGap,
89 fChunkSameAsSeg = 0x0010,
91 fSkipUnalignedGaps = 0x0020,
92 fSkipDeletions = 0x0040,
93 fSkipAllGaps = fSkipUnalignedGaps | fSkipDeletions,
94 fSkipInserts = 0x0080,
96 fSeqOnly = fSkipAllGaps | fSkipInserts,
97 fInsertsOnly = fSkipAllGaps | fSkipAlnSeq,
98 fAlnSegsOnly = fSkipInserts | fSkipUnalignedGaps,
102 fDoNotTruncateSegs = 0x0200,
108 fAddUnalignedChunks = 0x0400
131 ESegmentTrimFlag seg_flag = eSegment_Trim);
140 TNumseg GetNumSegs(
void)
const;
141 TDim GetNumRows(
void)
const;
147 bool IsPositiveStrand(TNumrow
row)
const;
148 bool IsNegativeStrand(TNumrow
row)
const;
149 int StrandSign (TNumrow
row)
const;
152 int GetWidth (TNumrow
row)
const;
157 TSignedRange GetSeqAlnRange(TNumrow
row)
const;
165 TSignedRange GetRange (TNumrow
row, TNumseg seg,
int offset = 0)
const;
168 TSegTypeFlags GetSegType(TNumrow
row, TNumseg seg,
int offset = 0)
const;
170 TSegTypeFlags GetTypeAtAlnPos(TNumrow
row,
TSeqPos aln_pos)
const;
172 static bool IsTypeInsert(TSegTypeFlags
type);
175 TSeqPos GetAlnStart(TNumseg seg)
const;
176 TSeqPos GetAlnStop (TNumseg seg)
const;
178 TSeqPos GetAlnStop (
void)
const;
180 bool IsSetAnchor(
void)
const;
181 TNumrow GetAnchor (
void)
const;
182 void SetAnchor (TNumrow anchor);
183 void UnsetAnchor(
void);
194 TNumseg GetSeg (
TSeqPos aln_pos)
const;
197 TNumseg GetRawSeg (TNumrow
row,
TSeqPos seq_pos,
198 ESearchDirection dir =
eNone,
199 bool try_reverse_dir =
true)
const;
203 ESearchDirection dir =
eNone,
204 bool try_reverse_dir =
true)
const;
208 ESearchDirection dir =
eNone,
209 bool try_reverse_dir =
true)
const;
213 ESearchDirection dir =
eNone,
214 bool try_reverse_dir =
true)
const;
220 void GetResidueIndexMap (TNumrow row0,
223 vector<TSignedSeqPos>&
result,
232 void x_GetChunks (CAlnChunkVec * vec,
236 TGetChunkFlags
flags)
const;
242 TGetChunkFlags
flags = fAlnSegsOnly)
const;
245 TGetChunkFlags
flags = fAlnSegsOnly)
const;
261 #if defined(NCBI_COMPILER_MSVC) || defined(NCBI_COMPILER_ANY_CLANG)
263 #elif defined(NCBI_COMPILER_WORKSHOP) && NCBI_COMPILER_VERSION >= 550
304 bool IsGap(
void)
const {
return m_SeqRange.GetFrom() < 0; }
325 : m_AlnSeg(seg), m_Offset(
offset) { }
344 void x_CreateAlnStarts (
void);
360 bool try_reverse_dir)
const;
397 void CsvTable(
char delim =
',');
407 void PrintSeqPos(
TSeqPos pos)
const;
430 m_NumRows(ds.GetDim()),
431 m_NumSegs(ds.GetNumseg()),
433 m_Starts(ds.GetStarts()),
434 m_Lens(ds.GetLens()),
435 m_Strands(ds.GetStrands()),
436 m_Scores(ds.GetScores()),
437 m_Widths(ds.GetWidths()),
449 m_NumRows(ds.GetDim()),
450 m_NumSegs(ds.GetNumseg()),
452 m_Starts(ds.GetStarts()),
453 m_Lens(ds.GetLens()),
454 m_Strands(ds.GetStrands()),
455 m_Scores(ds.GetScores()),
456 m_Widths(ds.GetWidths()),
638 return ((start > -1) ?
const CAlnMap::TNumrow m_NumRows
const string & GetId(CAlnMap::TNumrow row) const
Fasta style Ids.
CAlnChunkVec(const CAlnMap &aln_map, TNumrow row)
vector< TNumseg > m_StartSegs
vector< TNumseg > m_StopSegs
TNumchunk size(void) const
const TSignedRange & GetRange(void) const
const TSignedRange & GetAlnRange(void) const
TSegTypeFlags GetType(void) const
TSignedRange & SetRange(void)
TSegTypeFlags m_TypeFlags
TSignedRange & SetAlnRange(void)
CAlnChunk & SetType(TSegTypeFlags type_flags)
TNumseg GetAlnSeg(void) const
int GetOffset(void) const
CNumSegWithOffset(TNumseg seg, int offset=0)
TSignedSeqPos GetStop(TNumrow row, TNumseg seg, int offset=0) const
void x_GetChunks(CAlnChunkVec *vec, TNumrow row, TNumseg left_seg, TNumseg right_seg, TGetChunkFlags flags) const
TRawSegTypes * m_RawSegTypes
TSeqPos GetSeqLen(TNumrow row, TNumseg seg, int offset=0) const
const CDense_seg::TScores & m_Scores
bool IsSetAnchor(void) const
list< TSeqPos > TSeqPosList
int GetWidth(TNumrow row) const
CRef< CAlnChunkVec > GetSeqChunks(TNumrow row, const TSignedRange &range, TGetChunkFlags flags=fAlnSegsOnly) const
const TNumseg & x_GetSeqLeftSeg(TNumrow row) const
const CDense_seg::TStarts & m_Starts
TSegTypeFlags GetSegType(TNumrow row, TNumseg seg, int offset=0) const
CNumSegWithOffset x_GetSegFromRawSeg(TNumseg seg) const
TSeqPos x_GetLen(TNumrow row, TNumseg seg) const
TSignedSeqPos GetStart(TNumrow row, TNumseg seg, int offset=0) const
const CSeq_id & GetSeqId(TNumrow row) const
bool IsPositiveStrand(TNumrow row) const
const CDense_seg::TIds & m_Ids
TSegTypeFlags GetTypeAtAlnPos(TNumrow row, TSeqPos aln_pos) const
TNumseg GetSeg(TSeqPos aln_pos) const
TNumseg x_GetRawSegFromSeg(TNumseg seg) const
vector< CNumSegWithOffset > m_NumSegWithOffsets
TRawSegTypes & x_GetRawSegTypes() const
TSignedSeqPos GetSeqAlnStart(TNumrow row) const
TDim GetNumRows(void) const
bool IsNegativeStrand(TNumrow row) const
CRange< TSignedSeqPos > TSignedRange
void SetAnchor(TNumrow anchor)
TSignedRange GetSeqAlnRange(TNumrow row) const
CDense_seg::TStarts m_AlnStarts
vector< TNumseg > m_AlnSegIdx
void x_CreateAlnStarts(void)
vector< TNumseg > m_SeqLeftSegs
const CDense_seg::TStrands & m_Strands
CConstRef< CDense_seg > m_DS
const TNumseg & x_GetSeqRightSeg(TNumrow row) const
TSegTypeFlags x_GetRawSegType(TNumrow row, TNumseg seg, int hint_idx=-1) const
vector< TNumseg > m_SeqRightSegs
TRange GetSeqRange(TNumrow row) const
CAlnMap & operator=(const CAlnMap &value)
CRef< CAlnChunkVec > GetAlnChunks(TNumrow row, const TSignedRange &range, TGetChunkFlags flags=fAlnSegsOnly) const
unsigned int TSegTypeFlags
TNumrow GetAnchor(void) const
CAlnMap(const CAlnMap &value)
TSeqPos GetAlnStart(void) const
TSignedSeqPos x_GetRawStop(TNumrow row, TNumseg seg) const
TSeqPos GetLen(TNumseg seg, int offset=0) const
CDense_seg::TNumseg TNumseg
const CDense_seg::TWidths & m_Widths
const CDense_seg & GetDenseg(void) const
TSeqPos GetAlnStop(void) const
TSeqPos GetSeqStop(TNumrow row) const
TSignedRange GetRange(TNumrow row, TNumseg seg, int offset=0) const
int StrandSign(TNumrow row) const
TSignedSeqPos GetSeqAlnStop(TNumrow row) const
TNumseg GetNumSegs(void) const
TSeqPos GetSeqStart(TNumrow row) const
void x_SetRawSegTypes(TNumrow row) const
CAlnMap(const CDense_seg &ds)
static bool IsTypeInsert(TSegTypeFlags type)
TSignedSeqPos x_GetRawStart(TNumrow row, TNumseg seg) const
vector< TSegTypeFlags > TRawSegTypes
const CDense_seg::TLens & m_Lens
Alignment explorer interface.
ESearchDirection
Position search options.
std::ofstream out("events_result.xml")
main entry point for tests
static const struct type types[]
unsigned int TSeqPos
Type for sequence locations and lengths.
int TSignedSeqPos
Type for signed sequence position.
TSeqPos GetStop(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the stop of the location.
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
TSeqPos GetStart(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the start of the location.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
#define NCBI_XALNMGR_EXPORT
vector< ENa_strand > TStrands
vector< TSignedSeqPos > TStarts
vector< CRef< CSeq_id > > TIds
vector< CRef< CScore > > TScores
range(_Ty, _Ty) -> range< _Ty >
const GenericPointer< typename T::ValueType > T2 value
static bool GetIds(const T &d, set< string > &labels, const string name="", bool detect=false, bool found=false)
static bool GetSeqId(const T &d, set< string > &labels, const string name="", bool detect=false, bool found=false)
static Int4 GetSeqLen(DataBlkPtr entry)
#define row(bind, expected)