|
|
@@ -731,6 +731,25 @@ impl Variant {
|
|
|
},
|
|
|
)
|
|
|
}
|
|
|
+
|
|
|
+ pub fn mean_alt_depth(&self) -> Option<(u32, u32)> {
|
|
|
+ let (sum_alt, sum_depth, count) = self
|
|
|
+ .vcf_variants
|
|
|
+ .iter()
|
|
|
+ .filter_map(|v| v.formats.n_alt_depth())
|
|
|
+ .fold((0u64, 0u64, 0u64), |(sx, sy, cnt), (x, y)| {
|
|
|
+ (sx + x as u64, sy + y as u64, cnt + 1)
|
|
|
+ });
|
|
|
+
|
|
|
+ if count == 0 {
|
|
|
+ None
|
|
|
+ } else {
|
|
|
+ Some((
|
|
|
+ ((sum_alt + count / 2) / count) as u32,
|
|
|
+ ((sum_depth + count / 2) / count) as u32,
|
|
|
+ ))
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
pub fn group_variants_by_bnd_desc(variants: &[Variant], threshold: u32) -> Vec<Vec<Variant>> {
|