]> git.donarmstrong.com Git - bamtools.git/commitdiff
moved bamtools_count to use BamRegion
authorErik Garrison <erik.garrison@bc.edu>
Fri, 18 Jun 2010 15:31:34 +0000 (11:31 -0400)
committerErik Garrison <erik.garrison@bc.edu>
Fri, 18 Jun 2010 15:31:34 +0000 (11:31 -0400)
This is more consistent than using a bespoke struct (Region) with the
same fields.

bamtools_count.cpp
bamtools_utilities.cpp
bamtools_utilities.h

index a0dadf35131073495d96528c9147cfb082f89afd..54ddd45e219866277fae8dd9495e2d61ea6e7549 100644 (file)
@@ -103,7 +103,7 @@ int CountTool::Run(int argc, char* argv[]) {
     // more complicated - region specified
     else {
         
-        Region region;
+        BamRegion region;
         if ( Utilities::ParseRegionString(m_settings->Region, reader, region) ) {
 
             // has index, we can jump directly to 
@@ -120,7 +120,7 @@ int CountTool::Run(int argc, char* argv[]) {
                //     errorStream << "Could not jump to desired REGION: " << m_settings->Region << endl;
                // }
                //
-                if ( !reader.SetRegion(region.StartChromID, region.StartPosition, region.StopChromID, region.StopPosition) ) {
+                if ( !reader.SetRegion(region.LeftRefID, region.LeftPosition, region.RightRefID, region.RightPosition) ) {
                    foundError = true;
                    errorStream << "Could not set BamReader region to REGION: " << m_settings->Region << endl;
                 }
@@ -133,14 +133,14 @@ int CountTool::Run(int argc, char* argv[]) {
                 BamAlignment al;
                 bool alignmentFound(false);
                 while( reader.GetNextAlignment(al) ) {
-                    if ( (al.RefID == region.StartChromID ) && ( (al.Position + al.Length) >= region.StartPosition) ) {
+                    if ( (al.RefID == region.LeftRefID) && ( (al.Position + al.Length) >= region.LeftPosition ) ) {
                         alignmentFound = true;
                         break;
                     }
                 }
                 
                 // if overlapping alignment found (not EOF), increment counter
-                if ( alignmentFound) ++ alignmentCount; 
+                if ( alignmentFound ) ++ alignmentCount;
             }
             
             // -----------------------------
index fcbabdf48d8ac19717b89580298bec1c6a3cae60..cdbddf5f3db26de96750e5a52efc54381290de6e 100644 (file)
@@ -18,7 +18,7 @@ using namespace BamTools;
 
 // Parses a region string, does validation (valid ID's, positions), stores in Region struct
 // Returns success (true/false)
-bool Utilities::ParseRegionString(const std::string& regionString, const BamReader& reader, Region& region) {
+bool Utilities::ParseRegionString(const std::string& regionString, const BamReader& reader, BamRegion& region) {
   
     // -------------------------------
     // parse region string
@@ -117,15 +117,15 @@ bool Utilities::ParseRegionString(const std::string& regionString, const BamRead
     // -------------------------------
     // set up Region struct & return
     
-    region.StartChromID  = startRefID;
-    region.StopChromID   = stopRefID;
-    region.StartPosition = startPos;
-    region.StopPosition  = stopPos;
+    region.LeftRefID = startRefID;
+    region.LeftPosition = startPos;
+    region.RightRefID = stopRefID;;
+    region.RightPosition = stopPos;
     return true;
 }
 
 // Same as ParseRegionString() above, but accepts a BamMultiReader
-bool Utilities::ParseRegionString(const std::string& regionString, const BamMultiReader& reader, Region& region) {
+bool Utilities::ParseRegionString(const std::string& regionString, const BamMultiReader& reader, BamRegion& region) {
   
     // -------------------------------
     // parse region string
@@ -224,9 +224,10 @@ bool Utilities::ParseRegionString(const std::string& regionString, const BamMult
     // -------------------------------
     // set up Region struct & return
     
-    region.StartChromID  = startRefID;
-    region.StopChromID   = stopRefID;
-    region.StartPosition = startPos;
-    region.StopPosition  = stopPos;
+    region.LeftRefID = startRefID;
+    region.LeftPosition = startPos;
+    region.RightRefID = stopRefID;;
+    region.RightPosition = stopPos;
+
     return true;
 }
index 7d655e69fe2b089bdd97ca90d4a7b92a2273288a..5101e26182325c6a624a9b5267c550107fa82633 100644 (file)
 #define BAMTOOLS_UTILITIES_H
 
 #include <string>
+#include "BamAux.h"
 
 namespace BamTools {
 
 class BamReader;
 class BamMultiReader;
 
-struct Region {
-    int StartChromID;
-    int StopChromID;
-    int StartPosition;
-    int StopPosition;
-};
-
 class Utilities {
   
     public:                          
         // Parses a region string, uses reader to do validation (valid ID's, positions), stores in Region struct
         // Returns success (true/false)
-        static bool ParseRegionString(const std::string& regionString, const BamReader& reader, Region& region);
+        static bool ParseRegionString(const std::string& regionString, const BamReader& reader, BamRegion& region);
         // Same as above, but accepts a BamMultiReader
-        static bool ParseRegionString(const std::string& regionString, const BamMultiReader& reader, Region& region);
+        static bool ParseRegionString(const std::string& regionString, const BamMultiReader& reader, BamRegion& region);
 };
 
 } // namespace BamTools
   
-#endif // BAMTOOLS_UTILITIES_H
\ No newline at end of file
+#endif // BAMTOOLS_UTILITIES_H