Compare¶
#include <pbbam/Compare.h>
Defines the Compare class & a number of function objects for comparing BamRecords.
-
namespace
PacBio
¶ -
namespace
BAM
¶ -
struct
Compare
¶ - #include <pbbam/Compare.h>
The Compare class provides utilities for sorting collections of BamRecords.
// sort on increasing ZMW hole number std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::Zmw());
- Note
- The functors provided here currently only support std::less<T> comparisons (i.e. sorting by ascending value).
Comparison Type
-
enum
Type
¶ This enum defines the supported comparison types { ==, !=, <, <=, >, >=, & (contains), ~ (not contains) }.
Values:
-
EQUAL
= 0¶
-
NOT_EQUAL
¶
-
LESS_THAN
¶
-
LESS_THAN_EQUAL
¶
-
GREATER_THAN
¶
-
GREATER_THAN_EQUAL
¶
-
CONTAINS
¶
-
NOT_CONTAINS
¶
-
-
static Compare::Type
TypeFromOperator
(const std::string &opString)¶ Convert operator string to Compare::Type.
Compare::Type type = Compare::TypeFromOperator("!="); assert(type == Compare::NOT_EQUAL);
- Return
- comparison type from an operator string
- See
- Compare::TypeToOperator
- Parameters
opString
: operator string. Can be C++-style operators (“==”, ”!=”, “<=”, etc) or alpha equivalents (“eq”, “ne”, “lte”, etc).
- Exceptions
std::runtime_error
: if cannot convert opString to Compare::Type
-
static std::string
TypeToName
(const Compare::Type &type)¶ Convert a Compare::Type to printable enum name.
string name = Compare::TypeToName(Compare::LESS_THAN); assert(name = "Compare::LESS_THAN");
- Return
- the printable name for a Compare::Type enum value.are::Type
- Parameters
type
: Compare::Type to convert
- Exceptions
std::runtime_error
: on unknown Compare::Type
-
static std::string
TypeToOperator
(const Compare::Type &type, bool asAlpha = false)¶ Convert a Compare::Type to printable operator.
- Return
- the printable operator string
- Parameters
type
: Compare::Type to convertasAlpha
: (optional) flag to print using alpha equivalents e.g. “lte” rather than “<=”
- Exceptions
std::runtime_error
: on unknown Compare::Type
-
struct
AlignedEnd
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::AlignedEnd.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::AlignedEnd());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::AlignedEnd >
-
struct
AlignedStart
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::AlignedStart.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::AlignedStart());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::AlignedStart >
-
struct
AlignedStrand
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::AlignedStrand.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::AlignedStrand());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Strand,&BamRecord::AlignedStrand >
-
struct
BarcodeForward
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::BarcodeForward.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::BarcodeForward());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< int16_t,&BamRecord::BarcodeForward >
-
struct
BarcodeQuality
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::BarcodeQuality.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::BarcodeQuality());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< uint8_t,&BamRecord::BarcodeQuality >
-
struct
BarcodeReverse
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::BarcodeReverse.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::BarcodeReverse());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< int16_t,&BamRecord::BarcodeReverse >
-
struct
Base
¶ - #include <pbbam/Compare.h>
Base class for all BamRecord compare functors.
Mostly used for method signatures that can accept any comparator.
Custom comparators may be used by inheriting from this class.
Inherits from std::function< bool(const BamRecord &, const BamRecord &)>
Subclassed by PacBio::BAM::Compare::MemberFunctionBaseHelper< Accuracy >, PacBio::BAM::Compare::MemberFunctionBaseHelper< int16_t >, PacBio::BAM::Compare::MemberFunctionBaseHelper< int32_t >, PacBio::BAM::Compare::MemberFunctionBaseHelper< LocalContextFlags >, PacBio::BAM::Compare::MemberFunctionBaseHelper< Position >, PacBio::BAM::Compare::MemberFunctionBaseHelper< size_t >, PacBio::BAM::Compare::MemberFunctionBaseHelper< std::string >, PacBio::BAM::Compare::MemberFunctionBaseHelper< Strand >, PacBio::BAM::Compare::MemberFunctionBaseHelper< uint8_t >, PacBio::BAM::Compare::None
-
struct
FullName
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::FullName.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::FullName());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::FullName >
-
struct
LocalContextFlag
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::LocalContextFlags.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::LocalContextFlag());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< LocalContextFlags,&BamRecord::LocalContextFlags >
-
struct
MapQuality
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::MapQuality.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::MapQuality());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< uint8_t,&BamRecord::MapQuality >
- template <typename ValueType, typename MemberFunctionBaseHelper< ValueType >::MemberFnType fn, typename CompareType = std::less<ValueType>>
-
struct
MemberFunctionBase
¶ - #include <pbbam/Compare.h>
Base class for all BamRecord compare functors that take a BamRecord function pointer and compare on its return type.
Derived comparators usually need only declare the return value & function pointer in the template signature. This class implements the basic method-calling machinery.
Custom comparators will work for any BamRecord member function that does not take any input parameters.
Inherits from PacBio::BAM::Compare::MemberFunctionBaseHelper< ValueType >
- template <typename ValueType>
-
struct
MemberFunctionBaseHelper
¶ Inherits from PacBio::BAM::Compare::Base
Subclassed by PacBio::BAM::Compare::MemberFunctionBase< Accuracy,&BamRecord::ReadAccuracy >, PacBio::BAM::Compare::MemberFunctionBase< int16_t,&BamRecord::BarcodeForward >, PacBio::BAM::Compare::MemberFunctionBase< int16_t,&BamRecord::BarcodeReverse >, PacBio::BAM::Compare::MemberFunctionBase< int32_t,&BamRecord::HoleNumber >, PacBio::BAM::Compare::MemberFunctionBase< int32_t,&BamRecord::ReadGroupNumericId >, PacBio::BAM::Compare::MemberFunctionBase< int32_t,&BamRecord::ReferenceId >, PacBio::BAM::Compare::MemberFunctionBase< LocalContextFlags,&BamRecord::LocalContextFlags >, PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::AlignedEnd >, PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::AlignedStart >, PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::QueryEnd >, PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::QueryStart >, PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::ReferenceEnd >, PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::ReferenceStart >, PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumDeletedBases >, PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumInsertedBases >, PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumMatches >, PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumMismatches >, PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::FullName >, PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::MovieName >, PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::ReadGroupId >, PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::ReferenceName >, PacBio::BAM::Compare::MemberFunctionBase< Strand,&BamRecord::AlignedStrand >, PacBio::BAM::Compare::MemberFunctionBase< uint8_t,&BamRecord::BarcodeQuality >, PacBio::BAM::Compare::MemberFunctionBase< uint8_t,&BamRecord::MapQuality >, PacBio::BAM::Compare::MemberFunctionBase< ValueType, fn, CompareType >
-
struct
MovieName
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::MovieName.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::MovieName());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::MovieName >
-
struct
None
¶ - #include <pbbam/Compare.h>
Provides an operator() is essentially a no-op for comparing/sorting.
If used in a sorting operation, then no change will occur.
Inherits from PacBio::BAM::Compare::Base
-
struct
NumDeletedBases
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::NumDeletedBases.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::NumDeletedBases());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumDeletedBases >
-
struct
NumInsertedBases
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::NumInsertedBases.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::NumInsertedBases());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumInsertedBases >
-
struct
NumMatches
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::NumMatches.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::NumMatches());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumMatches >
-
struct
NumMismatches
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::NumMismatches.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::NumMismatches());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< size_t,&BamRecord::NumMismatches >
-
struct
QueryEnd
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::QueryEnd.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::QueryEnd());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::QueryEnd >
-
struct
QueryStart
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::QueryStart.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::QueryStart());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::QueryStart >
-
struct
ReadAccuracy
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReadAccuracy.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReadAccuracy());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Accuracy,&BamRecord::ReadAccuracy >
-
struct
ReadGroupId
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReadGroupId.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReadGroupId());
- Note
- Even though the ReadGroupId string contains hex values, it is still just a std::string. Comparisons will use lexical, not numeric ordering. If numeric ordering is desired, use Compare::ReadGroupNumericId instead.
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::ReadGroupId >
-
struct
ReadGroupNumericId
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReadGroupNumericId.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReadGroupNumericId());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< int32_t,&BamRecord::ReadGroupNumericId >
-
struct
ReferenceEnd
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReferenceEnd.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReferenceEnd());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::ReferenceEnd >
-
struct
ReferenceId
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReferenceId.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReferenceId());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< int32_t,&BamRecord::ReferenceId >
-
struct
ReferenceName
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReferenceName.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReferenceName());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< std::string,&BamRecord::ReferenceName >
-
struct
ReferenceStart
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::ReferenceStart.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::ReferenceStart());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< Position,&BamRecord::ReferenceStart >
-
struct
Zmw
¶ - #include <pbbam/Compare.h>
Compares on BamRecord::HoleNumber.
Example:
std::vector<BamRecord> records; std::sort(records.begin(), records.end(), Compare::Zmw());
- Note
- Currently only supports std::less<T> comparisons (i.e. sorting by ascending value).
Inherits from PacBio::BAM::Compare::MemberFunctionBase< int32_t,&BamRecord::HoleNumber >
-
struct
-
namespace