3.6 KiB
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) → aufP:'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-FunktionresolveFromParents()(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: nurE-undee[-]gültig. (Prüfen, obmaindas 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) überresolveAllelePair. 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
mainvermutlich 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).