d4_hts/alignment/
alignment_ext.rs1use super::Alignment;
2impl<'a> Alignment<'a> {
3 pub fn flag(&self) -> u16 {
4 self.hts_obj().core.flag
5 }
6
7 pub fn seq_len(&self) -> usize {
8 self.hts_obj().core.l_qseq as usize
9 }
10
11 pub fn map_qual(&self) -> u8 {
12 self.hts_obj().core.qual
13 }
14
15 pub fn ref_begin(&self) -> usize {
16 self.hts_obj().core.pos as usize
17 }
18
19 pub fn ref_len(&self) -> usize {
20 self.cigar()
21 .filter_map(|x| {
22 if x.in_reference() {
23 Some(x.len as usize)
24 } else {
25 None
26 }
27 })
28 .sum()
29 }
30
31 pub fn ref_end(&self) -> usize {
32 self.ref_begin() + self.ref_len()
33 }
34
35 pub fn ref_id(&self) -> i32 {
36 self.hts_obj().core.tid
37 }
38}