NCBI C++ ToolKit
seq_align_mapper.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef SEQ_ALIGN_MAPPER__HPP
2 #define SEQ_ALIGN_MAPPER__HPP
3 
4 /* $Id: seq_align_mapper.hpp 43774 2009-11-05 15:50:05Z grichenk $
5 * ===========================================================================
6 *
7 * PUBLIC DOMAIN NOTICE
8 * National Center for Biotechnology Information
9 *
10 * This software/database is a "United States Government Work" under the
11 * terms of the United States Copyright Act. It was written as part of
12 * the author's official duties as a United States Government employee and
13 * thus cannot be copyrighted. This software/database is freely available
14 * to the public for use. The National Library of Medicine and the U.S.
15 * Government have not placed any restriction on its use or reproduction.
16 *
17 * Although all reasonable efforts have been taken to ensure the accuracy
18 * and reliability of the software and data, the NLM and the U.S.
19 * Government do not and cannot warrant the performance or results that
20 * may be obtained by using this software or data. The NLM and the U.S.
21 * Government disclaim all warranties, express or implied, including
22 * warranties of performance, merchantability or fitness for any particular
23 * purpose.
24 *
25 * Please cite the author in any work or product based on this material.
26 *
27 * ===========================================================================
28 *
29 * Author: Aleksey Grichenko
30 *
31 * File Description:
32 * Alignment mapper
33 *
34 */
35 
42 #include <objmgr/scope.hpp>
43 
46 
47 
49 {
50 public:
51  CSeq_align_Mapper(const CSeq_align& align,
52  CSeq_loc_Mapper_Base& loc_mapper);
53 
54  ~CSeq_align_Mapper(void);
55 
56 protected:
57  virtual CSeq_align_Mapper_Base* CreateSubAlign(const CSeq_align& align);
58  virtual CSeq_align_Mapper_Base* CreateSubAlign(const CSpliced_seg& spliced,
59  const CSpliced_exon& exon);
60 
61 private:
66 
68 
69  // Used only to create sub-aligns
71 
72  void Convert(CSeq_loc_Conversion_Set& cvts);
73 
74  // Mapping through CSeq_loc_Conversion
75  void x_ConvertAlignCvt(CSeq_loc_Conversion_Set& cvts);
76  void x_ConvertRowCvt(CSeq_loc_Conversion& cvt,
77  size_t row);
78  void x_ConvertRowCvt(TIdMap& cvts,
79  size_t row);
80  CSeq_id_Handle x_ConvertSegmentCvt(TSegments::iterator& seg_it,
82  size_t row);
83  CSeq_id_Handle x_ConvertSegmentCvt(TSegments::iterator& seg_it,
84  TIdMap& id_map,
85  size_t row);
86 };
87 
88 
91 
92 #endif // SEQ_ALIGN_MAPPER__HPP
User-defined methods of the data storage class.
Class used to map seq-alignments.
CSeq_loc_Conversion_Set::TConvByIndex TConvByIndex
CSeq_loc_Conversion_Set::TIdMap TIdMap
CSeq_loc_Conversion_Set::TRange TRange
CSeq_loc_Conversion_Set::TRangeMap TRangeMap
friend class CSeq_align_Mapper
CSeq_loc_Mapper_Base –.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
#define NCBI_XOBJMGR_EXPORT
Definition: ncbi_export.h:1307
const value_slice::CValueConvert< value_slice::SRunTimeCP, FROM > Convert(const FROM &value)
Modified on Sat Dec 02 09:21:26 2023 by modify_doxy.py rev. 669887