|
|
@@ -189,11 +189,13 @@ pub fn get_start_end_qual_rec(
|
|
|
start: i32,
|
|
|
stop: i32,
|
|
|
mapq: u8,
|
|
|
-) -> Result<Vec<Vec<Record>>> {
|
|
|
+) -> Result<(Vec<Vec<Record>>, Vec<Vec<Record>>)> {
|
|
|
bam.fetch((chr, start, stop))?;
|
|
|
let length = stop - start;
|
|
|
- let mut results: Vec<Vec<Record>> = Vec::new();
|
|
|
- results.resize(length as usize, vec![]);
|
|
|
+ let mut results_start: Vec<Vec<Record>> = Vec::new();
|
|
|
+ results_start.resize(length as usize, vec![]);
|
|
|
+ let mut results_end: Vec<Vec<Record>> = Vec::new();
|
|
|
+ results_end.resize(length as usize, vec![]);
|
|
|
|
|
|
for read in bam.records() {
|
|
|
let record = read.context(format!("Error while parsing record"))?;
|
|
|
@@ -203,7 +205,7 @@ pub fn get_start_end_qual_rec(
|
|
|
if rstart >= start && rstart < stop {
|
|
|
if record.mapq() >= mapq {
|
|
|
let index = rstart - start;
|
|
|
- results
|
|
|
+ results_start
|
|
|
.get_mut(index as usize)
|
|
|
.unwrap()
|
|
|
.push(record.clone());
|
|
|
@@ -213,14 +215,14 @@ pub fn get_start_end_qual_rec(
|
|
|
if rend >= start && rend < stop {
|
|
|
if record.mapq() >= mapq {
|
|
|
let index = rend - start;
|
|
|
- results
|
|
|
+ results_start
|
|
|
.get_mut(index as usize)
|
|
|
.unwrap()
|
|
|
.push(record.clone());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- Ok(results)
|
|
|
+ Ok((results_start, results_end))
|
|
|
}
|
|
|
|
|
|
pub fn range_depths(
|