Mercurial > repos > zzhou > spp_phantompeak
diff spp/src/BamReader.cpp @ 15:e689b83b0257 draft
Uploaded
author | zzhou |
---|---|
date | Tue, 27 Nov 2012 16:15:21 -0500 |
parents | ce08b0efa3fd |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spp/src/BamReader.cpp Tue Nov 27 16:15:21 2012 -0500 @@ -0,0 +1,66 @@ +// *************************************************************************** +// BamReader.cpp (c) 2009 Derek Barnett, Michael Str�mberg +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 22 November 2010 (DB) +// --------------------------------------------------------------------------- +// Provides the basic functionality for reading BAM files +// *************************************************************************** + +#include <BamReader.h> +#include <BamReader_p.h> +using namespace BamTools; +using namespace BamTools::Internal; + +#include <algorithm> +#include <iostream> +#include <iterator> +#include <string> +#include <vector> +using namespace std; + +// constructor +BamReader::BamReader(void) { + d = new BamReaderPrivate(this); +} + +// destructor +BamReader::~BamReader(void) { + delete d; + d = 0; +} + +// file operations +void BamReader::Close(void) { d->Close(); } +bool BamReader::HasIndex(void) const { return d->HasIndex; } +bool BamReader::IsIndexLoaded(void) const { return HasIndex(); } +bool BamReader::IsOpen(void) const { return d->mBGZF.IsOpen; } +bool BamReader::Jump(int refID, int position) { return d->SetRegion( BamRegion(refID, position) ); } +bool BamReader::Open(const std::string& filename, + const std::string& indexFilename, + const bool lookForIndex, + const bool preferStandardIndex) +{ + return d->Open(filename, indexFilename, lookForIndex, preferStandardIndex); +} +bool BamReader::Rewind(void) { return d->Rewind(); } +bool BamReader::SetRegion(const BamRegion& region) { return d->SetRegion(region); } +bool BamReader::SetRegion(const int& leftRefID, const int& leftBound, const int& rightRefID, const int& rightBound) { + return d->SetRegion( BamRegion(leftRefID, leftBound, rightRefID, rightBound) ); +} + +// access alignment data +bool BamReader::GetNextAlignment(BamAlignment& bAlignment) { return d->GetNextAlignment(bAlignment); } +bool BamReader::GetNextAlignmentCore(BamAlignment& bAlignment) { return d->GetNextAlignmentCore(bAlignment); } + +// access auxiliary data +const string BamReader::GetHeaderText(void) const { return d->GetHeaderText(); } +int BamReader::GetReferenceCount(void) const { return d->References.size(); } +const RefVector& BamReader::GetReferenceData(void) const { return d->References; } +int BamReader::GetReferenceID(const string& refName) const { return d->GetReferenceID(refName); } +const std::string BamReader::GetFilename(void) const { return d->Filename; } + +// index operations +bool BamReader::CreateIndex(bool useStandardIndex) { return d->CreateIndex(useStandardIndex); } +void BamReader::SetIndexCacheMode(const BamIndex::BamIndexCacheMode mode) { d->SetIndexCacheMode(mode); }