#include <pbbam/ZmwQuery.h>
class PacBio::BAM::ZmwQuery

The ZmwQuery class provides iterable access to a DataSet‘s BAM records, limiting results to those matching a ZMW hole number whitelist.


vector<int32_t> whitelist = { 50, 100 };
ZmwQuery query(whitelist, dataset);
for (const BamRecord& record : query) {
    assert(record.HoleNumber() == 50 ||
           record.HoleNumber() == 100);

Currently, all BAM files must have a corresponding ”.pbi” index file. Use BamFile::EnsurePacBioIndexExists before creating the query if one may not be present.

Inherits from IQuery

Public Functions

ZmwQuery(const std::vector<int32_t> &zmwWhitelist, const DataSet &dataset)

Creates a new ZmwQuery, limiting record results to only those matching a ZMW hole number criterion.

  • zmwWhitelist: vector of allowed ZMW hole numbers
  • dataset: input data source(s)
  • std::runtime_error: on failure to open/read underlying BAM or PBI files.

bool GetNext(BamRecord &r)

Main iteration point for record access.

Most client code should not need to use this method directly. Use iterators instead.