From be0e9cc45169465cbb93eb610ca7b0598e37e30f Mon Sep 17 00:00:00 2001
From: Aaron <aaronquinlan@gmail.com>
Date: Tue, 18 Sep 2012 22:07:41 -0400
Subject: [PATCH] exit is inout BAM file is not found

---
 src/coverageBed/coverageBed.cpp             | 8 +++++---
 src/genomeCoverageBed/genomeCoverageBed.cpp | 5 ++++-
 src/intersectBed/intersectBed.cpp           | 6 +++++-
 src/pairToBed/pairToBed.cpp                 | 5 ++++-
 src/tagBam/tagBam.cpp                       | 6 +++++-
 src/utils/chromsweep/chromsweep.cpp         | 6 +++---
 src/windowBed/windowBed.cpp                 | 6 +++++-
 7 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/src/coverageBed/coverageBed.cpp b/src/coverageBed/coverageBed.cpp
index f5477262..4af2edb2 100644
--- a/src/coverageBed/coverageBed.cpp
+++ b/src/coverageBed/coverageBed.cpp
@@ -85,10 +85,12 @@ void BedCoverage::CollectCoverageBam(string bamFile) {
     // that we can easily compare "A" to it for overlaps
     _bedB->loadBedCovFileIntoMap();
 
-    // open the BAM file
+    // open the BAM file		
     BamReader reader;
-    reader.Open(bamFile);
-
+    if (!reader.Open(bamFile)) {
+        cerr << "Failed to open BAM file " << bamFile << endl;
+        exit(1);
+    }
     // get header & reference information
     string header = reader.GetHeaderText();
     RefVector refs = reader.GetReferenceData();
diff --git a/src/genomeCoverageBed/genomeCoverageBed.cpp b/src/genomeCoverageBed/genomeCoverageBed.cpp
index cdb04446..621c461d 100644
--- a/src/genomeCoverageBed/genomeCoverageBed.cpp
+++ b/src/genomeCoverageBed/genomeCoverageBed.cpp
@@ -211,7 +211,10 @@ void BedGenomeCoverage::CoverageBam(string bamFile) {
 
     // open the BAM file
     BamReader reader;
-    reader.Open(bamFile);
+    if (!reader.Open(bamFile)) {
+        cerr << "Failed to open BAM file " << bamFile << endl;
+        exit(1);
+    }
 
     // get header & reference information
     string header = reader.GetHeaderText();
diff --git a/src/intersectBed/intersectBed.cpp b/src/intersectBed/intersectBed.cpp
index 3382b2df..4f25c1b3 100644
--- a/src/intersectBed/intersectBed.cpp
+++ b/src/intersectBed/intersectBed.cpp
@@ -308,7 +308,11 @@ void BedIntersect::IntersectBam(string bamFile) {
     // open the BAM file
     BamReader reader;
     BamWriter writer;
-    reader.Open(bamFile);
+    if (!reader.Open(bamFile)) {
+        cerr << "Failed to open BAM file " << bamFile << endl;
+        exit(1);
+    }
+    
     // get header & reference information
     string bamHeader  = reader.GetHeaderText();
     RefVector refs    = reader.GetReferenceData();
diff --git a/src/pairToBed/pairToBed.cpp b/src/pairToBed/pairToBed.cpp
index a08c6736..7db744fc 100644
--- a/src/pairToBed/pairToBed.cpp
+++ b/src/pairToBed/pairToBed.cpp
@@ -383,7 +383,10 @@ void BedIntersectPE::IntersectBamPE(string bamFile) {
     // open the BAM file
     BamReader reader;
     BamWriter writer;
-    reader.Open(bamFile);
+    if (!reader.Open(bamFile)) {
+        cerr << "Failed to open BAM file " << bamFile << endl;
+        exit(1);
+    }
 
     // get header & reference information
     string bamHeader = reader.GetHeaderText();
diff --git a/src/tagBam/tagBam.cpp b/src/tagBam/tagBam.cpp
index 384094d5..5c7590fb 100644
--- a/src/tagBam/tagBam.cpp
+++ b/src/tagBam/tagBam.cpp
@@ -64,7 +64,11 @@ void TagBam::Tag() {
     // open the BAM file
     BamReader reader;
     BamWriter writer;
-    reader.Open(_bamFile);
+	if (!reader.Open(_bamFile)) {
+        cerr << "Failed to open BAM file " << _bamFile << endl;
+        exit(1);
+    }
+    
     // get header & reference information
     string bamHeader  = reader.GetHeaderText();
     RefVector refs = reader.GetReferenceData();
diff --git a/src/utils/chromsweep/chromsweep.cpp b/src/utils/chromsweep/chromsweep.cpp
index 88456f36..e3c4afad 100644
--- a/src/utils/chromsweep/chromsweep.cpp
+++ b/src/utils/chromsweep/chromsweep.cpp
@@ -169,9 +169,9 @@ bool ChromSweep::Next(pair<BED, vector<BED> > &next) {
             {
                 if (IsValidHit(_curr_qy, _curr_db)) {
                     _hits.push_back(_curr_db);
-                }
-                _cache.push_back(_curr_db);
-                _db->GetNextBed(_curr_db, true);
+				}
+				_cache.push_back(_curr_db);
+				_db->GetNextBed(_curr_db, true);
             }
             // add the hits for this query to the pump
             _results.push(make_pair(_curr_qy, _hits));
diff --git a/src/windowBed/windowBed.cpp b/src/windowBed/windowBed.cpp
index 852a475b..55342db0 100644
--- a/src/windowBed/windowBed.cpp
+++ b/src/windowBed/windowBed.cpp
@@ -158,7 +158,11 @@ void BedWindow::WindowIntersectBam(string bamFile) {
     // open the BAM file
     BamReader reader;
     BamWriter writer;
-    reader.Open(bamFile);
+    if (!reader.Open(bamFile)) {
+        cerr << "Failed to open BAM file " << bamFile << endl;
+        exit(1);
+    }
+
 
     // get header & reference information
     string bamHeader  = reader.GetHeaderText();
-- 
GitLab