/usr/include/pbdata/sam/SAMReader.hpp is in libpbdata-dev 0~20151014+gitbe5d1bf-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #ifndef _BLASR_SAM_READER_HPP_
#define _BLASR_SAM_READER_HPP_
#include "sam/SAMKeywordValuePair.hpp"
#include "sam/ReadGroup.hpp"
#include "sam/ReferenceSequence.hpp"
#include "sam/AlignmentSet.hpp"
#include "StringUtils.hpp"
#include "utils.hpp"
template<typename T_ReferenceSequence, typename T_ReadGroup, typename T_SAMAlignment>
class SAMReader {
public:
int lineNumber;
std::ifstream samFile;
std::istream *samFilePtr;
bool Initialize(std::string samFileName);
void Close();
enum LineType {Blank, HSHeader, HSSequence, HSReadGroup, HSProgram, HSComment, Alignment, Error};
void GetLine(std::istream &in, std::string &line);
bool LineTypeIsHeader(LineType lineType);
bool PeekLineIsHeader(std::istream &in);
LineType GetLineType(std::string &line);
void StoreKVPairs(std::string line, std::vector<SAMKeywordValuePair> &kvPairs);
int StoreHeader(std::vector<SAMKeywordValuePair> &kvPairs,
AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
void StoreReferenceSequence(std::vector<SAMKeywordValuePair> &kvPairs,
AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
void StoreReadGroup(std::vector<SAMKeywordValuePair> &kvPairs,
AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
void StoreAlignment(std::string & line,
AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
// Not implemented
void StoreProgram(std::vector<SAMKeywordValuePair> &kvPairs,
AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments ) {}
void Read(std::string samFileName, AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
std::vector<std::string> ReadHeader(AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
void Read(AlignmentSet<T_ReferenceSequence, T_ReadGroup, T_SAMAlignment> &alignments);
bool GetNextAlignment(SAMAlignment &alignment);
};
#include "SAMReaderImpl.hpp"
#endif
|