Skip to content
This repository has been archived by the owner on May 2, 2024. It is now read-only.

Commit

Permalink
[TAK-1730] Port from deprecated pbbam API
Browse files Browse the repository at this point in the history
  • Loading branch information
pb-dseifert committed Aug 27, 2022
1 parent d99520e commit 1142a51
Show file tree
Hide file tree
Showing 49 changed files with 647 additions and 623 deletions.
15 changes: 8 additions & 7 deletions include/pbbam/BaiIndexedBamReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
#include <pbbam/BaiIndexCache.h>
#include <pbbam/BamFile.h>
#include <pbbam/BamReader.h>
#include <pbbam/GenomicInterval.h>

#include <pbcopper/data/GenomicInterval.h>

#include <htslib/sam.h>

Expand Down Expand Up @@ -56,8 +57,8 @@ class PBBAM_EXPORT BaiIndexedBamReader : public BamReader
/// \throws std::runtime_error if either file (*.bam or *.bai) fails to open
/// for reading, or if the interval is invalid
///
BaiIndexedBamReader(const GenomicInterval& interval, std::string filename);
BaiIndexedBamReader(const GenomicInterval& interval, std::string filename,
BaiIndexedBamReader(const Data::GenomicInterval& interval, std::string filename);
BaiIndexedBamReader(const Data::GenomicInterval& interval, std::string filename,
const std::shared_ptr<BaiIndexCacheData>& index);

/// \brief Constructs %BAM reader, bounded by a genomic interval.
Expand All @@ -70,8 +71,8 @@ class PBBAM_EXPORT BaiIndexedBamReader : public BamReader
/// \throws std::runtime_error if either file (*.bam or *.bai) fails to open
/// for reading, or if the interval is invalid
///
BaiIndexedBamReader(const GenomicInterval& interval, BamFile bamFile);
BaiIndexedBamReader(const GenomicInterval& interval, BamFile bamFile,
BaiIndexedBamReader(const Data::GenomicInterval& interval, BamFile bamFile);
BaiIndexedBamReader(const Data::GenomicInterval& interval, BamFile bamFile,
const std::shared_ptr<BaiIndexCacheData>& index);

/// \}
Expand All @@ -84,14 +85,14 @@ class PBBAM_EXPORT BaiIndexedBamReader : public BamReader
const BamFile& File() const;

/// \returns the current GenomicInterval in use by this reader
const GenomicInterval& Interval() const;
const Data::GenomicInterval& Interval() const;

/// \brief Sets a new genomic interval on the reader.
///
/// \param[in] interval
/// \returns reference to this reader
///
BaiIndexedBamReader& Interval(const GenomicInterval& interval);
BaiIndexedBamReader& Interval(const Data::GenomicInterval& interval);

/// \}

Expand Down
21 changes: 11 additions & 10 deletions include/pbbam/BamRecord.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@

#include <pbbam/Config.h>

#include <pbbam/Accuracy.h>
#include <pbbam/BamHeader.h>
#include <pbbam/BamRecordImpl.h>
#include <pbbam/ClipType.h>
#include <pbbam/FrameEncodingType.h>
#include <pbbam/Frames.h>
#include <pbbam/LocalContextFlags.h>
#include <pbbam/Orientation.h>
#include <pbbam/PulseBehavior.h>
#include <pbbam/PulseExclusionReason.h>
#include <pbbam/QualityValues.h>
#include <pbbam/ReadGroupInfo.h>
#include <pbbam/RecordType.h>
#include <pbbam/Strand.h>
#include <pbbam/ZmwType.h>
#include <pbbam/virtual/VirtualRegionType.h>

#include <pbcopper/data/Accuracy.h>
#include <pbcopper/data/Frames.h>
#include <pbcopper/data/LocalContextFlags.h>
#include <pbcopper/data/MappedRead.h>
#include <pbcopper/data/Orientation.h>
#include <pbcopper/data/QualityValues.h>
#include <pbcopper/data/Read.h>
#include <pbcopper/data/Strand.h>
#include <pbcopper/json/JSON.h>

#include <memory>
Expand Down Expand Up @@ -846,8 +846,8 @@ class PBBAM_EXPORT BamRecord
/// \param[in] orientation Orientation of output.
/// \returns PulseWidth as Frames object
///
Frames PulseWidthRaw(Orientation orientation = Orientation::NATIVE, bool aligned = false,
bool exciseSoftClips = false) const;
Data::Frames PulseWidthRaw(Data::Orientation orientation = Data::Orientation::NATIVE,
bool aligned = false, bool exciseSoftClips = false) const;

/// \brief Fetches this record's reverse IPD values ("ri" tag).
///
Expand Down Expand Up @@ -1143,7 +1143,7 @@ class PBBAM_EXPORT BamRecord
/// \param[in] labelQVs
/// \returns reference to this record
///
BamRecord& LabelQV(const QualityValues& labelQVs);
BamRecord& LabelQV(const Data::QualityValues& labelQVs);

/// \brief Sets this record's MergeQV values ("mq" tag).
///
Expand Down Expand Up @@ -1550,7 +1550,8 @@ class PBBAM_EXPORT BamRecord

// sequence tags
std::string FetchBasesRaw(BamRecordTag tag) const;
std::string FetchBases(BamRecordTag tag, Orientation orientation = Orientation::NATIVE,
std::string FetchBases(BamRecordTag tag,
Data::Orientation orientation = Data::Orientation::NATIVE,
bool aligned = false, bool exciseSoftClips = false,
PulseBehavior pulseBehavior = PulseBehavior::ALL) const;

Expand Down
9 changes: 5 additions & 4 deletions include/pbbam/BamRecordImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
#include <pbbam/Config.h>

#include <pbbam/BamRecordTag.h>
#include <pbbam/Cigar.h>
#include <pbbam/Deleters.h>
#include <pbbam/Position.h>
#include <pbbam/QualityValues.h>
#include <pbbam/TagCollection.h>

#include <pbcopper/data/Cigar.h>
#include <pbcopper/data/Position.h>
#include <pbcopper/data/QualityValues.h>

#include <htslib/sam.h>

#include <map>
Expand Down Expand Up @@ -242,7 +243,7 @@ class PBBAM_EXPORT BamRecordImpl

/// Sets the record's CIGAR data using a Cigar object
///
/// \param[in] cigar PacBio::BAM::Cigar object
/// \param[in] cigar PacBio::Data::Cigar object
/// \returns reference to this record
///
BamRecordImpl& CigarData(const Data::Cigar& cigar);
Expand Down
2 changes: 1 addition & 1 deletion include/pbbam/BamRecordView.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class PBBAM_EXPORT BamRecordView
Data::QualityValues MergeQVs() const;

/// \returns BamRecord::PulseMergeQV with this view's parameters applied
QualityValues PulseMergeQVs() const;
Data::QualityValues PulseMergeQVs() const;

/// \returns BamRecord::Pkmean with this view's parameters applied
std::vector<float> Pkmean() const;
Expand Down
18 changes: 10 additions & 8 deletions include/pbbam/CompositeBamReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
#include <pbbam/BamReader.h>
#include <pbbam/BamRecord.h>
#include <pbbam/DataSet.h>
#include <pbbam/GenomicInterval.h>
#include <pbbam/PbiIndexedBamReader.h>

#include <pbcopper/data/GenomicInterval.h>

#include <deque>
#include <functional>
#include <memory>
Expand Down Expand Up @@ -153,9 +154,9 @@ class PBBAM_EXPORT GenomicIntervalCompositeBamReader
/// \throws std::runtime_error on failure to open/read underlying %BAM or
/// BAI files.
///
GenomicIntervalCompositeBamReader(const GenomicInterval& interval,
GenomicIntervalCompositeBamReader(const Data::GenomicInterval& interval,
const std::vector<BamFile>& bamFiles);
GenomicIntervalCompositeBamReader(const GenomicInterval& interval,
GenomicIntervalCompositeBamReader(const Data::GenomicInterval& interval,
const std::vector<BamFile>& bamFiles,
const BaiIndexCache& cache);

Expand All @@ -168,8 +169,9 @@ class PBBAM_EXPORT GenomicIntervalCompositeBamReader
/// \throws std::runtime_error on failure to open/read underlying %BAM or
/// BAI files.
///
GenomicIntervalCompositeBamReader(const GenomicInterval& interval, const DataSet& dataset);
GenomicIntervalCompositeBamReader(const GenomicInterval& interval, const DataSet& dataset,
GenomicIntervalCompositeBamReader(const Data::GenomicInterval& interval,
const DataSet& dataset);
GenomicIntervalCompositeBamReader(const Data::GenomicInterval& interval, const DataSet& dataset,
const BaiIndexCache& cache);

/// \}
Expand All @@ -182,17 +184,17 @@ class PBBAM_EXPORT GenomicIntervalCompositeBamReader
///
/// \returns reference to this reader
///
GenomicIntervalCompositeBamReader& Interval(const GenomicInterval& interval);
GenomicIntervalCompositeBamReader& Interval(const Data::GenomicInterval& interval);

/// \returns the current specified interval
///
const GenomicInterval& Interval() const;
const Data::GenomicInterval& Interval() const;

/// \}

private:
BaiIndexCache indexCache_;
GenomicInterval interval_;
Data::GenomicInterval interval_;
};

/// \brief Provides read access to multipe %BAM files, limiting results to those
Expand Down
5 changes: 3 additions & 2 deletions include/pbbam/DataSet.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
#include <pbbam/BamFile.h>
#include <pbbam/BamHeader.h>
#include <pbbam/DataSetTypes.h>
#include <pbbam/GenomicInterval.h>

#include <pbcopper/data/GenomicInterval.h>

#include <chrono>
#include <iosfwd>
Expand Down Expand Up @@ -444,7 +445,7 @@ class PBBAM_EXPORT DataSet
/// \throws std::runtime_error if DataSet contains invalid or non-sensical
/// filters, such as rname appearing twice, etc.
///
std::vector<GenomicInterval> GenomicIntervals() const;
std::vector<Data::GenomicInterval> GenomicIntervals() const;

/// \}

Expand Down
3 changes: 2 additions & 1 deletion include/pbbam/FastqSequence.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
#include <pbbam/Config.h>

#include <pbbam/FastaSequence.h>
#include <pbbam/QualityValues.h>

#include <pbcopper/data/QualityValues.h>

#include <string>

Expand Down
4 changes: 2 additions & 2 deletions include/pbbam/IndexedFastaReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
#include <pbbam/Config.h>

#include <pbbam/BamRecord.h>
#include <pbbam/Orientation.h>
#include <pbbam/Position.h>

#include <pbcopper/data/GenomicInterval.h>
#include <pbcopper/data/Orientation.h>
#include <pbcopper/data/Position.h>

#include <memory>
#include <stdexcept>
Expand Down
6 changes: 3 additions & 3 deletions include/pbbam/IndexedFastqReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

#include <pbbam/BamRecord.h>
#include <pbbam/FastqReader.h>
#include <pbbam/Orientation.h>
#include <pbbam/Position.h>
#include <pbbam/QualityValues.h>
#include <pbbam/internal/QueryBase.h>

#include <pbcopper/data/GenomicInterval.h>
#include <pbcopper/data/Orientation.h>
#include <pbcopper/data/Position.h>
#include <pbcopper/data/QualityValues.h>

#include <memory>
#include <stdexcept>
Expand Down
2 changes: 1 addition & 1 deletion include/pbbam/PbiFilterTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ class PbiAlignedStrandFilter
/// \param[in] strand strand value to compare on
/// \param[in] cmp compare type
///
PbiAlignedStrandFilter(Strand strand, Compare::Type cmp = Compare::EQUAL);
PbiAlignedStrandFilter(Data::Strand strand, Compare::Type cmp = Compare::EQUAL);
};

/// \brief The PbiBarcodeFilter class provides a PbiFilter-compatible filter on
Expand Down
3 changes: 2 additions & 1 deletion include/pbbam/bed/BedReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@

#include <pbbam/Config.h>

#include <pbbam/GenomicInterval.h>
#include <pbbam/internal/QueryBase.h>

#include <pbcopper/data/GenomicInterval.h>

#include <memory>
#include <string>
#include <vector>
Expand Down
26 changes: 13 additions & 13 deletions include/pbbam/internal/PbiFilterTypes.inl
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ bool FilterBase<T>::CompareSingleHelper(const T& lhs) const
}

template <>
inline bool FilterBase<LocalContextFlags>::CompareSingleHelper(const LocalContextFlags& lhs) const
inline bool FilterBase<Data::LocalContextFlags>::CompareSingleHelper(const Data::LocalContextFlags& lhs) const
{
switch (cmp_) {
case Compare::EQUAL:
Expand Down Expand Up @@ -183,15 +183,15 @@ bool BasicDataFilterBase<T, field>::BasicDataFilterBase::Accepts(const PbiRawDat

// this typedef exists purely so that the next method signature isn't 2 screen widths long
using LocalContextFilter__ =
BasicDataFilterBase<LocalContextFlags, PbiFile::BasicField::CONTEXT_FLAG>;
BasicDataFilterBase<Data::LocalContextFlags, PbiFile::BasicField::CONTEXT_FLAG>;

template <>
inline bool LocalContextFilter__::BasicDataFilterBase::Accepts(const PbiRawData& idx,
const size_t row) const
{
const auto& basicData = idx.BasicData();
const auto rowFlags = static_cast<LocalContextFlags>(basicData.ctxtFlag_.at(row));
return FilterBase<LocalContextFlags>::CompareHelper(rowFlags);
const auto rowFlags = static_cast<Data::LocalContextFlags>(basicData.ctxtFlag_.at(row));
return FilterBase<Data::LocalContextFlags>::CompareHelper(rowFlags);
}

// BasicDataFilterBase
Expand All @@ -210,12 +210,12 @@ MappedDataFilterBase<T, field>::MappedDataFilterBase(std::vector<T> values, cons

template <>
inline bool
MappedDataFilterBase<Strand, PbiFile::MappedField::STRAND>::MappedDataFilterBase::Accepts(
MappedDataFilterBase<Data::Strand, PbiFile::MappedField::STRAND>::MappedDataFilterBase::Accepts(
const PbiRawData& idx, const size_t row) const
{
const PbiRawMappedData& mappedData = idx.MappedData();
const Strand strand = (mappedData.revStrand_.at(row) == 1 ? Strand::REVERSE : Strand::FORWARD);
return FilterBase<Strand>::CompareHelper(strand);
const Data::Strand strand = (mappedData.revStrand_.at(row) == 1 ? Data::Strand::REVERSE : Data::Strand::FORWARD);
return FilterBase<Data::Strand>::CompareHelper(strand);
}

template <typename T, PbiFile::MappedField field>
Expand Down Expand Up @@ -278,8 +278,8 @@ inline PbiAlignedStartFilter::PbiAlignedStartFilter(const uint32_t position,

// PbiAlignedStrandFilter

inline PbiAlignedStrandFilter::PbiAlignedStrandFilter(const Strand strand, const Compare::Type cmp)
: internal::MappedDataFilterBase<Strand, PbiFile::MappedField::STRAND>{strand, cmp}
inline PbiAlignedStrandFilter::PbiAlignedStrandFilter(const Data::Strand strand, const Compare::Type cmp)
: internal::MappedDataFilterBase<Data::Strand, PbiFile::MappedField::STRAND>{strand, cmp}
{
if (cmp != Compare::EQUAL && cmp != Compare::NOT_EQUAL) {
throw std::runtime_error{
Expand Down Expand Up @@ -374,9 +374,9 @@ inline PbiIdentityFilter::PbiIdentityFilter(const float identity, const Compare:

// PbiLocalContextFilter

inline PbiLocalContextFilter::PbiLocalContextFilter(const LocalContextFlags& flags,
inline PbiLocalContextFilter::PbiLocalContextFilter(const Data::LocalContextFlags& flags,
const Compare::Type cmp)
: internal::BasicDataFilterBase<LocalContextFlags, PbiFile::BasicField::CONTEXT_FLAG>{flags,
: internal::BasicDataFilterBase<Data::LocalContextFlags, PbiFile::BasicField::CONTEXT_FLAG>{flags,
cmp}
{
}
Expand Down Expand Up @@ -443,9 +443,9 @@ inline PbiQueryStartFilter::PbiQueryStartFilter(const int32_t position, const Co

// PbiReadAccuracyFilter

inline PbiReadAccuracyFilter::PbiReadAccuracyFilter(const Accuracy accuracy,
inline PbiReadAccuracyFilter::PbiReadAccuracyFilter(const Data::Accuracy accuracy,
const Compare::Type cmp)
: internal::BasicDataFilterBase<Accuracy, PbiFile::BasicField::READ_QUALITY>{accuracy, cmp}
: internal::BasicDataFilterBase<Data::Accuracy, PbiFile::BasicField::READ_QUALITY>{accuracy, cmp}
{
}

Expand Down
3 changes: 2 additions & 1 deletion include/pbbam/vcf/VcfVariant.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@

#include <pbbam/Config.h>

#include <pbbam/Position.h>
#include <pbbam/vcf/VcfHeaderTypes.h>

#include <pbcopper/data/Position.h>

#include <optional>
#include <string>
#include <unordered_map>
Expand Down
3 changes: 2 additions & 1 deletion include/pbbam/virtual/VirtualRegion.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@

#include <pbbam/Config.h>

#include <pbbam/LocalContextFlags.h>
#include <pbbam/virtual/VirtualRegionType.h>

#include <pbcopper/data/LocalContextFlags.h>

namespace PacBio {
namespace BAM {

Expand Down
4 changes: 2 additions & 2 deletions src/BamRecord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2470,8 +2470,8 @@ BamRecord& BamRecord::StartFrame(const std::vector<uint32_t>& startFrame)
return *this;
}

QualityValues BamRecord::SubstitutionQV(Data::Orientation orientation, bool aligned,
bool exciseSoftClips) const
Data::QualityValues BamRecord::SubstitutionQV(Data::Orientation orientation, bool aligned,
bool exciseSoftClips) const
{
return FetchQualities(BamRecordTag::SUBSTITUTION_QV, orientation, aligned, exciseSoftClips);
}
Expand Down

0 comments on commit 1142a51

Please sign in to comment.