diff --git a/VariantValidator/modules/valoutput.py b/VariantValidator/modules/valoutput.py index dae38cfb..71b46ffb 100644 --- a/VariantValidator/modules/valoutput.py +++ b/VariantValidator/modules/valoutput.py @@ -114,7 +114,8 @@ def format_as_table(self, with_meta=True): for variant in self.output_list: # Get additional warnings from lovd syntax check - self.lovd_syntax_check(variant) + if variant.output_type_flag == 'warning': + self.lovd_syntax_check(variant) prot = '' if variant.hgvs_predicted_protein_consequence is not None: diff --git a/VariantValidator/modules/vvMixinCore.py b/VariantValidator/modules/vvMixinCore.py index e94b2d23..2bd4eeda 100644 --- a/VariantValidator/modules/vvMixinCore.py +++ b/VariantValidator/modules/vvMixinCore.py @@ -1297,6 +1297,30 @@ def validate(self, for build_key, accession_dict in list(lifted_response.items()): try: accession_key = list(accession_dict.keys())[0] + for k, v in accession_dict.items(): + hgvs = v["hgvs_genomic_description"].posedit + edit = hgvs.edit + + # Extract HGVS coordinates and edit type (do NOT mutate) + start = int(hgvs.pos.start.base) + end = int(hgvs.pos.end.base) + variant_type = edit.type # 'del', 'dup', 'inv' + + # Only apply SV-style formatting for large variants + if (variant_type in ["del", "dup", "inv"] + and len(edit.ref) >= 50): + + # Overwrite/standardise VCF-style fields if still needed + v["vcf"]["pos"] = str(start) # VCF left anchor convention + v["vcf"]["ref"] = str(end) + v["vcf"]["alt"] = variant_type.upper() + + else: + # Small variants: keep original VCF-style representation + # (no SV transformation) + pass + + if accession_dict[accession_key]['hgvs_genomic_description'].ac.startswith('NC_'): primary_assembly_loci[build_key.lower()] = accession_dict[accession_key] else: