diff --git a/variants/queries.py b/variants/queries.py index 55a35e4a9..24629df79 100644 --- a/variants/queries.py +++ b/variants/queries.py @@ -49,6 +49,7 @@ SmallVariantSummary, ) from variants.plugins import PLUGIN_TYPE_EXTEND_QUERY_INFO, get_active_plugins +from variants.query_presets import IMPACT_PRESETS from variants.utils import class_from_string @@ -1007,6 +1008,8 @@ def extend_conditions(self, _query_parts): class ExtendQueryPartsEffectsFilter(ExtendQueryPartsBase): def extend_conditions(self, _query_parts): + if set(self.kwargs["effects"]) == set(IMPACT_PRESETS.any["effects"]): + return [] return [ OVERLAP( getattr(SmallVariant.sa, "%s_effect" % self.transcript_db), diff --git a/variants/tests/test_queries.py b/variants/tests/test_queries.py index f49f6126f..4b922db26 100644 --- a/variants/tests/test_queries.py +++ b/variants/tests/test_queries.py @@ -1902,6 +1902,11 @@ def setUp(self): refseq_effect=["missense_variant", "frameshift_variant"], variant_set=variant_set, ) + SmallVariantFactory( + release=self.case.release, + refseq_effect=[], + variant_set=variant_set, + ) SmallVariantFactory( release=self.case.release, refseq_effect=["frameshift_variant"], variant_set=variant_set ) @@ -1954,6 +1959,50 @@ def test_effects_all_vcf(self): 3, ) + def test_effects_include_missing_annotation(self): + self.run_query( + CasePrefetchQuery, + { + "effects": [ + "3_prime_UTR_exon_variant", + "3_prime_UTR_intron_variant", + "5_prime_UTR_exon_variant", + "5_prime_UTR_intron_variant", + "coding_transcript_intron_variant", + "complex_substitution", + "direct_tandem_duplication", + "disruptive_inframe_deletion", + "disruptive_inframe_insertion", + "downstream_gene_variant", + "exon_loss_variant", + "feature_truncation", + "frameshift_elongation", + "frameshift_truncation", + "frameshift_variant", + "inframe_deletion", + "inframe_insertion", + "intergenic_variant", + "internal_feature_elongation", + "missense_variant", + "mnv", + "non_coding_transcript_exon_variant", + "non_coding_transcript_intron_variant", + "splice_acceptor_variant", + "splice_donor_variant", + "splice_region_variant", + "start_lost", + "stop_gained", + "stop_lost", + "stop_retained_variant", + "structural_variant", + "synonymous_variant", + "transcript_ablation", + "upstream_gene_variant", + ], + }, + 4, + ) + class TestCaseOneQueryExonDistance(SupportQueryTestBase): """Test exon distance settings"""