// BamWriter_p.cpp (c) 2010 Derek Barnett
// Marth Lab, Department of Biology, Boston College
// ---------------------------------------------------------------------------
-// Last modified: 6 October 2011 (DB)
+// Last modified: 10 October 2011 (DB)
// ---------------------------------------------------------------------------
// Provides the basic functionality for producing BAM files
// ***************************************************************************
-#include <api/BamAlignment.h>
-#include <api/BamConstants.h>
-<<<<<<< HEAD
-#include <api/internal/BamException_p.h>
-=======
-#include <api/IBamIODevice.h>
->>>>>>> iodevice
-#include <api/internal/BamWriter_p.h>
+#include "api/BamAlignment.h"
+#include "api/BamConstants.h"
+#include "api/IBamIODevice.h"
+#include "api/internal/BamException_p.h"
+#include "api/internal/BamWriter_p.h"
using namespace BamTools;
using namespace BamTools::Internal;
Close();
}
-// calculates minimum bin for a BAM alignment interval
+// calculates minimum bin for a BAM alignment interval [begin, end)
uint32_t BamWriterPrivate::CalculateMinimumBin(const int begin, int end) const {
--end;
if ( (begin >> 14) == (end >> 14) ) return 4681 + (begin >> 14);
const string& samHeaderText,
const RefVector& referenceSequences)
{
-<<<<<<< HEAD
try {
-=======
- // open the BGZF file for writing, return failure if error
- if ( !m_stream.Open(filename, IBamIODevice::WriteOnly) )
- return false;
->>>>>>> iodevice
- // open the BGZF file for writing, return failure if error
- m_stream.Open(filename, "wb");
+ // open the BGZF file for writing
+ m_stream.Open(filename, IBamIODevice::WriteOnly);
// write BAM file 'metadata' components
WriteMagicNumber();
const unsigned int queryLength = al.QueryBases.size();
const unsigned int tagDataLength = al.TagData.size();
- // no way to tell if BamAlignment.Bin is already defined (no default, invalid value)
- // force calculation of Bin before storing
- const int endPosition = al.GetEndPosition();
- const uint32_t alignmentBin = CalculateMinimumBin(al.Position, endPosition);
+ // no way to tell if alignment's bin is already defined (there is no default, invalid value)
+ // so we'll go ahead calculate its bin ID before storing
+ const uint32_t alignmentBin = CalculateMinimumBin(al.Position, al.GetEndPosition());
// create our packed cigar string
string packedCigar;