Skip to content

Add optional is_aberration and is_balancer flags to Allele#327

Open
sjm41 wants to merge 4 commits into
mainfrom
feature/allele-is-aberration-is-balancer-flags
Open

Add optional is_aberration and is_balancer flags to Allele#327
sjm41 wants to merge 4 commits into
mainfrom
feature/allele-is-aberration-is-balancer-flags

Conversation

@sjm41

@sjm41 sjm41 commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

FlyBase makes a clear distinction between traditional single-gene alleles and chromosomal aberrations (multi-gene alleles) — handling them as separate data classes (FBal vs FBab) — and balancers are a subtype of aberration. This adds two optional booleans to Allele/AlleleDTO to capture that distinction within the Alliance single Allele class:

  • is_aberration — indicates the allele is a chromosomal aberration (multi-gene allele) rather than a traditional single-gene allele.
  • is_balancer — indicates the allele is a balancer (a recombination-suppressing chromosomal rearrangement). Balancers are a subtype of aberration, so this is only applicable to alleles for which is_aberration is true (documented in the slot description; not schema-enforced).

Both follow the existing is_extinct / is_extrachromosomal / is_integrated pattern — plain optional booleans reused directly in the DTO.

Also

Removes the dead aberration slot_usage entry (flagged by [CG] as no longer declared) and its unused standalone slot definition, which is_aberration supersedes. Both were already absent from the generated artifacts.

Notes

  • No LinkML rule enforcing balancer ⟹ aberration (considered, deliberately left out).
  • generated/ artifacts will be regenerated by CI.

🤖 Generated with Claude Code

sjm41 and others added 2 commits July 2, 2026 17:43
FlyBase distinguishes single-gene alleles from chromosomal aberrations
(multi-gene alleles), and balancers are a subtype of aberration. Add two
optional booleans to Allele/AlleleDTO to capture this, following the
existing is_extinct/is_extrachromosomal/is_integrated pattern.

Also remove the dead aberration slot_usage entry and its unused slot
definition, which is_aberration supersedes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review

Adds two optional boolean flags is_aberration and is_balancer to Allele, and removes the stale, unused aberration string slot (which carried a 2022 "not being used" TODO).

The change is clean and follows the established is_extinct/is_extrachromosomal/is_integrated pattern exactly:

  • Slots added to both Allele and AlleleDTO slot lists.
  • For plain booleans the DTO correctly reuses the same slot name (no _curie/_name suffix needed).
  • domain: Allele, range: boolean, clear descriptions, and required: false in slot_usage — matching the sibling flags.
  • The removed aberration slot has no remaining references in model/schema/** or test/data/**.

No assertions to raise.

Minor note (non-blocking): the is_balancer description states balancers are a subtype of aberration and only applicable when is_aberration is true. That dependency is documentation-only and not enforced by the schema — fine to leave, just flagging that nothing prevents is_balancer: true with is_aberration unset/false.

LGTM.

@sjm41

sjm41 commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

FYI: I put this proposal on the agenda for the Disease and Pheno WG meeting on July 8th.

@gm119 gm119 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would change the 'is_aberration' descriptions so that it avoids mention of 'a multi-gene allele' as a single transgenic insertion can also affect multiple genes (e.g. insertion into overlapping genes), and we would not regard those as an 'aberration'.

Our current FB QA/QC checks require us to type aberrations with a SO term that sits in the 'chromosome_structure_variation ; SO:1000183' branch, this term is defined as 'An alteration of the genome that leads to a change in the structure or number of one or more chromosomes.'

So I think the key part is the 'change in the structure or number of one or more chromosomes'

So I would use the SO term as the basis of the linkml definition for is_aberration instead of having 'a multi-gene allele'., so maybe:

is_aberration:
description: >-
Indicates whether the allele is a chromosomal aberration, defined as 'An alteration of the genome that leads to a change in the structure or number of one or more chromosomes.' (SO:1000183).
domain: Allele
range: boolean

(or however SO terms should be referred to)

sjm41 and others added 2 commits July 3, 2026 08:15
Per review feedback: avoid "multi-gene allele" (a single transgenic
insertion can affect multiple genes without being an aberration).
Base the definition on SO:1000183 (chromosome_structure_variation):
an alteration of the genome changing the structure or number of one
or more chromosomes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sjm41 sjm41 requested a review from gm119 July 3, 2026 07:17

@gm119 gm119 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@sjm41 sjm41 requested a review from chris-grove July 3, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants