From 16387a3127f2abca225a54bf484e8c1cf01e6e4d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 09:33:08 -0400 Subject: [PATCH] Optimizations for IAF (#553) (#559) Co-authored-by: Adam Wenocur Co-authored-by: Adam Wenocur --- apis/python/tests/test_tiledbvcf.py | 2 +- libtiledbvcf/src/read/reader.cc | 8 ++++---- libtiledbvcf/src/stats/variant_stats_reader.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apis/python/tests/test_tiledbvcf.py b/apis/python/tests/test_tiledbvcf.py index 61bf9ba82..797c3c5d4 100755 --- a/apis/python/tests/test_tiledbvcf.py +++ b/apis/python/tests/test_tiledbvcf.py @@ -1177,7 +1177,7 @@ def test_ingest_with_stats(tmp_path): data_frame[ (data_frame["sample_name"] == "second") & (data_frame["pos_start"] == 4) ]["info_TILEDB_IAF"].iloc[0][0] - == 0.0625 + == 0.125 ) diff --git a/libtiledbvcf/src/read/reader.cc b/libtiledbvcf/src/read/reader.cc index a9fa8c229..4ac0c3b51 100644 --- a/libtiledbvcf/src/read/reader.cc +++ b/libtiledbvcf/src/read/reader.cc @@ -1246,6 +1246,10 @@ bool Reader::process_query_results_v4() { const auto& regions = regions_indexes->second; bool apply_af_filter = af_filter_enabled(); + size_t num_samples = 0; + if (params_.scan_all_samples) { + num_samples = dataset_->sample_names().size(); + } for (; read_state_.cell_idx < num_cells; read_state_.cell_idx++) { // For easy reference const uint64_t i = params_.sort_real_start_pos ? @@ -1283,10 +1287,6 @@ bool Reader::process_query_results_v4() { read_state_.query_results.af_values.clear(); int allele_index = 0; - size_t num_samples = 0; - if (params_.scan_all_samples) { - num_samples = dataset_->sample_names().size(); - } bool is_ref = true; for (auto&& allele : alleles) { auto [allele_passes, af] = af_filter_->pass( diff --git a/libtiledbvcf/src/stats/variant_stats_reader.h b/libtiledbvcf/src/stats/variant_stats_reader.h index ee2e7a857..3772f096f 100644 --- a/libtiledbvcf/src/stats/variant_stats_reader.h +++ b/libtiledbvcf/src/stats/variant_stats_reader.h @@ -137,7 +137,7 @@ class AFMap { if (next_allele == pos_map.second.end()) { return 0; } - return 1.0 * next_allele->second / pos_map.first; + return 1.0 * next_allele->second / num_samples; } /**