// Marth Lab, Department of Biology, Boston College
// All rights reserved.
// ---------------------------------------------------------------------------
-// Last modified: 16 September 2010
+// Last modified: 21 March 2011
// ---------------------------------------------------------------------------
// Prints coverage data for a single BAM file
// ***************************************************************************
+#include "bamtools_coverage.h"
+
+#include <api/BamReader.h>
+#include <utils/bamtools_options.h>
+#include <utils/bamtools_pileup_engine.h>
+using namespace BamTools;
+
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
-#include "bamtools_coverage.h"
-#include "bamtools_options.h"
-#include "bamtools_pileup_engine.h"
-#include "BamReader.h"
using namespace std;
-using namespace BamTools;
namespace BamTools {
// PileupVisitor interface implementation
public:
-// void Visit(const int& refId, const int& position, const vector<BamAlignment>& alignments) {
+ // prints coverage results ( tab-delimited )
void Visit(const PileupPosition& pileupData) {
- // -----------------------------------------
- // print coverage results ( tab-delimited )
- // <refName> <0-based pos> <number of alleles>
-// *m_out << m_references[refId].RefName << "\t" << position << "\t" << alignments.size() << endl;
*m_out << m_references[pileupData.RefId].RefName << "\t"
<< pileupData.Position << "\t"
<< pileupData.PileupAlignments.size() << endl;
// open output file stream
outFile.open(m_settings->OutputFilename.c_str());
if ( !outFile ) {
- cerr << "Could not open " << m_settings->OutputFilename << " for output." << endl;
+ cerr << "bamtools coverage ERROR: could not open " << m_settings->OutputFilename
+ << " for output" << endl;
return false;
}
//open our BAM reader
BamReader reader;
- if (!reader.Open(m_settings->InputBamFilename)) {
- cerr << "Could not open " << m_settings->InputBamFilename << " for reading." << endl;
+ if ( !reader.Open(m_settings->InputBamFilename) ) {
+ cerr << "bamtools coverage ERROR: could not open input BAM file: " << m_settings->InputBamFilename << endl;
return false;
}
+
+ // retrieve references
m_references = reader.GetReferenceData();
// set up our output 'visitor'
// clean up
reader.Close();
- if ( m_settings->HasOutputFile ) outFile.close();
+ if ( m_settings->HasOutputFile )
+ outFile.close();
delete cv;
cv = 0;