X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FBamMultiReader.h;h=27745628cb0f0dabf3c819d2eb659b15aca5a33b;hb=574a2bfb36f7107529e7ccda0f75e70a493460e5;hp=1b1c27021bc457962d17160b019619932d4ecee6;hpb=2e049ed7f28881bce09653e60f5aea54bfd7afbf;p=bamtools.git diff --git a/src/api/BamMultiReader.h b/src/api/BamMultiReader.h index 1b1c270..2774562 100644 --- a/src/api/BamMultiReader.h +++ b/src/api/BamMultiReader.h @@ -2,7 +2,7 @@ // BamMultiReader.h (c) 2010 Erik Garrison, Derek Barnett // Marth Lab, Department of Biology, Boston College // --------------------------------------------------------------------------- -// Last modified: 7 October 2011 (DB) +// Last modified: 14 January 2013 (DB) // --------------------------------------------------------------------------- // Convenience class for reading multiple BAM files. // *************************************************************************** @@ -10,8 +10,8 @@ #ifndef BAMMULTIREADER_H #define BAMMULTIREADER_H -#include -#include +#include "api/api_global.h" +#include "api/BamReader.h" #include #include #include @@ -25,6 +25,14 @@ namespace Internal { class API_EXPORT BamMultiReader { + // enums + public: + // possible merge order strategies + enum MergeOrder { RoundRobinMerge = 0 + , MergeByCoordinate + , MergeByName + }; + // constructor / destructor public: BamMultiReader(void); @@ -43,6 +51,8 @@ class API_EXPORT BamMultiReader { bool CloseFile(const std::string& filename); // returns list of filenames for all open BAM files const std::vector Filenames(void) const; + // returns curent merge order strategy + BamMultiReader::MergeOrder GetMergeOrder(void) const; // returns true if multireader has any open BAM files bool HasOpenReaders(void) const; // performs random-access jump within current BAM files @@ -53,6 +63,8 @@ class API_EXPORT BamMultiReader { bool OpenFile(const std::string& filename); // returns file pointers to beginning of alignments bool Rewind(void); + // sets an explicit merge order, regardless of the BAM files' SO header tag + void SetExplicitMergeOrder(BamMultiReader::MergeOrder order); // sets the target region of interest bool SetRegion(const BamRegion& region); // sets the target region of interest @@ -97,8 +109,6 @@ class API_EXPORT BamMultiReader { bool LocateIndexes(const BamIndex::IndexType& preferredType = BamIndex::STANDARD); // opens index files for current BAM files. bool OpenIndexes(const std::vector& indexFilenames); - // changes the caching behavior of the index data - void SetIndexCacheMode(const BamIndex::IndexCacheMode& mode); // ---------------------- // error handling