]> git.donarmstrong.com Git - bamtools.git/blob - src/api/BamWriter.h
Update to BamTools API 0.9.2 with exposure of SamHeader object from BamReader and...
[bamtools.git] / src / api / 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: 11 January 2011 (DB)\r
7 // ---------------------------------------------------------------------------\r
8 // Provides the basic functionality for producing BAM files\r
9 // ***************************************************************************\r
10 \r
11 #ifndef BAMWRITER_H\r
12 #define BAMWRITER_H\r
13 \r
14 #include <api/api_global.h>\r
15 #include <api/BamAlignment.h>\r
16 #include <api/SamHeader.h>\r
17 #include <string>\r
18 \r
19 namespace BamTools {\r
20 \r
21 namespace Internal {\r
22     class BamWriterPrivate;\r
23 } // namespace Internal\r
24 \r
25 class API_EXPORT 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 (using std::string SAM header)\r
37         bool Open(const std::string& filename, \r
38                   const std::string& samHeader, \r
39                   const BamTools::RefVector& referenceSequences, \r
40                   bool writeUncompressed = false);\r
41         // opens the alignment archive (using SamHeader object)\r
42         bool Open(const std::string& filename,\r
43                   const SamHeader& samHeader,\r
44                   const BamTools::RefVector& referenceSequences,\r
45                   bool writeUncompressed = false);\r
46         // saves the alignment to the alignment archive\r
47         void SaveAlignment(const BamTools::BamAlignment& al);\r
48 \r
49     // private implementation\r
50     private:\r
51         Internal::BamWriterPrivate* d;\r
52 };\r
53 \r
54 } // namespace BamTools\r
55 \r
56 #endif // BAMWRITER_H\r