|
|
@@ -123,6 +123,33 @@ pub fn get_n_start(
|
|
|
// Ok(start_positions.len())
|
|
|
}
|
|
|
|
|
|
+pub fn get_n_start_end_qual(
|
|
|
+ bam: &mut rust_htslib::bam::IndexedReader,
|
|
|
+ chr: &str,
|
|
|
+ start: i32,
|
|
|
+ stop: i32,
|
|
|
+ mapq: u8
|
|
|
+) -> Result<usize> {
|
|
|
+ bam.fetch((chr, start, stop))?;
|
|
|
+
|
|
|
+ // let mut start_positions = Vec::new();
|
|
|
+ let mut n_start = 0;
|
|
|
+ for read in bam.records() {
|
|
|
+ let record = read.context(format!("eRR"))?;
|
|
|
+ let rstart = record.pos() as i32;
|
|
|
+ let rend = record.reference_end() as i32;
|
|
|
+ if rstart >= start && rstart < stop || rend >= start && rend < stop {
|
|
|
+ if record.mapq() >= mapq {
|
|
|
+ n_start += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Ok(n_start)
|
|
|
+ // Ok(start_positions.len())
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
pub fn range_depths(
|
|
|
bam: &mut rust_htslib::bam::IndexedReader,
|
|
|
chr: &str,
|