Thomas 2 лет назад
Родитель
Сommit
81457f6a51
1 измененных файлов с 23 добавлено и 0 удалено
  1. 23 0
      src/lib.rs

+ 23 - 0
src/lib.rs

@@ -114,3 +114,26 @@ pub fn get_n_start(
 
     Ok(start_positions.len())
 }
+
+pub fn range_depths(
+    bam: &mut rust_htslib::bam::IndexedReader,
+    chr: &str,
+    start: i32,
+    stop: i32,
+) -> Result<Vec<u32>> {
+    bam.fetch((chr, start, stop))?;
+
+    let mut depths = Vec::new();
+
+    for p in bam.pileup() {
+        let pileup = p.context(format!("eRR"))?;
+        let rstart = pileup.pos() as i32;
+        if rstart >= start && rstart < stop {
+            depths.push(pileup.depth());
+        } else if rstart >= stop {
+            break;
+        }
+    }
+
+    Ok(depths)
+}