diff --git a/res/grape-Concordance.svg b/res/grape-Concordance.svg index a2cf998..8a77466 100644 --- a/res/grape-Concordance.svg +++ b/res/grape-Concordance.svg @@ -427,10 +427,10 @@ - + - + @@ -460,10 +460,10 @@ - + - + @@ -493,10 +493,10 @@ - + - + @@ -526,10 +526,10 @@ - + - + @@ -676,65 +676,68 @@ - + - + - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -837,42 +840,42 @@ - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -956,123 +959,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1101,9 +1104,9 @@ - - - + + + @@ -1134,8 +1137,8 @@ - - + + @@ -1166,8 +1169,7 @@ - - + @@ -1199,7 +1201,7 @@ - + @@ -1230,7 +1232,6 @@ - @@ -1260,8 +1261,8 @@ - - + + @@ -1292,7 +1293,7 @@ - + @@ -1354,8 +1355,7 @@ - - + @@ -1494,44 +1494,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1634,157 +1634,155 @@ - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1812,8 +1810,8 @@ - - + + @@ -1846,7 +1844,7 @@ - + @@ -1877,8 +1875,8 @@ - - + + @@ -1910,7 +1908,7 @@ - + @@ -1939,10 +1937,10 @@ - - - - + + + + @@ -1974,7 +1972,7 @@ - + @@ -2005,8 +2003,8 @@ - - + + @@ -2038,7 +2036,7 @@ - + @@ -2238,36 +2236,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2354,12 +2352,12 @@ - - - - - - + + + + + + @@ -2379,19 +2377,19 @@ - + - + - + - + - + @@ -2478,36 +2476,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2597,12 +2595,12 @@ - - - - - - + + + + + + @@ -2622,19 +2620,19 @@ - + - + - + - + - + @@ -2673,36 +2671,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2792,12 +2790,12 @@ - - - - - - + + + + + + @@ -2817,19 +2815,19 @@ - + - + - + - + - + @@ -2868,36 +2866,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2991,12 +2989,12 @@ - - - - - - + + + + + + @@ -3016,19 +3014,19 @@ - + - + - + - + - + @@ -3883,48 +3881,55 @@ - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -4038,12 +4043,12 @@ - - - - - - + + + + + + @@ -4066,22 +4071,25 @@ - + - + - + - + - + - + + + + diff --git a/res/grape-Mean_absolute_error.svg b/res/grape-Mean_absolute_error.svg index da8232c..b0697c1 100644 --- a/res/grape-Mean_absolute_error.svg +++ b/res/grape-Mean_absolute_error.svg @@ -327,16 +327,16 @@ - + - + - + @@ -421,10 +421,10 @@ - + - + @@ -454,10 +454,10 @@ - + - + @@ -487,10 +487,10 @@ - + - + @@ -520,10 +520,10 @@ - + - + @@ -670,65 +670,68 @@ - + - + - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -839,11 +842,11 @@ - + - - - + + + @@ -851,22 +854,22 @@ - - - - + + + + - - - - + + + + - - - - + + + + @@ -950,123 +953,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1096,7 +1099,7 @@ - + @@ -1105,7 +1108,7 @@ - + @@ -1120,7 +1123,7 @@ - + @@ -1128,8 +1131,8 @@ - - + + @@ -1137,7 +1140,7 @@ - + @@ -1145,7 +1148,7 @@ - + @@ -1161,14 +1164,14 @@ - + - + @@ -1184,23 +1187,23 @@ - - + + - - + + - + @@ -1208,7 +1211,7 @@ - + @@ -1256,7 +1259,7 @@ - + @@ -1273,7 +1276,7 @@ - + @@ -1281,7 +1284,7 @@ - + @@ -1289,7 +1292,6 @@ - @@ -1305,7 +1307,7 @@ - + @@ -1313,7 +1315,7 @@ - + @@ -1321,7 +1323,7 @@ - + @@ -1336,7 +1338,7 @@ - + @@ -1345,15 +1347,15 @@ - + - - + + @@ -1361,21 +1363,21 @@ - + - - - + + + - + @@ -1491,44 +1493,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1639,11 +1641,11 @@ - + - - - + + + @@ -1651,137 +1653,137 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1809,15 +1811,15 @@ - - + + - - + + @@ -1825,7 +1827,7 @@ - + @@ -1842,13 +1844,13 @@ - + - + @@ -1856,15 +1858,15 @@ - - - + + + - + @@ -1874,21 +1876,21 @@ - + - - + + - + @@ -1896,25 +1898,25 @@ - - - + + + - - - + + + - + - + @@ -1922,13 +1924,13 @@ - + - + @@ -1937,15 +1939,15 @@ - - + + - - + + @@ -1954,15 +1956,15 @@ - + - - + + @@ -1970,13 +1972,13 @@ - + - + @@ -1985,7 +1987,7 @@ - + @@ -1994,21 +1996,21 @@ - + - - + + - + @@ -2016,7 +2018,7 @@ - + @@ -2032,31 +2034,29 @@ - - - + - - + + - - + + - + @@ -2065,7 +2065,7 @@ - + @@ -2074,14 +2074,14 @@ - + - + @@ -2234,36 +2234,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2350,12 +2350,12 @@ - - - - - - + + + + + + @@ -2375,19 +2375,19 @@ - + - + - + - + - + @@ -2474,36 +2474,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2593,12 +2593,12 @@ - - - - - - + + + + + + @@ -2618,19 +2618,19 @@ - + - + - + - + - + @@ -2669,36 +2669,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2788,12 +2788,12 @@ - - - - - - + + + + + + @@ -2813,19 +2813,19 @@ - + - + - + - + - + @@ -2864,36 +2864,36 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -2987,12 +2987,12 @@ - - - - - - + + + + + + @@ -3012,19 +3012,19 @@ - + - + - + - + - + @@ -3879,48 +3879,55 @@ - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + @@ -4034,12 +4041,12 @@ - - - - - - + + + + + + @@ -4062,22 +4069,25 @@ - + - + - + - + - + - + + + + diff --git a/src/filter_missing.rs b/src/filter_missing.rs index 2d1639a..32aad27 100644 --- a/src/filter_missing.rs +++ b/src/filter_missing.rs @@ -51,15 +51,32 @@ impl GenotypesAndPhenotypes { } pub fn missing_rate(&mut self) -> Result { - let (n, l) = self.coverages.dim(); - let sum = self.coverages.fold(0, |sum, &x| { + let (n, p) = self.intercept_and_allele_frequencies.dim(); + let (_n, l) = self.coverages.dim(); + // Count missing data based on coverages + let sum_cov: f64 = self.coverages.fold(0.00, |sum, &x| { if (x.is_nan()) || (x == 0.0) { - sum + 1 + sum + 1.00 + } else { + sum + } + }); + // Count missing data based on missing frequencies + let mut sum_freq: f64 = self.intercept_and_allele_frequencies.fold(0.00, |sum, &x| { + if x.is_nan() { + sum + 1.00 } else { sum } }); - sensible_round(sum as f64 * 100.0 / ((n * l) as f64), 5) + sum_freq = sum_freq / (p as f64 / l as f64); // correct by the number of alleles per locus + // Use the larger and more precise missing count + let sum: f64 = if sum_cov > sum_freq { + sum_cov + } else { + sum_freq + }; + sensible_round(sum * 100.0 / ((n * l) as f64), 5) } pub fn filter_out_top_missing_pools( diff --git a/src/main.rs b/src/main.rs index 85a4ef8..4e11547 100644 --- a/src/main.rs +++ b/src/main.rs @@ -186,7 +186,7 @@ fn main() { &rand_id, &args.n_threads, ) - .expect("Error loading sync.") + .expect("Error loading tsv.") }; // Define missing data let start = std::time::SystemTime::now();