De ziekte van Huntington (Huntington's disease; HD), die in 1872 uitvoerig werd beschreven door de Amerikaanse arts George Huntington, is een dominante erfelijke aandoening die bepaalde delen van de hersenen aantast. De eerste symptomen van HD openbaren zich meestal tussen het 35e en 45e levensjaar, en bestaan onder andere uit ongecontroleerde (choreatische) bewegingen die langzaam verergeren, verstandelijke achteruitgang en een verscheidenheid aan psychische afwijkingen. De ziekte leidt gemiddeld na achttien jaar tot de dood van de patiënt(e), veelal door bijkomende oorzaken zoals longontsteking.

HD behoort tot de zogenaamde klasse van trinucleotideherhalingsziekten (trinucleotide repeat disorders), die veroorzaakt worden doordat een repeterende sectie van een gen de normale lengte overschrijdt. Bij HD gaat het om een afwijking in het Huntingtingen. Het Huntingtingen vertoont aan het 5' uiteinde van het DNA een reeks van drie baseparen — cytosine-adenine-guanine (CAG) coderend voor het aminozuur glutamine — die verschillende keren na elkaar herhaald worden (…CAGCAGCAG…). Dit fenomeen staat bekend als een trinucleotideherhaling. Onderstaande figuur toont een verdeling van de normale en geëxpandeerde lengte van de HD trinucleotideherhaling.

ziekte van Huntington
Normale en geëxpandeerde herhalingslengte van HD.



De verdeling van de herhalingslengte voor het Huntingtingen kan worden onderverdeeld in vier categoriën, zoals aangegeven in onderstaande tabel. Herhalingen van 26 of minder zijn normaal. Herhalingen tussen 27 en 35 komen slechts sporadisch voor en worden niet geassocieerd met het tot expressie komen van de ziekte, maar in zeldzame gevallen zullen vaders met dergelijke herhalingen een herhaling overdragen naar hun nakomelingen die geëxpandeerd wordt tot binnen het bereik waarin de ziekte tot expressie komt. Herhalingen tussen 36 en 39 worden geassocieerd met een verhoogd risico, waarbij sommige individuen HD zullen ontwikkelen en andere niet. Herhalingen van 40 of langer worden geassocieerd met het tot expressie komen van HD. Personen die herhalingen vertonen in dit bereik zullen de ziekte van Huntington ontwikkelen, in de veronderstelling dat ze niet aan andere oorzaken sterven voordat de ziekte zich manifesteert.

herhalingslengte diagnose
<27 normaal
27-35 laag risico
36-39 verhoogd risico
>39 absoluut risico

Opgave

  1. Schrijf een functie herhalingslengte, die voor een gegeven string A de maximale reeks van herhalingen van een andere gegeven string B bepaalt. De lengte van de twee gegeven strings is variabel, en de vergelijking tussen beide strings moet uitgevoerd worden zonder verschil te maken tussen hoofdletters en kleine letters. Onderstaande tabel geeft een aantal voorbeelden van parameterwaarden, en het bijhorende resultaat dat door de functie moet gegenereerd worden.

    tekenreeks A tekenreeks B resultaat
    AATCGTCGTCGTAGCTTCGTGGTGAAGATAG CTGTA 0
    AATCGTCGTCGTAGCTTCGTGGTGAAGATAG gtg 2
    aatcgtcgtcgtagcttcgtggtgaagatag TCG 3
    Indien de tekenreeks B niet voorkomt in de tekenreeks A, dan moet de functie de waarde nul als resultaat teruggeven. Indien de tekenreeks A verschillende deelreeksen bevat die bestaan uit herhalingen van de tekenreeks B, dan moet het aantal herhalingen van de langste deelreeks als resultaat worden teruggegeven. Herhalingen overlappen elkaar nooit, zodat bijvoorbeeld de tekenreeks TTTT twee herhalingen bevat van de tekenreeks TT en geen drie.

  2. Schrijf een functie HuntingtonDiagnose, die voor de gegeven DNA sequentie van een Huntingtingen de diagnose stelt omtrent het mogelijke risico op het ontwikkelen van de ziekte van Huntington. Deze diagnose hangt uiteraard af van het aantal herhalingen van de trinucleotide CAG (gebruik hiervoor dus de functie herhalingslengte), en moet als string worden teruggegeven overeenkomstig de eerder vermelde diagnosetabel. Een DNA sequentie wordt hierbij voorgesteld door een string die enkel de lettes A, G, C en T bevat (zowel hoofdletters als kleine letters zijn toegelaten).

Voorbeeld

>>> herhalingslengte("AATCGTCGTCGTAGCTTCGTGGTGAAGATAG","CTGTA")
0
>>> herhalingslengte("AATCGTCGTCGTAGCTTCGTGGTGAAGATAG","gtg")
2
>>> herhalingslengte("aatcgtcgtcgtagcttcgtggtgaagatag","TCG")
3
>>> HuntingtonDiagnose('CAG' * 20)
'normaal'
>>> HuntingtonDiagnose('CAG' * 35)
'laag risico'
>>> HuntingtonDiagnose('CAG' * 38)
'verhoogd risico'
>>> HuntingtonDiagnose('CAG' * 52)
'absoluut risico'