]> git.donarmstrong.com Git - bamtools.git/blob - BamWriter.h
json output
[bamtools.git] / BamWriter.h
1 // ***************************************************************************\r
2 // BamWriter.h (c) 2009 Michael Strömberg, Derek Barnett\r
3 // Marth Lab, Department of Biology, Boston College\r
4 // All rights reserved.\r
5 // ---------------------------------------------------------------------------\r
6 // Last modified: 8 December 2009 (DB)\r
7 // ---------------------------------------------------------------------------\r
8 // Uses BGZF routines were adapted from the bgzf.c code developed at the Broad\r
9 // Institute.\r
10 // ---------------------------------------------------------------------------\r
11 // Provides the basic functionality for producing BAM files\r
12 // ***************************************************************************\r
13 \r
14 #ifndef BAMWRITER_H\r
15 #define BAMWRITER_H\r
16 \r
17 // C++ includes\r
18 #include <string>\r
19 \r
20 // BamTools includes\r
21 #include "BamAux.h"\r
22 \r
23 namespace BamTools {\r
24 \r
25 class BamWriter {\r
26 \r
27     // constructor/destructor\r
28     public:\r
29         BamWriter(void);\r
30         ~BamWriter(void);\r
31 \r
32     // public interface\r
33     public:\r
34         // closes the alignment archive\r
35         void Close(void);\r
36         // opens the alignment archive\r
37         void Open(const std::string& filename, const std::string& samHeader, const BamTools::RefVector& referenceSequences);\r
38         // saves the alignment to the alignment archive\r
39         void SaveAlignment(const BamTools::BamAlignment& al);\r
40 \r
41     // private implementation\r
42     private:\r
43         struct BamWriterPrivate;\r
44         BamWriterPrivate* d;\r
45 };\r
46 \r
47 } // namespace BamTools\r
48 \r
49 #endif // BAMWRITER_H\r