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

Go to the SVN repository for this file.

1 #ifndef _ALN_SCANNER_HPP_
2 #define _ALN_SCANNER_HPP_
3 
4 /*
5  * $Id: aln_scanner.hpp 86227 2019-04-19 17:18:39Z foleyjp $
6  *
7  * ===========================================================================
8  *
9  * PUBLIC DOMAIN NOTICE
10  * National Center for Biotechnology Information
11  *
12  * This software/database is a "United States Government Work" under the
13  * terms of the United States Copyright Act. It was written as part of
14  * the author's official duties as a United States Government employee and
15  * thus cannot be copyrighted. This software/database is freely available
16  * to the public for use. The National Library of Medicine and the U.S.
17  * Government have not placed any restriction on its use or reproduction.
18  *
19  * Although all reasonable efforts have been taken to ensure the accuracy
20  * and reliability of the software and data, the NLM and the U.S.
21  * Government do not and cannot warrant the performance or results that
22  * may be obtained by using this software or data. The NLM and the U.S.
23  * Government disclaim all warranties, express or implied, including
24  * warranties of performance, merchantability or fitness for any particular
25  * purpose.
26  *
27  * Please cite the author in any work or product based on this material.
28  *
29  * ===========================================================================
30  *
31  * Authors: Frank Ludwig
32  *
33  */
34 #include <corelib/ncbistd.hpp>
35 
38 
39 class CLineInput;
40 class CSequenceInfo;
41 struct SAlignFileRaw;
42 
43 // ============================================================================
45  // ============================================================================
46 {
47 protected:
49 
50 public:
51  using TDeflines = vector<TLineInfo>;
52 
54 
55  virtual ~CAlnScanner() {};
56 
57  virtual void
60  CLineInput&,
62 
63 protected:
64 
65  enum class ESeqIdComparison {
66  eIdentical,
70  };
71 
72  virtual void
75  CLineInput&);
76 
77  virtual void
79  CSequenceInfo&);
80 
81  virtual void
83  const CSequenceInfo&);
84 
85  virtual void
87  SAlignmentFile& alignmentInfo);
88 
89  virtual void
91  const CSequenceInfo&,
92  const TLineInfo& seqId,
93  const vector<TLineInfo> seqData);
94 
97  const string& seqId,
98  TLineInfo& existingInfo);
99 
100  bool
102  const string& seqId,
103  int index);
104 
105  vector<TLineInfo> mSeqIds;
106  vector<vector<TLineInfo>> mSequences;
107  vector<TLineInfo> mDeflines;
108 };
109 
112 
113 #endif // _ALN_SCANNER_HPP_
struct SLineInfo SLineInfo
bool xSeqIdIsEqualToInfoAt(const string &seqId, int index)
virtual void xImportAlignmentData(CSequenceInfo &, CLineInput &)
Definition: aln_scanner.cpp:62
virtual void xExportAlignmentData(SAlignmentFile &alignmentInfo)
vector< TLineInfo > TDeflines
Definition: aln_scanner.hpp:51
vector< TLineInfo > mSeqIds
virtual void ProcessAlignmentFile(CSequenceInfo &, CLineInput &, SAlignmentFile &)
Definition: aln_scanner.cpp:48
vector< vector< TLineInfo > > mSequences
virtual void xAdjustSequenceInfo(CSequenceInfo &)
Definition: aln_scanner.cpp:75
SLineInfo TLineInfo
Definition: aln_scanner.hpp:48
virtual ~CAlnScanner()
Definition: aln_scanner.hpp:55
ESeqIdComparison xGetExistingSeqIdInfo(const string &seqId, TLineInfo &existingInfo)
virtual void xVerifyAlignmentData(const CSequenceInfo &)
Definition: aln_scanner.cpp:83
vector< TLineInfo > mDeflines
virtual void xVerifySingleSequenceData(const CSequenceInfo &, const TLineInfo &seqId, const vector< TLineInfo > seqData)
Include a standard set of the NCBI C++ Toolkit most basic headers.
#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
Modified on Fri Sep 20 14:57:59 2024 by modify_doxy.py rev. 669887