BamReader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef BAMREADER_H
00011 #define BAMREADER_H
00012
00013 #include "api/api_global.h"
00014 #include "api/BamAlignment.h"
00015 #include "api/BamIndex.h"
00016 #include "api/SamHeader.h"
00017 #include <string>
00018
00019 namespace BamTools {
00020
00021 namespace Internal {
00022 class BamReaderPrivate;
00023 }
00024
00025 class API_EXPORT BamReader {
00026
00027
00028 public:
00029 BamReader(void);
00030 ~BamReader(void);
00031
00032
00033 public:
00034
00035
00036
00037
00038
00039
00040 bool Close(void);
00041
00042 const std::string GetFilename(void) const;
00043
00044 bool IsOpen(void) const;
00045
00046 bool Jump(int refID, int position = 0);
00047
00048 bool Open(const std::string& filename);
00049
00050 bool Rewind(void);
00051
00052 bool SetRegion(const BamRegion& region);
00053
00054 bool SetRegion(const int& leftRefID,
00055 const int& leftPosition,
00056 const int& rightRefID,
00057 const int& rightPosition);
00058
00059
00060
00061
00062
00063
00064 bool GetNextAlignment(BamAlignment& alignment);
00065
00066 bool GetNextAlignmentCore(BamAlignment& alignment);
00067
00068
00069
00070
00071
00072
00073 SamHeader GetHeader(void) const;
00074
00075 std::string GetHeaderText(void) const;
00076
00077
00078
00079
00080
00081
00082 int GetReferenceCount(void) const;
00083
00084 const RefVector& GetReferenceData(void) const;
00085
00086 int GetReferenceID(const std::string& refName) const;
00087
00088
00089
00090
00091
00092
00093 bool CreateIndex(const BamIndex::IndexType& type = BamIndex::STANDARD);
00094
00095 bool HasIndex(void) const;
00096
00097 bool LocateIndex(const BamIndex::IndexType& preferredType = BamIndex::STANDARD);
00098
00099 bool OpenIndex(const std::string& indexFilename);
00100
00101 void SetIndex(BamIndex* index);
00102
00103
00104
00105
00106
00107
00108 std::string GetErrorString(void) const;
00109
00110
00111 private:
00112 Internal::BamReaderPrivate* d;
00113 };
00114
00115 }
00116
00117 #endif // BAMREADER_H