// more complicated - region specified
else {
- Region region;
+ BamRegion region;
if ( Utilities::ParseRegionString(m_settings->Region, reader, region) ) {
// has index, we can jump directly to
// 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;
}
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;
}
// -----------------------------
// 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
// -------------------------------
// 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
// -------------------------------
// 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;
}
#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