1 #ifndef theplu_yat_omic_bam_read 2 #define theplu_yat_omic_bam_read 25 #include "yat/utility/Aligner.h" 27 #include "yat/utility/Cigar.h" 30 #include <htslib/sam.h> 96 const uint8_t*
aux(
void)
const;
109 const uint8_t*
aux(
const char tag[2])
const;
123 void aux_append(
const char tag[2],
char type,
int len, uint8_t* data);
132 void aux_del(
const char tag[2]);
146 const bam1_core_t&
core(
void)
const;
153 bam1_core_t&
core(
void);
163 const uint32_t*
cigar(
void)
const;
168 uint32_t
cigar(
size_t i)
const;
193 void cigar(
const std::vector<uint32_t>& c) YAT_DEPRECATE;
212 int32_t
end(
void)
const;
221 uint16_t
flag(
void)
const;
267 int32_t
mpos(
void)
const;
272 int32_t
mtid(
void)
const;
279 const char*
name(
void)
const;
286 void name(
const std::string& n);
291 int32_t
pos(
void)
const;
296 uint8_t
qual(
size_t i)
const;
306 void qual(
size_t i, uint8_t q);
320 uint8_t
sequence(
size_t index)
const;
345 void sequence(
const std::string& seq,
const std::vector<uint8_t>&
qual);
378 int32_t
tid(
void)
const;
382 void reserve(uint32_t n);
393 void sequence(
size_t k, uint8_t x, uint8_t y);
401 int& data_size(
void);
402 const int& data_size(
void)
const;
403 uint32_t data_capacity(
void)
const;
449 bool soft_clipped(
const BamRead& bam);
459 uint32_t left_soft_clipped(
const BamRead& bam);
469 uint32_t right_soft_clipped(
const BamRead& bam);
502 :
public std::binary_function<const BamRead&, const BamRead&, bool>
523 :
public std::binary_function<const BamRead&, const BamRead&, bool>
543 :
public std::binary_function<const BamRead&, const BamRead&, bool>
570 template<
typename RandomAccessIterator>
572 double mismatch,
double gap=0.0,
double open_gap=0.0)
574 BOOST_CONCEPT_ASSERT((boost_concepts::ReadableIterator<RandomAccessIterator>));
575 BOOST_CONCEPT_ASSERT((boost_concepts::RandomAccessTraversal<RandomAccessIterator>));
579 for (uint32_t i = 0; i<bam.
core().n_cigar; ++i) {
582 RandomAccessIterator end = ref + bam.
cigar_oplen(i);
583 for (; ref!=end; ++ref) {
604 case (BAM_CSOFT_CLIP): {
int32_t end(void) const
rightmost coordinate
void aux_del(const char tag[2])
remove a tag in aux field
virtual ~BamRead(void)
Destructor.
int32_t mpos(void) const
leftmost position for mate
bool operator()(const BamRead &lhs, const BamRead &rhs) const
const uint8_t * aux(void) const
BamRead(void)
default constructor
The Department of Theoretical Physics namespace as we define it.
const char nt16_str(uint8_t)
int32_t pos(void) const
0-based leftmost coordinate
bool operator()(const BamRead &lhs, const BamRead &rhs) const
void unset_flag_bit(uint16_t x)
std::string sequence(void) const
Class holding a bam query.
Definition: BamRead.h:51
uint8_t qual(size_t i) const
double alignment_score(const BamRead &bam, RandomAccessIterator ref, double mismatch, double gap=0.0, double open_gap=0.0)
Definition: BamRead.h:571
uint32_t cigar_oplen(size_t i) const
const BamRead & operator=(const BamRead &rhs)
assignment operator
uint32_t cigar_op(size_t i) const
Definition: BamRead.h:501
uint16_t flag(void) const
bitwise flag
uint16_t get_flag_bit(uint16_t x) const
void flip_flag_bit(uint16_t x)
int32_t mtid(void) const
Chromosome ID for mate.
void aux_append(const char tag[2], char type, int len, uint8_t *data)
append a new tag to aux field
std::string cigar_str(void) const
bool operator()(const BamRead &lhs, const BamRead &rhs) const
Compact Idiosyncratic Gapped Alignment Report.
Definition: Aligner.h:184
Definition: BamRead.h:542
const bam1_core_t & core(void) const
access core data struct
Definition: BamFile.h:245
Definition: BamRead.h:522
void set_flag_bit(uint16_t x)
Definition: BamFile.h:134
uint32_t sequence_length(void) const
void swap(BamRead &other)
const char * name(void) const
class to iterate through a InBamFile
Definition: BamReadIterator.h:61
int32_t tid(void) const
chromosome ID
const unsigned char nt16_table(char)
bool flag_bit_is_set(uint16_t x) const
char sequence_str(size_t index) const
const uint32_t * cigar(void) const
access CIGAR array