]> git.donarmstrong.com Git - bamtools.git/blobdiff - bamtools_merge.cpp
Gracefully handle empty files with the BamMultiReader
[bamtools.git] / bamtools_merge.cpp
index bfb5de7fef462ee5d3dc3c84466f70fe49814051..dcea1725b229a4c95200318ebbe0103cc55ec809 100644 (file)
@@ -88,11 +88,8 @@ int MergeTool::Run(int argc, char* argv[]) {
     if ( !m_settings->HasInputBamFilename ) m_settings->InputFiles.push_back(Options::StandardIn());
     
     // opens the BAM files without checking for indexes
-//     BamMultiReader reader;
-//     reader.Open(m_settings->InputFiles, false); 
-
-    BamReader reader;
-    reader.Open(m_settings->InputFiles.at(0));
+    BamMultiReader reader;
+    reader.Open(m_settings->InputFiles, false, true); 
 
     // retrieve header & reference dictionary info
     std::string mergedHeader = reader.GetHeaderText();
@@ -103,16 +100,11 @@ int MergeTool::Run(int argc, char* argv[]) {
     writer.Open(m_settings->OutputFilename, mergedHeader, references);
 
     // store alignments to output file
-//     BamAlignment bAlignment;
-//     while (reader.GetNextAlignment(bAlignment)) {
-//         writer.SaveAlignment(bAlignment);
-//     }
-    
     BamAlignment bAlignment;
-    while (reader.GetNextAlignment(bAlignment)) {
+    while (reader.GetNextAlignmentCore(bAlignment)) {
         writer.SaveAlignment(bAlignment);
     }
-
+    
     // clean & exit
     reader.Close();
     writer.Close();