]> git.donarmstrong.com Git - bamtools.git/commitdiff
added reader.Open checks to a number of tools
authorErik Garrison <erik.garrison@bc.edu>
Tue, 28 Sep 2010 21:44:12 +0000 (17:44 -0400)
committerErik Garrison <erik.garrison@bc.edu>
Tue, 28 Sep 2010 21:44:12 +0000 (17:44 -0400)
src/toolkit/bamtools_convert.cpp
src/toolkit/bamtools_count.cpp
src/toolkit/bamtools_coverage.cpp
src/toolkit/bamtools_sort.cpp

index 86a3f9eeb7f6b27fe0af49b5b6356e52a025b2b5..730a061e62a407cc42b2834c2206179c458e4d30 100644 (file)
@@ -160,7 +160,10 @@ bool ConvertTool::ConvertToolPrivate::Run(void) {
     
     // open input files
     BamMultiReader reader;
-    reader.Open(m_settings->InputFiles);
+    if (!reader.Open(m_settings->InputFiles, false)) {
+        cerr << "Could not open input files" << endl;
+        return false;
+    }
     m_references = reader.GetReferenceData();
 
     // set region if specified
@@ -463,7 +466,10 @@ void ConvertTool::ConvertToolPrivate::PrintJson(const BamAlignment& a) {
                 case('H') : 
                     m_out << "\""; 
                     while (tagData[index]) {
-                        m_out << tagData[index];
+                        if (tagData[index] == '\"')
+                            m_out << "\\\""; // escape for json
+                        else
+                            m_out << tagData[index];
                         ++index;
                     }
                     m_out << "\""; 
index 20ed3ae7bd7d7552b21039157635ce822a68a01f..9d6623b3604cb79bb4dc54fa375c50660f67114e 100644 (file)
@@ -80,7 +80,10 @@ int CountTool::Run(int argc, char* argv[]) {
     
     // open reader without index
     BamMultiReader reader;
-    reader.Open(m_settings->InputFiles, false, true);
+    if (!reader.Open(m_settings->InputFiles, false, true)) {
+        cerr << "ERROR: Could not open input BAM file(s)... Aborting." << endl;
+        return 1;
+    }
 
     // alignment counter
     BamAlignment al;
index 5924edb78a85b93af928f56610dd0b9d8be2a007..d46ba2050b37337b96456e98ce3ae494d38d8acb 100644 (file)
@@ -123,7 +123,10 @@ bool CoverageTool::CoverageToolPrivate::Run(void) {
     
     //open our BAM reader
     BamReader reader;
-    reader.Open(m_settings->InputBamFilename);
+    if (!reader.Open(m_settings->InputBamFilename)) {
+        cerr << "Could not open " << m_settings->InputBamFilename << " for reading." << endl;
+        return false;
+    }
     m_references = reader.GetReferenceData();
     
     // set up our output 'visitor'
index 83584a6c8bd9b258bca86a6b4094b2761ceddc82..a6b3bba7a1964b40c4f3b5757469901e5352b2c9 100644 (file)
@@ -197,7 +197,10 @@ bool SortTool::SortToolPrivate::GenerateSortedRuns(void) {
     
     // open input BAM file
     BamReader inputReader;
-    inputReader.Open(m_settings->InputBamFilename);
+    if (!inputReader.Open(m_settings->InputBamFilename)) {
+        cerr << "Could not open " << m_settings->InputBamFilename << " for reading." << endl;
+        return false;
+    }
     
     // get basic data that will be shared by all temp/output files 
     m_headerText = inputReader.GetHeaderText();
@@ -322,4 +325,4 @@ bool SortTool::SortToolPrivate::WriteTempFile(const vector<BamAlignment>& buffer
     // close temp file & return success
     tempWriter.Close();
     return true;
-}
\ No newline at end of file
+}