From eec19af0a5fd56a491e7be2674d50d93afd6c11a Mon Sep 17 00:00:00 2001 From: Hana Snow Date: Thu, 29 Oct 2026 14:22:13 -0400 Subject: [PATCH 1/2] add qs cutoff for prioritized search --- clickhouse_search/fixtures/clickhouse_search.json | 8 ++++---- clickhouse_search/test_utils.py | 8 ++++---- seqr/management/commands/tag_seqr_prioritized_variants.py | 2 ++ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/clickhouse_search/fixtures/clickhouse_search.json b/clickhouse_search/fixtures/clickhouse_search.json index 82508b5e00..7a37a98736 100644 --- a/clickhouse_search/fixtures/clickhouse_search.json +++ b/clickhouse_search/fixtures/clickhouse_search.json @@ -1609,8 +1609,8 @@ "filters": [], "sign": 1, "calls": [ - ["HG00731", 2, 4, 13, true, 38717327, 38719636, 3, ["ENSG00000275023"], true, false, false], - ["HG00732", 1, 3, 7, false, 38717327, 38719636, 3, ["ENSG00000275023"], false, false, true], + ["HG00731", 2, 4, 130, true, 38717327, 38719636, 3, ["ENSG00000275023"], true, false, false], + ["HG00732", 1, 3, 70, false, 38717327, 38719636, 3, ["ENSG00000275023"], false, false, true], ["HG00733", null, null, null, null, null, null, null, [], null, null, null] ] } @@ -1625,9 +1625,9 @@ "filters": [], "sign": 1, "calls": [ - ["HG00733", 1, 3, 29, false, 38721781, 38734440, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false], + ["HG00733", 1, 3, 290, false, 38721781, 38734440, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false], ["HG00732", null, null, null, null, null, null, null, [], null, null, null], - ["HG00731", 1, 3, 28, false, 38721781, 38735703, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false] + ["HG00731", 1, 3, 280, false, 38721781, 38735703, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false] ] } }, { diff --git a/clickhouse_search/test_utils.py b/clickhouse_search/test_utils.py index e6fe07bacd..12372c2432 100644 --- a/clickhouse_search/test_utils.py +++ b/clickhouse_search/test_utils.py @@ -914,12 +914,12 @@ 'genotypes': { 'I000004_hg00731': { 'sampleId': 'HG00731', 'sampleType': 'WES', 'individualGuid': 'I000004_hg00731', 'familyGuid': 'F000002_2', - 'numAlt': 2, 'cn': 4, 'qs': 13, 'start': None, 'end': None, + 'numAlt': 2, 'cn': 4, 'qs': 130, 'start': None, 'end': None, 'geneIds': None, 'filters': [], }, 'I000005_hg00732': { 'sampleId': 'HG00732', 'sampleType': 'WES', 'individualGuid': 'I000005_hg00732', 'familyGuid': 'F000002_2', - 'numAlt': 1, 'cn': 3, 'qs': 7, 'start': None, 'end': None, + 'numAlt': 1, 'cn': 3, 'qs': 70, 'start': None, 'end': None, 'geneIds': None, 'filters': [], }, 'I000006_hg00733': { @@ -951,7 +951,7 @@ 'genotypes': { 'I000004_hg00731': { 'sampleId': 'HG00731', 'sampleType': 'WES', 'individualGuid': 'I000004_hg00731', 'familyGuid': 'F000002_2', - 'numAlt': 1, 'cn': 3, 'qs': 28, 'start': None, 'end': None, + 'numAlt': 1, 'cn': 3, 'qs': 280, 'start': None, 'end': None, 'geneIds': None, 'filters': [], }, 'I000005_hg00732': { @@ -961,7 +961,7 @@ }, 'I000006_hg00733': { 'sampleId': 'HG00733', 'sampleType': 'WES', 'individualGuid': 'I000006_hg00733', 'familyGuid': 'F000002_2', - 'numAlt': 1, 'cn': 3, 'qs': 29, 'start': None, 'end': 38734440, + 'numAlt': 1, 'cn': 3, 'qs': 290, 'start': None, 'end': 38734440, 'geneIds': None, 'filters': [], } }, diff --git a/seqr/management/commands/tag_seqr_prioritized_variants.py b/seqr/management/commands/tag_seqr_prioritized_variants.py index 8feb04d1fb..ca52b98901 100644 --- a/seqr/management/commands/tag_seqr_prioritized_variants.py +++ b/seqr/management/commands/tag_seqr_prioritized_variants.py @@ -106,6 +106,7 @@ } SV_QUALITY_FILTER = { 'min_gq_sv': 90, + 'min_qs': 50, } PASS_QUALITY_FILTER = { **QUALITY_FILTER, @@ -115,6 +116,7 @@ PERMISSIVE_PASS_QUALITY_FILTER = { **PASS_QUALITY_FILTER, 'min_gq_sv': 50, + 'min_qs': 50, } CONFIRMED_HIGH_SPLICE_AI_SEARCH = { From 43f48593a183696d1d0fbde15e44fe8ed7920c7d Mon Sep 17 00:00:00 2001 From: Hana Snow Date: Thu, 29 Oct 2026 14:37:15 -0400 Subject: [PATCH 2/2] update tests --- clickhouse_search/all_search_tests.py | 18 +++++++++--------- .../fixtures/clickhouse_search.json | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/clickhouse_search/all_search_tests.py b/clickhouse_search/all_search_tests.py index 04912319c2..85a300a9ff 100644 --- a/clickhouse_search/all_search_tests.py +++ b/clickhouse_search/all_search_tests.py @@ -305,12 +305,12 @@ def test_standard_searches(self): ], project_families=SINGLE_FAMILY_PROJECT_FAMILIES, **VariantSearch.objects.get(name='De Novo/Dominant Permissive').search, ) - self._assert_expected_search([VARIANT2, MITO_VARIANT3], cached_variant_fields=[ - {'selectedTranscript': CACHED_CONSEQUENCES_BY_KEY[2][0]}, {}, + self._assert_expected_search([VARIANT2, GCNV_VARIANT3, MITO_VARIANT3], cached_variant_fields=[ + {'selectedTranscript': CACHED_CONSEQUENCES_BY_KEY[2][0]}, {}, {}, ], project_families=SINGLE_FAMILY_PROJECT_FAMILIES, **VariantSearch.objects.get(name='Recessive Restrictive').search) - self._assert_expected_search([VARIANT2, MITO_VARIANT3], cached_variant_fields=[ - {'selectedTranscript': CACHED_CONSEQUENCES_BY_KEY[2][0]}, {}, + self._assert_expected_search([VARIANT2, GCNV_VARIANT3, MITO_VARIANT3], cached_variant_fields=[ + {'selectedTranscript': CACHED_CONSEQUENCES_BY_KEY[2][0]}, {}, {}, ], project_families=SINGLE_FAMILY_PROJECT_FAMILIES, **VariantSearch.objects.get(name='Recessive Permissive').search) def test_single_project_search(self): @@ -451,8 +451,8 @@ def test_both_sample_types_search(self): ) self._assert_expected_search( - [VARIANT2_BOTH_SAMPLE_TYPES, VARIANT3_BOTH_SAMPLE_TYPES, GCNV_VARIANT1, GCNV_VARIANT2, GCNV_VARIANT4], - inheritance_mode='any_affected', quality_filter={'min_gq': 40, 'min_qs': 20}, project_families=SINGLE_FAMILY_PROJECT_FAMILIES, + [VARIANT2_BOTH_SAMPLE_TYPES, VARIANT3_BOTH_SAMPLE_TYPES, GCNV_VARIANT1, GCNV_VARIANT3, GCNV_VARIANT4], + inheritance_mode='any_affected', quality_filter={'min_gq': 40, 'min_qs': 30}, project_families=SINGLE_FAMILY_PROJECT_FAMILIES, ) self._assert_expected_search( @@ -736,9 +736,9 @@ def test_quality_filter(self): [SV_VARIANT4], quality_filter=quality_filter, project_families=SV_PROJECT_FAMILIES, ) - gcnv_quality_filter = {'min_gq': 40, 'min_qs': 20, 'min_hl': 5} + gcnv_quality_filter = {'min_gq': 40, 'min_qs': 30, 'min_hl': 5} self._assert_expected_search( - [VARIANT2, MULTI_FAMILY_VARIANT, GCNV_VARIANT1, GCNV_VARIANT2, GCNV_VARIANT4, MITO_VARIANT1, MITO_VARIANT3], quality_filter=gcnv_quality_filter, + [VARIANT2, MULTI_FAMILY_VARIANT, GCNV_VARIANT1, GCNV_VARIANT3, GCNV_VARIANT4, MITO_VARIANT1, MITO_VARIANT3], quality_filter=gcnv_quality_filter, ) sv_quality_filter = {'min_gq_sv': 40} @@ -747,7 +747,7 @@ def test_quality_filter(self): ) self._assert_expected_search( - [VARIANT2, MULTI_FAMILY_VARIANT, GCNV_VARIANT1, MITO_VARIANT1, MITO_VARIANT2], quality_filter={'min_gq': 40, 'min_qs': 30, 'vcf_filter': 'pass'}, + [VARIANT2, MULTI_FAMILY_VARIANT, GCNV_VARIANT4, MITO_VARIANT1, MITO_VARIANT2], quality_filter={'min_gq': 40, 'min_qs': 200, 'vcf_filter': 'pass'}, ) self._assert_expected_search( diff --git a/clickhouse_search/fixtures/clickhouse_search.json b/clickhouse_search/fixtures/clickhouse_search.json index 7a37a98736..a27a0f9410 100644 --- a/clickhouse_search/fixtures/clickhouse_search.json +++ b/clickhouse_search/fixtures/clickhouse_search.json @@ -1686,8 +1686,8 @@ "filters": [], "sign": 1, "calls": [ - ["HG00731", 1, 3, 28, false, 38721781, 38735703, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false], - ["HG00733", 1, 3, 29, false, 38721781, 38734440, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false] + ["HG00731", 1, 3, 280, false, 38721781, 38735703, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false], + ["HG00733", 1, 3, 290, false, 38721781, 38734440, 7, ["ENSG00000275023", "ENSG00000277258", "ENSG00000277972"], false, true, false] ] } }, {