⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alnmap.hpp

📁 ncbi源码
💻 HPP
📖 第 1 页 / 共 2 页
字号:
      m_Scores(ds.GetScores()),      m_Widths(ds.GetWidths()),      m_Anchor(-1),      m_RawSegTypes(0){    x_Init();    SetAnchor(anchor);}inlineCAlnMap::~CAlnMap(void){    if (m_RawSegTypes) {        delete m_RawSegTypes;    }}inlineconst CDense_seg& CAlnMap::GetDenseg() const{    return *m_DS;}inline TSeqPos CAlnMap::GetAlnStart(TNumseg seg) const{    return m_AlnStarts[seg];}inlineTSeqPos CAlnMap::GetAlnStop(TNumseg seg) const{    return m_AlnStarts[seg] + m_Lens[x_GetRawSegFromSeg(seg)] - 1;}inlineTSeqPos CAlnMap::GetAlnStop(void) const{    return GetAlnStop(GetNumSegs() - 1);}inline CAlnMap::TSegTypeFlags CAlnMap::GetSegType(TNumrow row, TNumseg seg, int offset) const{    return x_GetRawSegType(row, x_GetRawSegFromSeg(seg) + offset);}inlineCAlnMap::TNumseg CAlnMap::GetNumSegs(void) const{    return IsSetAnchor() ? m_AlnSegIdx.size() : m_NumSegs;}inlineCAlnMap::TDim CAlnMap::GetNumRows(void) const{    return m_NumRows;}inlinebool CAlnMap::IsSetAnchor(void) const{    return m_Anchor >= 0;}inlineCAlnMap::TNumrow CAlnMap::GetAnchor(void) const{    return m_Anchor;}inlineCAlnMap::CNumSegWithOffsetCAlnMap::x_GetSegFromRawSeg(TNumseg raw_seg) const{    return IsSetAnchor() ? m_NumSegWithOffsets[raw_seg] : raw_seg;}inlineCAlnMap::TNumsegCAlnMap::x_GetRawSegFromSeg(TNumseg seg) const{    return IsSetAnchor() ? m_AlnSegIdx[seg] : seg;}inlineTSignedSeqPos CAlnMap::x_GetRawStart(TNumrow row, TNumseg seg) const{    return m_Starts[seg * m_NumRows + row];}inlineint CAlnMap::GetWidth(TNumrow row) const{    return        (m_Widths.size() == (size_t) m_NumRows) ? m_Widths[row] : 1;}inlineTSeqPos CAlnMap::x_GetLen(TNumrow row, TNumseg seg) const{    return m_Lens[seg] * GetWidth(row);}inlineTSignedSeqPos CAlnMap::x_GetRawStop(TNumrow row, TNumseg seg) const{    TSignedSeqPos start = x_GetRawStart(row, seg);    return ((start > -1) ? (start + (TSignedSeqPos)x_GetLen(row, seg) - 1)            : -1);}inlineint CAlnMap::StrandSign(TNumrow row) const{    return IsPositiveStrand(row) ? 1 : -1;}inlinebool CAlnMap::IsPositiveStrand(TNumrow row) const{    return (m_Strands.empty()  ||  m_Strands[row] != eNa_strand_minus);}inlinebool CAlnMap::IsNegativeStrand(TNumrow row) const{    return ! IsPositiveStrand(row);}inlineTSignedSeqPos CAlnMap::GetStart(TNumrow row, TNumseg seg, int offset) const{    return m_Starts        [(x_GetRawSegFromSeg(seg) + offset) * m_NumRows + row];}inlineTSeqPos CAlnMap::GetLen(TNumseg seg, int offset) const{    return m_Lens[x_GetRawSegFromSeg(seg) + offset];}inlineTSeqPos CAlnMap::GetSeqLen(TNumrow row, TNumseg seg, int offset) const{    return x_GetLen(row, x_GetRawSegFromSeg(seg) + offset);}inlineTSignedSeqPos CAlnMap::GetStop(TNumrow row, TNumseg seg, int offset) const{    TSignedSeqPos start = GetStart(row, seg, offset);    return ((start > -1) ?             (start + (TSignedSeqPos)GetSeqLen(row, seg, offset) - 1) :            -1);}inlineconst CSeq_id& CAlnMap::GetSeqId(TNumrow row) const{    return *(m_Ids[row]);}inline CAlnMap::TSignedRangeCAlnMap::GetRange(TNumrow row, TNumseg seg, int offset) const{    TSignedSeqPos start = GetStart(row, seg, offset);    if (start > -1) {        return TSignedRange(start, start + GetSeqLen(row, seg, offset) - 1);    } else {        return TSignedRange(-1, -1);    }}inlineTSeqPos CAlnMap::GetSeqStart(TNumrow row) const{    return         m_Starts[(IsPositiveStrand(row) ?                  x_GetSeqLeftSeg(row) :                  x_GetSeqRightSeg(row)) * m_NumRows + row];}inlineTSeqPos CAlnMap::GetSeqStop(TNumrow row) const{    const TNumseg& seg = IsPositiveStrand(row) ?        x_GetSeqRightSeg(row) : x_GetSeqLeftSeg(row);    return m_Starts[seg * m_NumRows + row] + x_GetLen(row, seg) - 1;}inlineCAlnMap::TRange CAlnMap::GetSeqRange(TNumrow row) const{    return TRange(GetSeqStart(row), GetSeqStop(row));}inlineCAlnMap::TSignedRange CAlnMap::GetSeqAlnRange(TNumrow row) const{    return TSignedRange(GetSeqAlnStart(row), GetSeqAlnStop(row));}inlineTSeqPos CAlnMap::GetInsertedSeqLengthOnRight(TNumrow row, TNumseg seg) const{    return (IsPositiveStrand(row) ?            GetStop(row, seg+1) - GetStart(row, seg) :            GetStart(row, seg+1) - GetStop(row, seg));}inline CAlnMap::TSegTypeFlags CAlnMap::x_GetRawSegType(TNumrow row, TNumseg seg) const{    TSegTypeFlags type;    if (m_RawSegTypes &&        (type = (*m_RawSegTypes)[row + m_NumRows * seg]) & fTypeIsSet) {        return type & (~ fTypeIsSet);    } else {        return x_SetRawSegType(row, seg);    }}inlinebool CAlnMap::IsTypeInsert(TSegTypeFlags type){    return (type & fInsert) == fInsert;}inline CAlnMap::TSegTypeFlags CAlnMap::GetTypeAtAlnPos(TNumrow row, TSeqPos aln_pos) const{    return GetSegType(row, GetSeg(aln_pos));}///////////////////////////////////////////////////////////////////////////// end of inline methods /////////////////////////////////////////////////////////////////////////////END_objects_SCOPE // namespace ncbi::objects::END_NCBI_SCOPE/** ===========================================================================** $Log: alnmap.hpp,v $* Revision 1000.1  2004/04/12 17:34:39  gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.35** Revision 1.35  2004/03/03 20:33:27  todorov* +comments** Revision 1.34  2004/03/03 19:39:43  todorov* +GetResidueIndexMap** Revision 1.33  2004/01/21 20:59:42  todorov* fDoNotTruncate -> fDoNotTruncateSegs; +comments** Revision 1.32  2004/01/21 20:53:44  todorov* EGetChunkFlags += fDoNotTruncate** Revision 1.31  2003/12/31 17:26:18  todorov* +fIgnoreAnchore usage comment** Revision 1.30  2003/09/18 23:05:11  todorov* Optimized GetSeqAln{Start,Stop}** Revision 1.29  2003/09/09 19:42:37  dicuccio* Fixed thinko in GetWidth() - properly order ternary operator** Revision 1.28  2003/09/08 19:49:19  todorov* signed vs unsigned warnings fixed** Revision 1.27  2003/08/29 18:17:17  dicuccio* Minor change in specification of default parameters - rely only on prameters,* not on member variables** Revision 1.26  2003/08/25 16:35:06  todorov* exposed GetWidth** Revision 1.25  2003/08/20 14:35:14  todorov* Support for NA2AA Densegs** Revision 1.24  2003/07/17 22:46:56  todorov* name change +TSeqPosList** Revision 1.23  2003/07/08 20:26:28  todorov* Created seq end segments cache** Revision 1.22  2003/06/05 19:03:29  todorov* Added const refs to Dense-seg members as a speed optimization** Revision 1.21  2003/06/02 16:01:38  dicuccio* Rearranged include/objects/ subtree.  This includes the following shifts:*     - include/objects/alnmgr --> include/objtools/alnmgr*     - include/objects/cddalignview --> include/objtools/cddalignview*     - include/objects/flat --> include/objtools/flat*     - include/objects/objmgr/ --> include/objmgr/*     - include/objects/util/ --> include/objmgr/util/*     - include/objects/validator --> include/objtools/validator** Revision 1.20  2003/05/23 18:10:38  todorov* +fChunkSameAsSeg** Revision 1.19  2003/03/20 16:37:14  todorov* +fIgnoreGaps for GetXXXChunksalnmap.cpp** Revision 1.18  2003/03/07 17:30:14  todorov* + ESearchDirection dir, bool try_reverse_dir for GetAlnPosFromSeqPos** Revision 1.17  2003/03/04 16:18:58  todorov* Added advance search options for GetRawSeg** Revision 1.16  2003/01/15 18:48:36  todorov* Added GetSeqChunks to be used with native seq range** Revision 1.15  2003/01/09 22:08:11  todorov* Changed the default TGetChunkFlags for consistency** Revision 1.14  2003/01/07 23:02:48  todorov* Fixed EGetChunkFlags** Revision 1.13  2002/12/26 12:38:08  dicuccio* Added Win32 export specifiers** Revision 1.12  2002/10/21 19:14:36  todorov* reworked aln chunks: now supporting more types; added chunk aln coords** Revision 1.10  2002/10/04 17:05:31  todorov* Added GetTypeAtAlnPos method** Revision 1.8  2002/09/27 16:58:21  todorov* changed order of params for GetSeqPosFrom{Seq,Aln}Pos** Revision 1.7  2002/09/27 02:26:32  ucko* Remove static from the definition of CAlnMap::IsTypeInsert, as* (like virtual) it should appear only on the initial declaration.** Revision 1.6  2002/09/26 18:43:11  todorov* Added a static method for convenient check for an insert** Revision 1.5  2002/09/26 17:40:42  todorov* Changed flag fAlignedToSeqOnAnchor to fNotAlignedToSeqOnAnchor. This proved more convenient.** Revision 1.4  2002/09/25 18:16:26  dicuccio* Reworked computation of consensus sequence - this is now stored directly* in the underlying CDense_seg* Added exception class; currently used only on access of non-existent* consensus.** Revision 1.3  2002/09/05 19:31:18  dicuccio* - added ability to reference a consensus sequence for a given alignment* - added caching of CSeqVector (big performance win)* - many small bugs fixed** Revision 1.2  2002/08/23 16:05:09  ucko* Kludge friendship for MSVC.  (Sigh.)** Revision 1.1  2002/08/23 14:43:50  ucko* Add the new C++ alignment manager to the public tree (thanks, Kamen!)*** ===========================================================================*/#endif // OBJECTS_ALNMGR___ALNMAP__HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -