d4_hts/alignment/
alignment_ext.rs

1use 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}