1 #ifndef theplu_yat_omic_bam_read
2 #define theplu_yat_omic_bam_read
21 #include "config_bam.h"
23 #include YAT_BAM_HEADER
24 #include YAT_SAM_HEADER
32 #define BAM_CIGAR_STR "MIDNSHP=XB"
33 #define BAM_CIGAR_TYPE 0x3C1A7
35 #define bam_cigar_op(c) ((c)&BAM_CIGAR_MASK)
36 #define bam_cigar_oplen(c) ((c)>>BAM_CIGAR_SHIFT)
37 #define bam_cigar_opchr(c) (BAM_CIGAR_STR[bam_cigar_op(c)])
38 #define bam_cigar_gen(l, o) ((l)<<BAM_CIGAR_SHIFT|(o))
39 #define bam_cigar_type(o) (BAM_CIGAR_TYPE>>((o)<<1)&3)
103 const uint8_t*
aux(
void)
const;
110 const bam1_core_t&
core(
void)
const;
117 bam1_core_t&
core(
void);
125 const uint32_t*
cigar(
void)
const;
130 uint32_t
cigar(
size_t i)
const;
152 void cigar(
const std::vector<uint32_t>& c);
157 uint8_t
qual(
size_t i)
const;
164 const char*
name(
void)
const;
169 int32_t
tid(
void)
const;
174 int32_t
pos(
void)
const;
184 int32_t
end(
void)
const;
189 int32_t
mtid(
void)
const;
194 int32_t
mpos(
void)
const;
208 uint8_t
sequence(
size_t index)
const;
220 uint16_t
flag(
void)
const;
253 bool soft_clipped(
const BamRead& bam);
263 uint32_t left_soft_clipped(
const BamRead& bam);
273 uint32_t right_soft_clipped(
const BamRead& bam);
295 :
public std::binary_function<const BamRead&, const BamRead&, bool>
316 :
public std::binary_function<const BamRead&, const BamRead&, bool>