annotate spp/src/BamWriter_p.h @ 6:ce08b0efa3fd draft

Uploaded
author zzhou
date Tue, 27 Nov 2012 16:11:40 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
1 // ***************************************************************************
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
2 // BamWriter_p.h (c) 2010 Derek Barnett
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
3 // Marth Lab, Department of Biology, Boston College
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
4 // All rights reserved.
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
5 // ---------------------------------------------------------------------------
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
6 // Last modified: 19 November 2010 (DB)
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
7 // ---------------------------------------------------------------------------
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
8 // Provides the basic functionality for producing BAM files
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
9 // ***************************************************************************
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
10
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
11 #ifndef BAMWRITER_P_H
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
12 #define BAMWRITER_P_H
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
13
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
14 // -------------
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
15 // W A R N I N G
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
16 // -------------
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
17 //
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
18 // This file is not part of the BamTools API. It exists purely as an
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
19 // implementation detail. This header file may change from version to
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
20 // version without notice, or even be removed.
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
21 //
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
22 // We mean it.
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
23
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
24 #include <BamAux.h>
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
25 #include <BGZF.h>
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
26 #include <string>
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
27 #include <vector>
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
28
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
29 namespace BamTools {
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
30 namespace Internal {
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
31
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
32 class BamWriterPrivate {
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
33
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
34 // ctor & dtor
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
35 public:
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
36 BamWriterPrivate(void);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
37 ~BamWriterPrivate(void);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
38
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
39 // "public" interface to BamWriter
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
40 public:
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
41 void Close(void);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
42 bool Open(const std::string& filename,
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
43 const std::string& samHeader,
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
44 const BamTools::RefVector& referenceSequences,
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
45 bool isWriteUncompressed);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
46 void SaveAlignment(const BamAlignment& al);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
47
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
48 // internal methods
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
49 public:
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
50 const unsigned int CalculateMinimumBin(const int begin, int end) const;
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
51 void CreatePackedCigar(const std::vector<BamTools::CigarOp>& cigarOperations, std::string& packedCigar);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
52 void EncodeQuerySequence(const std::string& query, std::string& encodedQuery);
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
53
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
54 // data members
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
55 public:
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
56 BgzfData mBGZF;
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
57 bool IsBigEndian;
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
58 };
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
59
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
60 } // namespace Internal
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
61 } // namespace BamTools
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
62
ce08b0efa3fd Uploaded
zzhou
parents:
diff changeset
63 #endif // BAMWRITER_P_H