In de 19e eeuw waren bloedtransfusies een zeer riskante onderneming. Patiënten konden de ingreep weliswaar overleven, maar het aantal sterfgevallen lag bijzonder hoog. Om die reden werden bloedtransfusies enkel en alleen maar uitgevoerd bij zeer ernstig bloedverlies, als er geen andere mogelijkheden meer waren om het leven van de patiënt te redden. In 1900 ontdekte de Oostenrijkse wetenschapper Karl Landsteiner de oorzaak voor het grote aantal sterfgevallen. Er bestaan namelijk verschillende bloedgroepen en door de vermenging ervan kunnen rode bloedcellen aan elkaar klonteren. Landsteiner ontving in 1930 de Nobelprijs voor Fysiologie en Geneeskunde voor zijn werk. Door voorafgaand aan bloedtransfusies een monster bloed van donor en ontvanger te vermengen en zo de bloedgroep te vergelijken, werden bloedtransfusies een levensreddende ingreep.

bloedgroep

Het bloed van elke persoon heeft twee merkers die ABO allelen genoemd worden. Elk van deze merkers wordt voorgesteld door één van drie letters: A, B of O. Hierdoor kan elke persoon één van zes mogelijke combinaties van deze allelen hebben, die elk resulteren in een bepaalde ABO bloedgroep voor deze persoon zoals aangegeven in onderstaande tabel.

kruising ABO bloedgroep
A en A A
A en B AB
A en O A
B en B B
B en O B
O en O O

Volledig analoog heeft het bloed van elke persoon twee allelen voor de rhesusfactor. Deze rhesusfactor wordt voorgesteld door de karakters + en -. Een persoon die rhesuspositief is, heeft ten minste één + allel maar kan er ook twee hebben. Iemand die rhesusnegatief is, heeft altijd twee - allelen. Dit wordt geïllustreerd in onderstaande tabel.

kruising rhesusfactor
+ en + +
+ en - +
- en - -

De bloedgroep van een persoon wordt bepaald door de combinatie van de ABO bloedgroep en de rhesusfactor. Deze bloedgroep wordt genoteerd door de lettercombinatie van de ABO bloedgroep te laten volgen door een plus- of minteken dat de rhesusfactor voorstelt. Voorbeelden zijn A+, AB- en O-.

Bloedgroepen worden overgeërfd: elke biologische ouder geeft één ABO allel (willekeurig gekozen uit de twee aanwezige allelen) en één rhesusallel door aan zijn of haar kind. Op die manier bepalen de 2 ABO allelen en 2 rhesusallelen van de ouders de bloedgroep van het kind. Stel bijvoorbeeld dat beide ouders van een kind bloedgroep A- hebben, dan kan het kind ofwel bloedgroep A- of bloedgroep O- hebben. Een kind met ouders die bloedgroep A+ en B+ hebben kan elke mogelijke bloedgroep hebben.

Opgave

Bij deze opgave krijg je telkens de bloedgroep van beide ouders of van één ouder en zijn of haar kind. Op basis van deze gegevens moet je de (mogelijk lege) verzameling bepalen van alle mogelijke bloedgroepen die het kind of de andere ouder kan hebben.

Opmerking: Bij dit probleem wordt de hoofdletter O gebruikt in de notatie van bloedgroepen, en niet het cijfer 0 (nul).

Voorbeeld

>>> bloedgroep_kind('O+', 'O-')
{'O+', 'O-'}
>>> bloedgroep_kind('O-', 'O-')
{'O-'}
>>> bloedgroep_kind('AB-', 'AB+')
{'A+', 'A-', 'AB+', 'AB-', 'B+', 'B-'}

>>> bloedgroep_ouder('O+', 'O-')
{'A-', 'A+', 'B-', 'B+', 'O-', 'O+'}
>>> bloedgroep_ouder('AB+', 'O+')
set()