From: Erik Garrison Date: Thu, 21 Oct 2010 21:03:48 +0000 (-0400) Subject: add index caching mode setter to BamMultiReader X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2b0d33f6c1aa259c117584313da93e2f76231f68;p=bamtools.git add index caching mode setter to BamMultiReader --- diff --git a/src/api/BamMultiReader.cpp b/src/api/BamMultiReader.cpp index a81ac87..f8e0997 100644 --- a/src/api/BamMultiReader.cpp +++ b/src/api/BamMultiReader.cpp @@ -80,6 +80,14 @@ bool BamMultiReader::CreateIndexes(bool useStandardIndex) { return result; } +// sets the index caching mode on the readers +void BamMultiReader::SetIndexCacheMode(const BamIndex::BamIndexCacheMode mode) { + for (vector >::iterator it = readers.begin(); it != readers.end(); ++it) { + BamReader* reader = it->first; + reader->SetIndexCacheMode(mode); + } +} + // for debugging void BamMultiReader::DumpAlignmentIndex(void) { for (AlignmentIndex::const_iterator it = alignments.begin(); it != alignments.end(); ++it) { @@ -288,7 +296,7 @@ bool BamMultiReader::Jump(int refID, int position) { } // opens BAM files -bool BamMultiReader::Open(const vector& filenames, bool openIndexes, bool coreMode, bool useDefaultIndex) { +bool BamMultiReader::Open(const vector& filenames, bool openIndexes, bool coreMode, bool preferStandardIndex) { // for filename in filenames fileNames = filenames; // save filenames in our multireader @@ -302,8 +310,8 @@ bool BamMultiReader::Open(const vector& filenames, bool openIndexes, boo // leave index filename empty // this allows BamReader & BamIndex to search for any available - // useDefaultIndex gives hint to prefer BAI over BTI - openedOK = reader->Open(filename, "", true, useDefaultIndex); + // useStandardIndex gives hint to prefer BAI over BTI + openedOK = reader->Open(filename, "", true, preferStandardIndex); } // ignoring index file(s) diff --git a/src/api/BamMultiReader.h b/src/api/BamMultiReader.h index e1a6e94..fa28bcd 100644 --- a/src/api/BamMultiReader.h +++ b/src/api/BamMultiReader.h @@ -107,6 +107,9 @@ class BamMultiReader { // creates index for BAM files which lack them, saves to files (default = bamFilename + ".bai") bool CreateIndexes(bool useStandardIndex = true); + // sets the index caching mode for the readers + void SetIndexCacheMode(const BamIndex::BamIndexCacheMode mode); + //const int GetReferenceID(const string& refName) const; // utility