From d9d6a31a36b6738199c4cc3992be8f3cc6db36df Mon Sep 17 00:00:00 2001 From: Erik Garrison Date: Fri, 18 Jun 2010 11:31:34 -0400 Subject: [PATCH] moved bamtools_count to use BamRegion This is more consistent than using a bespoke struct (Region) with the same fields. --- bamtools_count.cpp | 8 ++++---- bamtools_utilities.cpp | 21 +++++++++++---------- bamtools_utilities.h | 14 ++++---------- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/bamtools_count.cpp b/bamtools_count.cpp index a0dadf3..54ddd45 100644 --- a/bamtools_count.cpp +++ b/bamtools_count.cpp @@ -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; } // ----------------------------- diff --git a/bamtools_utilities.cpp b/bamtools_utilities.cpp index fcbabdf..cdbddf5 100644 --- a/bamtools_utilities.cpp +++ b/bamtools_utilities.cpp @@ -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; } diff --git a/bamtools_utilities.h b/bamtools_utilities.h index 7d655e6..5101e26 100644 --- a/bamtools_utilities.h +++ b/bamtools_utilities.h @@ -12,29 +12,23 @@ #define BAMTOOLS_UTILITIES_H #include +#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 -- 2.39.5