소스 검색

mean_alt_depth

Thomas 7 달 전
부모
커밋
a1a2c6e8d0
1개의 변경된 파일19개의 추가작업 그리고 0개의 파일을 삭제
  1. 19 0
      src/variant/variant_collection.rs

+ 19 - 0
src/variant/variant_collection.rs

@@ -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>> {