X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Ftoolkit%2Fbamtools_coverage.cpp;h=748f51337f778991c9ad724ce0e9ae6b8fad6c4a;hb=8c80d760637f8df39262683cd2570f0589423d36;hp=5924edb78a85b93af928f56610dd0b9d8be2a007;hpb=9e7f3168db0c2473674f33a66eb63dedba0353f8;p=bamtools.git diff --git a/src/toolkit/bamtools_coverage.cpp b/src/toolkit/bamtools_coverage.cpp index 5924edb..748f513 100644 --- a/src/toolkit/bamtools_coverage.cpp +++ b/src/toolkit/bamtools_coverage.cpp @@ -3,21 +3,23 @@ // 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 +#include +#include +using namespace BamTools; + #include #include #include #include -#include "bamtools_coverage.h" -#include "bamtools_options.h" -#include "bamtools_pileup_engine.h" -#include "BamReader.h" using namespace std; -using namespace BamTools; namespace BamTools { @@ -36,12 +38,8 @@ class CoverageVisitor : public PileupVisitor { // PileupVisitor interface implementation public: -// void Visit(const int& refId, const int& position, const vector& alignments) { + // prints coverage results ( tab-delimited ) void Visit(const PileupPosition& pileupData) { - // ----------------------------------------- - // print coverage results ( tab-delimited ) - // <0-based pos> -// *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; @@ -113,7 +111,8 @@ bool CoverageTool::CoverageToolPrivate::Run(void) { // 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; } @@ -123,7 +122,12 @@ bool CoverageTool::CoverageToolPrivate::Run(void) { //open our BAM reader BamReader reader; - reader.Open(m_settings->InputBamFilename); + 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' @@ -140,7 +144,8 @@ bool CoverageTool::CoverageToolPrivate::Run(void) { // clean up reader.Close(); - if ( m_settings->HasOutputFile ) outFile.close(); + if ( m_settings->HasOutputFile ) + outFile.close(); delete cv; cv = 0;