Files
GerbilManager/tools/import/genetics-prior-run-notes.md
Gulum aa4552ff84
Some checks failed
CI / Backend Tests (.NET) (push) Successful in 1m8s
CI / Frontend Tests (Node/Vite) (push) Failing after 4m55s
CI / Docker Build & Push (push) Has been skipped
docs(triage): Genetik-Vorlauf-Notizen als Referenz für Engine-Fixes
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 08:34:54 +02:00

46 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Genetik-Engine — Befunde des Vorlaufs (auf veraltetem Basis-Commit, NICHT gemergt)
Diese Notizen stammen aus einem ersten Engine-Lauf, der auf einem ALTEN Stand
(`5e14124`, vor den Genetik-Fixes `b437d09`) aufsetzte und deshalb nicht mergebar war.
Sie dienen als **Spezifikation/Leitfaden** — der aktuelle `main`-Stand hat bereits
Teile davon (uw-Aliasing, `ee[-]`, `e-`-Behandlung, Wildcard-Ansätze). **Erst den
IST-Zustand der Engine prüfen, dann nur noch das umsetzen, was real fehlt/falsch ist.**
## Zentrale Regel (von der Züchterin, Ticket 3e643ef1)
Ein unbekanntes Allel `-` ist eine **Kopie des bekannten, sichtbaren Allels** (A-→AA,
D-→DD, E-→EE), bis das Gen ermittelt ist. NICHT auf das dominanteste Locus-Allel setzen
und im Punnett NICHT über alle Allele streuen. Vorschlag des Vorlaufs: eine zentrale
Funktion `resolveAllelePair()` (eins unbekannt → kopiere bekanntes Partner-Allel; beide
unbekannt → Wildtyp), genutzt von phenotype.ts, catalog.ts, punnett.ts.
## Pro Ticket (Ursache / Fix-Idee / fixNote-Vorschlag)
- **5826e8e2** Goldfuchsschimmel statt Rotaugenschimmel: Katalog-Token `E:'ef'` unterscheidet
homozygot Schimmel (ef/ef) nicht von heterozygot Fuchsschimmel (ef/e). Fix: Katalog-Matching
E-Familien-bewusst; Fuchsschimmel matcht nur `*fuchsschimmel`-Einträge.
fixNote: „Der errechnete Farbschlag wird jetzt richtig als Goldfuchsschimmel erkannt (vorher Rotaugenschimmel). Bitte neu laden."
- **3deab547 / efa2b232** Dilute CP-Blaufuchs statt „blau"/„Unbekannt"/„Zobel": (1) Katalog-Eintrag
„Dilute Blaufuchs" hatte fälschlich `P:'p'` (Verdünnung ist unabhängig vom Augenpigment) →
auf `P:'P'`; (2) `ee[-]``ee` (Fuchs); (3) Colourpoint-Zweig leitet Fuchs/Dilute-CP generisch ab.
fixNote: „Diese Maus wird jetzt korrekt als Dilute CP-Blaufuchs angezeigt (alle dd-Tiere bekommen den Zusatz Dilute'). Bitte neu laden."
- **cc9ea3fe / 1a508c04** Mamta Mini `Ee[-]``Ee`: Rück-Inferenz gespeicherter Genotypen gegen
Eltern fehlt. Fix: neue Engine-Funktion `resolveFromParents()` (homozygoter Elternteil erzwingt
Kind-Allel; `-` auflösen) + Anzeige in der Akte mit Hinweis-Chip „Aus den Eltern ergänzt".
ACHTUNG: Mamta Minis Wurf hat in der DB evtl. keine verknüpften Eltern → Inferenz greift erst,
wenn Eltern am Wurf hinterlegt sind (Import-Seite). Engine-Teil dennoch umsetzen + testen.
fixNote: „Der Gencode am E-Locus wird jetzt aus den Eltern ergänzt: Da Vater Geely reinerbig ee ist, steht bei Mamta Mini jetzt Ee statt Ee-."
- **b034ddd2** `e-` gibt es nicht: nur `E-` und `ee[-]` gültig. (Prüfen, ob `main` das schon tut.)
- **3e643ef1 / c8ce27e2 / 3c46d0b4 / 1e7b66e6** Wurf-Erwartungsfarben: unbekanntes Partner-Allel
darf nicht zu rezessiven Gameten streuen (sonst Phantom-Dilute/„Unbekannt"/„C-Separator").
Fix in punnett.ts (`parentAlleleWeights`) über `resolveAllelePair`. Erwartete-Farben-Liste von
technischen Pseudo-Farben + <1%-Wildcard-Artefakten bereinigen.
fixNote: „Die erwarteten Wurffarben zeigen keine unmöglichen Dilute- oder Unbekannt'-Farben mehr."
- **5151ab20** uw→G-Locus-Darstellung, **473dc345** Vance Kohlfuchs: laut Vorlauf in `main`
vermutlich SCHON gelöst (uw/Uw→G/g Aliasing). Verifizieren; nur falls noch offen, anpassen.
Zusätzlich: `uw[d]` (dense underwhite) muss parsebar sein (`Gg[d]` darf nicht crashen).
## Backend-Mirror
Engine-Katalog wird kanonisch ins Backend gespiegelt: nach Katalog-Änderungen
`npm run gen:catalog` und die `CanonicalGenotype`-Strings in `ApplicationContext.cs`
angleichen (reine Seed-/Referenzwerte; prüfen ob Migration nötig — Seed-Daten via HasData
können eine Migration auslösen).