College “Modelleren en Simuleren” HERSENACTIVITEIT Onderstaande opdracht is een onderdeel van het college Modelleren en Simuleren. De opdracht mag zelfstandig of in tweetallen uitgevoerd worden. De opdracht bestaat uit drie gedeelten. Allereerst is er een theoretisch deel waarin aandacht wordt geschonken aan modelvorming. Vervolgens komt het uitwerken van het opgestelde model met behulp van de computer aan de orde. Tenslotte wordt een stap gezet richting de praktijksituatie. Het praktisch gedeelte van de opdracht moet met behulp van het computerpakket matlab uitgevoerd worden. De benodigde matlabfiles eeg1.m, eeg2.m, plotkubus1.m, plotkubus2.m, potentiaal1.mat en potentiaal2.mat zijn te downloaden op de internetpagina’s van het college. Deze pagina’s zijn bereikbaar via http://www.cs.rug.nl/~michael/teaching/ModSim/. Een matlabprogramma met de naam naam.m wordt in matlab uitgevoerd na het geven van het commando naam. De resultaten van de gemaakte onderdelen moeten verwerkt worden in een verslag. Het verslag moet in de vorm van een artikel geschreven worden, dat goed te volgen is voor iemand die de opdracht niet bij de hand heeft. Maak dus geen verslag waarin staat ’het antwoord van onderdeel 1 is ... het antwoord van onderdeel 2 is ...’, maar maak van het verslag een goed lopend verhaal waar de antwoorden van de verschillende onderdelen in verwerkt zijn. Het verslag moet globaal de volgende opbouw hebben: inleiding, probleemstelling en oplossing, conclusie en bibliografie. De opdracht wordt mede beoordeeld op de kwaliteit van het verslag. 1 Hersenactiviteiten gemeten met een EEG Elektrische hersenactiviteit wordt veroorzaakt door neuronen. Hoe gaat dit precies in zijn werk? Een neuron heeft, net als elke andere cel, een membraan dat selectief doorlaatbaar is voor ionen. Normaal gesproken is de concentratie van deze ionen, zoals kalium, natrium en chloride, aan de binnenkant van de cel anders dan aan de buitenkant van de cel. Door dit concentratieverschil heerst aan de binnenkant van de cel een potentiaal van ongeveer -70 mV ten opzicht van de buitenkant van de cel. Deze waarde is ongeveer gelijk aan het evenwicht voor kalium ionen, waarvoor de neuronen een grote doorlaatbaarheid hebben. Als de cel geprikkeld wordt, verandert de doorlaatbaarheid van bepaalde ionen. Hierdoor kan met name natrium vrij door het membraan bewegen. Als gevolg hiervan wordt de potentiaal van de cel positief. Na korte tijd wordt de doorlaatbaarheid van het membraan weer normaal en wordt de potentiaal hersteld door de stroom van kalium ionen. De bewegende ionen veroorzaken een elektrische stroom in de cel, de zogenaamde primaire stroom, die beschreven kan worden door een dipool (figuur 1), die op zijn beurt elektrische stromen in het omliggende hersenweefsel veroorzaakt, de zogenaamde volumestromen. Elektrische hersenactiviteit kan gemeten worden met een EEG (elektroëncefalogram). Hierbij worden elektroden op het hoofd geplaatst en potentiaalverschillen gemeten (figuur 2). Aan de hand van de gemeten potentialen kan dan de positie in de hersenen bepaald worden waar de hersenactiviteit plaats heeft gevonden. Dit is het zogenaamde inverse probleem: gegeven de elektrische potentiaal op het hoofd, waar liggen dan de veroorzakende bronnen (neuronen) in de hersenen? Wij zullen ons beperken tot het voorwaartse probleem: gegeven de positie van de Modelleren en Simuleren – Hersenactiviteit 2 Figuur 1: Neuronen als bron van elektrische signalen. Figuur 2: EEG metingen van elektrische potentiaal op het hoofd. bronnen (actieve neuronen) in de hersenen, wat is de elektrische potentiaal op het hoofd? Modellering We gaan eerst een wiskundig model afleiden. De elektrische volumestroom E in het hoofd voldoet aan de behoudswet Z Z E · n dΓ = fneuron dΩ, (1) Γ Ω waarin Γ een willekeurig gesloten oppervlak is en Ω het omsloten volume. Deze behoudswet zegt dat de volumestroom die door een gesloten oppervlak naar buiten stroomt, de integraal van E · n, gelijk is aan de hoeveelheid stroom die binnen dat oppervlak wordt geproduceerd (in ons geval door de actieve neuronen, gerepresenteerd door de bronterm fneuron in het rechterlid van (1)). De functie E wordt om begrijpelijke redenen de fluxfunctie genoemd. Modelleren en Simuleren – Hersenactiviteit 3 De volumestroom kan worden beschreven met behulp van een elektrische potentiaal Φ als E = σ grad Φ, waarbij σ de geleidbaarheid van het hersenweefsel voorstelt. Invullen hiervan in (1) leidt tot Z Γ σ grad Φ · n dΓ = Z fneuron dΩ (2) Ω voor ieder volume Ω. Door de schedel gaat geen stroom, E·n = 0, dus daar voldoet de potentiaal aan ∂Φ = 0. (3) ∂n Dit is een randvoorwaarde waarmee (2) eenduidig (op een constante na) kan worden opgelost. Desgewenst is met behulp van de stelling van Gauss (1) om te vormen tot Z div E dΩ = Ω Z fneuron dΩ. Ω En omdat dit voor elk volume Ω geldt, is dit te schrijven als als een Poisson vergelijking voor de potentiaal (div E =) div σ grad Φ = fneuron . (4) Neuron als dipool Zoals hierboven gesteld kan de primaire stroom in de hersenen goed worden beschreven met behulp van dipolen. Een dipool is opgebouwd uit een bron en een put (=negatieve bron), die dicht bij elkaar zijn gelegen. Merk op dat een dipool hiermee een richting heeft! Wanneer in een punt P een bron ter sterkte Q ligt, geldt (bij afwezigheid van andere bronnen) voor elk gesloten oppervlak Γ rond P Z Γ E · n dΓ = Q. (5) Door het gesloten oppervlak gaat een naar buiten gerichte (constante) flux, vandaar de naam bron. Met behulp van (1) is dit te herschrijven als Z Ω fbron dΩ = Q, (6) voor ieder volume Ω om de bron P . In het bijzonder geldt dit voor een willekeurig klein volume. Wiskundig gezien wordt f hiermee een zgn. delta-functie Q δ(x − xP ). In drie dimensies wordt de potentiaal van een bron ter sterkte Q gegeven door φbron = − Q , 4πr (7) waarin r de afstand tot de bron is. Een dipool ontstaat door een bron en een even sterke put vlak naast elkaar te plaatsen. Als voorbeeld behandelen we een dipool met sterkte M in de oorsprong en georienteerd in de positieve x-richting. De bron plaatsen we in het punt (ε/2, 0, 0) en de put in (−ε/2, 0, 0). De Modelleren en Simuleren – Hersenactiviteit 4 sterkte Q van bron en put kiezen we zodanig dat M = Qε. Wanneer we de limiet ε → 0 nemen, wordt in een punt (x, y, z) de potentiaal van de dipool gelijk aan φdipool Q 1 Q 1 + 1/2 2 2 2 2 4π [(x − ε/2) + y + z ] 4π [(x + ε/2] + y 2 + z 2 )1/2 M 1 1 = − 4πε [(x + ε/2)2 + y 2 + z 2 ]1/2 [(x − ε/2)2 + y 2 + z 2 ]1/2 M d 1 → 2 2 4π dx (x + y + z 2 )1/2 M x = − . 2 2 4π (x + y + z 2 )3/2 = − (8) Opgaven – theorie We beginnen met een aantal theoretische opgaven. Hierbij modelleren we de vorm van het hoofd door een bol met straal a, waardoor het gebruik van bolcoördinaten aantrekkelijk is. Neem verder σ = 1. A1. Schrijf de Laplace operator uit (4) in bolcoördinaten, x = r cos ϕ sin θ, y = r sin ϕ sin θ en z = r cos θ (deze hoef je niet uit te rekenen maar mag je opzoeken, geef hierbij wel een bronvermelding). A2. Verifieer dat (7) inderdaad de potentiaal van een bron is, door in (5) voor Γ een willekeurige bol rond de bron te kiezen. A3. Bepaal de potentiaal van een dipool geplaatst in de oorsprong en georienteerd in de negatieve z-richting. Schrijf deze potentiaal in bolcoördinaten. We gaan vervolgens de potentiaal bepalen in het menselijk hoofd als er zich in de oorsprong een neuron bevindt waarvan de activiteit beschreven kan worden met een dipool die gericht is langs de negatieve z-as. Merk op dat het probleem axisymmetrisch is rond de z-as, d.w.z. de potentiaal Φ is alleen een functie van r en θ: Φ(r, θ). Deze potentiaal moet naast (4) ook nog voldoen aan de randvoorwaarde (3). De potentiaal van de dipool voldoet niet aan deze randvoorwaarde. Om het probleem op te lossen kunnen we Φ opsplitsen als Φneuron = Φdip + Φhom , (9) waarbij Φdip de bij A3 bepaalde potentiaal van de dipool is, en Φhom een oplossing van de homogene Poissonvergelijking div grad Φhom = 0, die ervoor moet zorgen dat aan de randvoorwaarde (3) wordt voldaan. A4. Ga na dat (9) inderdaad aan de gewenste Poissonvergelijking (4) voldoet. ∂Φ dip A5. Bepaal de waarde van ∂n (r, θ) op de hoofdhuid r = a. Aan welke randvoorwaarde moet Φhom daarmee voldoen op de hoofdhuid? A6. Bepaal de analytische oplossing voor Φhom . [Hint: probeer een oplossing van de vorm f (r) cos θ.] Wat wordt nu de potentiaal behorend bij het door ons gekozen neuron? Modelleren en Simuleren – Hersenactiviteit 2 5 Computersimulatie De eindige-volume methode Vervolgens gaan we de computer inzetten bij het uitwerken van ons wiskudig model van de activiteit in de menselijke hersenen, gegeven door de behoudswet (1) met randvoorwaarde (3). Hiertoe presenteren we allereerst een korte inleiding tot de eindige-volume methode waarmee we de vergelijkingen in het wiskundig model gaan oplossen. Dit leggen we uit aan de hand van een twee-dimensionale situatie. Voor de eenvoud wordt een rechthoekig rekenrooster gekozen met uniforme cellen; zie figuur 3. De cellen van dit rooster vormen de behoudscellen Ω; de onbekende (in ons geval de potentiaal) definieren we in het midden van een cel. In de figuur is van dit rooster een stukje rond de cel (i, j) weergegeven. Figuur 3: Eindige-volume discretisatie n w (i−1,j) P (i,j) o (i+1,j) δy z (i,j−1) δx De in (1) optredende integralen worden numeriek benaderd met behulp van de midpuntsregel δy [Ex (φo ) − Ex (φw )] + δx [Ey (φn ) − Ey (φz )] = δx δyfP , (10) waarin Ex en Ey de componenten van de fluxfunctie zijn. In ons speciale geval (1) geldt E = σ grad Φ = σ( ∂Φ ∂Φ , ). ∂x ∂y Merk op dat we discreet de componenten van grad Φ heel natuurlijk kunnen bepalen, bijvoorbeeld ∂Φ Φ(i + 1, j) − Φ(i, j) ≈ . ∂x o δx Op deze wijze gaat (10) over in een vergelijking waarin de waarden van Φ in de omringende cellen voorkomen. Een randvoorwaarde als (3) past ook als gegoten in dit raamwerk, omdat deze randvoorwaarde zegt dat de fluxfunctie op de rand nul moet zijn. Discrete dipool Hierboven hebben we analytisch aangegeven hoe de potentiaal van een dipool eruit ziet. We gaan dit nu discreet behandelen. Wederom beginnen we met een bron. De relatie (6) moet Modelleren en Simuleren – Hersenactiviteit (i−1,j) 6 (i,j) (i+1,j) 2 δx Figuur 4: Discrete dipool in positieve x-richting (twee-dimensionaal) gelden voor willekeurig kleine volumes Ω. Discreet bestaan er geen willekeurig kleine volumes: het kleinste volume dat bestaat heeft de afmeting van één roostercel. Daarmee geldt voor een bron Z fbron dΩcel = Q, Ωcel zodat in de drie-dimensionale situatie fbron = Q δx δy δz (11) (blijkbaar is dit het discrete analogon van een delta-functie). Een discrete dipool ter sterkte M in positieve x-richting en gelegen in de cel (i, j, k) kan worden opgebouwd met behulp van een bron in de cel (i + 1, j, k) en een put in de cel (i − 1, j, k) (zie figuur 4 waar de twee-dimensionale situatie is geschetst). Hun afstand is daarmee 2δx, en de benodigde bronsterkte wordt Q = M/2δx. Met behulp van (11) volgt dan de bronterm in de discrete versie van de behoudswet (2) behorend bij een bron die onderdeel is van een dipool. Het oplossen van een stelsel vergelijkingen Na discretisatie ontstaat uiteindelijk een stelsel (lineaire) vergelijkingen waarvan de oplossing moet worden bepaald. In een punt P heeft zo’n vergelijking de structuur (in twee dimensies) CP φi,j − CW φi−1,j − CZ φi,j−1 − CO φi+1,j − CN φi,j+1 = fP . (12) Jacobi De eenvoudigste manier om zo’n vergelijking iteratief op te lossen is de methode van Jacobi. Voor (12) krijgen we in dit geval het iteratievoorschrift (n+1) CP φi,j (n) (n) (n) (n) = CW φi−1,j + CZ φi,j−1 + CO φi+1,j + CN φi,j+1 + fP . (13) Vaak gedraagt een iteratieproces zich heel monotoon. Het loont dan om een grotere stap te nemen, door de stap φ(n+1) − φ(n) te extrapoleren als φ(n+1) = φ(n) + ω(φ∗ − φ(n) ) = ωφ∗ + (1 − ω)φ(n) , waarin φ∗ de door (13) gegeven waarde is. We noemen dit proces relaxatie, waarbij ω > 1 met over relaxatie correspondeert en ω < 1 met onder relaxatie. Modelleren en Simuleren – Hersenactiviteit 7 Gauss-Seidel en SOR Door het rooster heen lopend zie je dat in het rechterlid van (13) al een paar buren ‘ververst’ zijn wanneer je aan cel P toe bent. Het ligt voor de hand om deze nieuwe benaderingen te gebruiken zodra deze beschikbaar zijn. We krijgen dan de methode van GaussSeidel. In geval van ‘leesvolgorde’, d.w.z. zowel i als j oplopend, wordt het iteratievoorschrift voor (12) bij de Gauss-Seidel methode (n+1) CP φi,j (n+1) (n+1) (n) (n) = CW φi−1,j + CZ φi,j−1 + CO φi+1,j + CN φi,j+1 + fP . (14) Deze methode heeft het voordeel dat in een computerprogramma nu met één array voor φ kan worden volstaan, omdat nieuwe waarden ook meteen worden gebruikt. Ook bij deze methode kan relaxatie effectief zijn; we spreken van de de SOR methode (Successieve OverRelaxatie). Convergentie Abstract gezien kunnen we de beschreven (en de meeste andere bestaande) methoden schrijven in de vorm φ(n+1) = M φ(n) + b, (15) waarin M de zgn. iteratiematrix is, die is opgebouwd uit de coefficienten van het op te lossen stelsel, en b is een inhomogene term die voortkomt uit het rechterlid van het oorspronkelijke stelsel. Het iteratieproces convergeert zodra de spectraalradius (d.w.z. het maximum van de absolute waarden van de eigenwaarden) van de matrix M uit (15) kleiner is dan 1. Voor consistent geordende matrices (zie Young, 1971) bestaat er een verband tussen de eigenwaarden λ behorend bij SOR en de eigenwaarden µ behorend bij Jacobi (λ + ω − 1)2 = ω 2 µ2 λ. Een speciaal geval verkrijgen we voor ω = 1, als deze relatie reduceert tot λ = µ2 . Hieruit volgt dat, voor consistent geordende matrices, Gauss-Seidel d.e.s.d. convergeert als Jacobi convergeert. Precieser: voor dergelijke matrices convergeert resp. divergeert Gauss-Seidel twee maal zo snel als Jacobi. Wanneer de spectraalradius van de Jacobi methode (ρJacobi ) bekend is, is het mogelijk om de optimale relaxatiefactor voor de SOR metode te bepalen. In ons voorbeeld kan bewezen worden dat alle eigenwaarden bij de Jacobi methode reëel zijn. In dit geval wordt de optimale SOR relaxatiefactor gegeven door (zie Young (1971) Th. 4-3.3 en 4-3.6; Varga (1962) Sect. 4.3) ωSOR,opt = 2 , 1 + (1 − ρ2Jacobi )1/2 terwijl ρSOR,opt = ωSOR,opt − 1. (16) Opgaven – numeriek Een numerieke behandeling van ons probleem gaat het eenvoudigst in Cartesische (x, y, z)coordinaten. Daarom modelleren we nu het hoofd als een kubus met ribben met eenheidslengte, zodanig dat de oorsprong van het (x, y, z)-assenstelsel in het centrum van de kubus ligt. De zijvlakken van de kubus liggen dus ter plekke van x = ±1/2, respectievelijk y = ±1/2 en z = ±1/2. In deze kubus brengen we een uniform rooster aan met een oneven aantal cellen (i, j, k), zodat de oorsprong van het assenstelsel in het midden van de middelste cel terecht komt. Neem voor de eenvoud in alle richtingen een gelijk aantal cellen Nx = Ny = Nz . N1. Werk de eindige-volume discretisatie uit voor vergelijking (2) in drie dimensies en in een cel (i, j, k) die niet tegen de rand aanligt. N2. Geef aan hoe de discretisatie van (2) eruit ziet in een cel die wel tegen de rand aanligt. Modelleren en Simuleren – Hersenactiviteit 8 N3. Plaats in de cel (i0 , j0 , k0 ) een dipool georienteerd in de negatieve z-richting. In welke cellen wordt nu het rechterlid van de discrete versie van (2) ongelijk aan nul? Hoe groot wordt dit rechterlid in deze cellen wanneer de dipool sterkte M heeft? Vervolgens wordt het tijd om het volledige stelsel vergelijkingen dat het elektrische veld binnen het hoofd beschrijft op te stellen en op te lossen. N4. eeg1.m is een matlab file waarin het veld van een in de oorsprong gelegen neuron met orientatie in de negatieve z-richting kan worden berekend. Het programma gebruikt een rekenrooster met 21 cellen in elk van de drie richtingen, en de Jacobi en Gauss-Seidel methoden zijn al geı̈mplementeerd. a. Los allereerst het optredende stelsel discrete vergelijkingen op met de Jacobi methode. Monitor het convergentiegedrag. De spectraal-radius is 0.9485. b. Gebruik vervolgens de Gauss-Seidel methode en vergelijk de convergentiesnelheid van Gauss-Seidel met die van Jacobi. Verklaar het verschil. c. Gebruik tenslotte de SOR methode. Deze moet zelf geı̈mplementeerd worden (hint kopieer de Gauss-Seidel methode en pas deze aan. Probeer proefondervindelijk de optimale relaxatiefactor te vinden. Vergelijk deze met de theoretisch optimale waarde. Wat vind je van de winst? 3 Het inverse probleem Tot nu toe hebben we het voorwaartse probleem opgelost: we hebben de hersenactiviteit, d.w.z. de positie en richting van een dipool, voorgeschreven en vervolgens berekend wat de potentiaal op het hoofd is. Bij een EEG moet juist het omgekeerde gebeuren: de potentiaal op het hoofd wordt gemeten en aan de hand daarvan wordt berekend op welke posities in de hersenen de hersenactiviteit plaats heeft gevonden. Dit zogenaamde inverse probleem is lastig om op te lossen. Wij zullen daarom voor het EEG probleem ook de voorwaartse aanpak gebruiken: we kiezen de plaats en richting van de dipolen in het hoofd, d.w.z we kiezen de hersenactiviteit, en kijken of de hierdoor ontstane potentiaal op het hoofd overeen komt met de door een EEG gemeten potentiaal op het hoofd. Als we toestaan dat de neuronen zich in willekeurige posities in het hoofd bevinden is de potentiaal op het hoofd niet langer analytisch te bepalen. Daarom is er een programma beschikbaar dat de potentiaal numeriek bepaalt. Als model voor het hoofd gebruiken we een kubus met een ribbe van lengte 1 (dit omdat de discretisatie op een bol moeilijk is). Deze kubus is overdekt met een rooster dat 21 cellen in elke richting heeft. In elke roostercel is de potentiaal in het midden van de cel gedefinieerd. De potentiaalvergelijking is met een eindige-volume methode gediscretiseerd. Het stelsel dat hierdoor ontstaat wordt opgelost met een iteratieve methode, de BiCGstab methode. Om het probleem overzichtelijk te houden nemen we aan dat er maximaal drie actieve neuronen in het hoofd zijn. Verder nemen we aan dat de corresponderende dipolen alleen gericht zijn langs respectievelijk de x-as, y-as en z-as. Opgaven – invers Gebruik voor onderstaande opgaven het matlab programma eeg2.m. Dit programma vraagt eerst om het aantal dipolen dat je wilt plaatsen en vervolgens naar de positie en richting van die dipolen. Als uitvoer naar het scherm geeft het de maxima en minima van de potentiaal op Modelleren en Simuleren – Hersenactiviteit 9 alle zijvlakken van de kubus. Verder toont het programma op twee manieren een plot van de potentiaal op de kubus: de eerste plot geeft een uitvouwing van de kubus weer en de tweede plot laat de kubus zelf zien (helaas heeft matlab problemen met het maken van deze plot, er bevinden zich onverklaarbare vlekken en lijnen in de plot; met behulp van de meest rechtse button in het plotwindow aan te klikken kun je de kubus met de muis roteren). Let op: de windows met de grafieken liggen boven op elkaar. I1. Bepaal de potentiaal op het hoofd (de kubus) als een neuron in het midden van het hoofd actief is en de corresponderende dipool een richting (0, 0, −1) heeft. Wat voor symmetrie moet er in de oplossing zitten? Verklaar op grond van de richting van de dipool waar de potentiaal positief respectievelijk negatief is (op deze manier kan bepaald worden wat de x-, y- en z-richting in de grafieken zijn). I2. De potentiaal op het hoofd is gemeten met een EEG. De file potentiaal1.mat bevat de matrix met de gemeten waarden van de potentiaal op het hoofd (de kubus). Met het commando load potentiaal1 wordt deze data ingeladen in matlab. Met de commando’s figure(3); plotkubus1; figure(4); plotkubus2; worden de twee plots van de potentiaal gemaakt (het programma eeg2.m gebruikt de windows figure(1) en figure(2) al om de plots in te maken). Bepaal (zo precies mogelijk) de positie van de neuronen en de richting van de corresponderende dipolen in het hoofd. Kies hiervoor zelf het aantal dipolen en de positie en richting van die dipolen en bepaal de bijbehorende potentiaal op het hoofd (de kubus). Vergelijk dit met de potentiaal verkregen met de EEG. Verander vervolgens de dipolen, doe dit beredeneerd, probeer gevoel te krijgen van de invloed van de positie en richting van de dipolen op de potentiaal op het hoofd (de kubus). Geef aan welk proces je gevolgd hebt. Geef de (eventuele) moeilijkheden in het proces van het bepalen van de positite van de hersenactiviteiten weer. Voor de geı̈nteresseerden die van een uitdaging houden (dus optioneel): probeer ook eens de positie van de neuronen en de richting van de corresponderende dipolen in het hoofd te bepalen voor de EEG die zich bevindt in de file potentiaal2 (deze file kan ingeladen worden in matlab met het commando load potentiaal2). Bibliografie 1. T.C. Ferree, Electromagnetic Neuroimaging, lecture notes, http://dnl.ucsf.edu/bioeng245/ 2. R. Plonsey, Bioelectric Phenomena, McGraw-Hill Series in Bioengineering, New York, 1969. 3. H.J. Wieringa, MEG, EEG and the Integration with Magnetic Resonance Images, Proefschrift, Universiteit van Twente, Enschede, 1993, http://www.neuro.com/megeeg/ 4. Computational Science Education Project, Direct and Inverse Bioelectric Field Problems, http://csep1.phy.ornl.gov/CSEP/BF/BF.html 5. D. Young, Iterative Solution of Large Linear Systems, Academic Press, 1971; R.S. Varga, Matrix Iterative Analysis, Prentice Hall, 1962.