1 // ***************************************************************************
\r
2 // BamWriter.h (c) 2009 Michael Str�mberg, Derek Barnett
\r
3 // Marth Lab, Department of Biology, Boston College
\r
4 // ---------------------------------------------------------------------------
\r
5 // Last modified: 10 October 2011 (DB)
\r
6 // ---------------------------------------------------------------------------
\r
7 // Provides the basic functionality for producing BAM files
\r
8 // ***************************************************************************
\r
13 #include "api/api_global.h"
\r
14 #include "api/BamAux.h"
\r
17 namespace BamTools {
\r
23 namespace Internal {
\r
24 class BamWriterPrivate;
\r
25 } // namespace Internal
\r
28 class API_EXPORT BamWriter {
\r
32 enum CompressionMode { Compressed = 0
\r
43 // closes the current BAM file
\r
45 // returns a human-readable description of the last error that occurred
\r
46 std::string GetErrorString(void) const;
\r
47 // returns true if BAM file is open for writing
\r
48 bool IsOpen(void) const;
\r
49 // opens a BAM file for writing
\r
50 bool Open(const std::string& filename,
\r
51 const std::string& samHeaderText,
\r
52 const RefVector& referenceSequences);
\r
53 // opens a BAM file for writing
\r
54 bool Open(const std::string& filename,
\r
55 const SamHeader& samHeader,
\r
56 const RefVector& referenceSequences);
\r
57 // saves the alignment to the alignment archive
\r
58 bool SaveAlignment(const BamAlignment& alignment);
\r
59 // sets the output compression mode
\r
60 void SetCompressionMode(const BamWriter::CompressionMode& compressionMode);
\r
62 // private implementation
\r
64 Internal::BamWriterPrivate* d;
\r
67 } // namespace BamTools
\r
69 #endif // BAMWRITER_H
\r