]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/toolkit/bamtools_sort.cpp
merge conflict
[bamtools.git] / src / toolkit / bamtools_sort.cpp
index 37a74e50e13275c687dbf7b9d2a123b9f7c038fc..f4950588d95f72431906be62f96f4c682812962d 100644 (file)
@@ -1,7 +1,6 @@
 // ***************************************************************************
 // bamtools_sort.cpp (c) 2010 Derek Barnett, Erik Garrison
 // Marth Lab, Department of Biology, Boston College
-// All rights reserved.
 // ---------------------------------------------------------------------------
 // Last modified: 3 October 2011 (DB)
 // ---------------------------------------------------------------------------
@@ -41,6 +40,12 @@ const unsigned int SORT_DEFAULT_MAX_BUFFER_MEMORY = 1024;    // Mb
 
 struct SortLessThanPosition {
     bool operator() (const BamAlignment& lhs, const BamAlignment& rhs) {
+
+        // force unmapped alignments to end
+        if ( lhs.RefID == -1 ) return false;
+        if ( rhs.RefID == -1 ) return true;
+
+        // sort first on RefID, then by Position
         if ( lhs.RefID != rhs.RefID )
             return lhs.RefID < rhs.RefID;
         else