Ein effizientes Verfahren zur Berechnung der Potentiale in kortikalen neuronalen Kolumnen. Diplomarbeit, Vorgelegt von Alexander Wanner Universität Heidelberg Fakultät für Mathematik und Informatik 13. Dezember 2007 Betreuer: Prof. Dr. Gabriel Wittum Inhaltsverzeichnis 1 Einleitung 1 2 Biologische Grundlagen 3 2.1 Struktur von Nervenzellen . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Elektrophysiologische Eigenschaften von Nervenzellen . . . . . . . . 5 2.2.1 Membranpotential . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.2 Aktionspotential . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.3 Elektrotonische Signalleitung . . . . . . . . . . . . . . . . . 7 Die Neokortikale Kolumne . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 3 NeuGen 12 4 Modellierung 15 4.1 Das Neuron als eine Menge von Kabelgleichungen . . . . . . . . . . 15 4.1.1 Dimensionslose Kabelgleichung . . . . . . . . . . . . . . . . 19 4.2 Analytische Lösungen der Kabelgleichung . . . . . . . . . . . . . . . 20 4.3 Ionenkanäle vom Hodgkin-Huxley Typ . . . . . . . . . . . . . . . . 22 4.4 Typen von Synapsen . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5 Diskretisierung 5.1 5.2 26 Das Multi-Compartment-Modell . . . . . . . . . . . . . . . . . . . . 26 5.1.1 Aufteilung des Membranstroms . . . . . . . . . . . . . . . . 28 5.1.2 Komponenten des Membranstroms . . . . . . . . . . . . . . 28 5.1.3 Aufteilung des kapazitativen Stroms 5.1.4 Membran-Ionenströme. . . . . . . . . . . . . . . . . . . . . . 31 . . . . . . . . . . . . . 29 Zeitliche Diskretisierung . . . . . . . . . . . . . . . . . . . . . . . . 31 i Inhaltsverzeichnis 5.3 5.2.1 Staggered Steps . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.2.2 Die Baummatrix . . . . . . . . . . . . . . . . . . . . . . . . 33 Der Löser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6 Die Implementierung 6.1 Wahl der Programmiersprache . . . . . . 6.2 Definition einer Simulation . . . . . . . . 6.2.1 Definition des Modells . . . . . . 6.2.2 Einlesen von Netzen aus NeuGen 6.3 Der Löser . . . . . . . . . . . . . . . . . 6.4 Parallelisierung . . . . . . . . . . . . . . 6.4.1 Das MPI Programmiermodell . . 6.4.2 Parallele Kommunikation . . . . . . . . . . . . . 36 36 36 37 38 40 44 44 45 7 Untersuchung der numerischen Konvergenz 7.1 Analytische Lösung für endliche Kabel . . . . . . . . . . . . . . . . 7.2 Konvergenztests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Die Approximation der analytischen Lösung . . . . . . . . . 49 49 52 55 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Simulationen und numerische Resultate 59 8.1 Simulation eines Netzes aus 5000 Neuronen . . . . . . . . . . . . . . 59 8.2 Laufzeitverhalten und Speicherverbrauch . . . . . . . . . . . . . . . 64 9 Zusammenfassung und Ausblick 68 10 Anhang 10.1 Elektrophysiologische Parameter der Kolumne . . . . . . . . . . . . 10.1.1 Ionenkanäle . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.2 Synapsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Beispiele für die Definition eines Modells zur Simulation mit NeuSim 71 71 71 71 72 Abbildungsverzeichnis 77 Tabellenverzeichnis 80 Literaturverzeichnis 81 ii 1 Einleitung Lebewesen begegnen den Anforderungen der sich ändernden Umwelt auf verschiedene Weise. Bei Organismen mit weniger entwickelten Nervensystemen bedeutet Adaption meist Anpassung auf der Ebene der Spezies, Verschiebungen in der Zusammensetzung des Genpools und Mutation. Mit zunehmender Körpermasse von Tieren ist allerdings die Reduktion der Individuenanzahl und der Reproduktionsrate verbunden. Damit wird das Individuum für das Überleben der Spezies wichtiger. Das Nervensystem ist einer der Faktoren, die entscheiden, ob ein Tier lange genug überlebt und sich erfolgreich fortpflanzen kann. Höhere genetische Trägheit der Spezies wird also durch intelligenteres Verhalten kompensiert. Das Gehirn von Säugetieren gehört mit zu den komplexesten Systemen, die wir kennen. Die rasanten Fortschritte der Neurobiologie erfordern deshalb leistungsfähige numerische Werkzeuge, um Modelle zur Informationsverarbeitung von Nervenzellen und neuronalen Netzwerken zu testen und neue Theorien aufzustellen. Ein Aspekt der Komplexität ist die Anzahl der Neuronen, die an der neuronalen Informationsverarbeitung beteiligt sind. Ein Versuch, die Komplexität des neuronalen Netzes auf die Interaktion zwischen einzelnen Neuronen zu reduzieren, sind Single-Compartment-Modelle, die ein Neuron durch eine Art Black-Box repräsentieren. Die Eigenschaften solcher Neurone resultieren nicht aus ihrer Geometrie und Elektrophysiologie, sondern werden vom Experimentator vorgegeben. Es leuchtet ein, dass solche Modelle ihre Grenzen haben, wenn man die beiden anderen Aspekte der Komplexität des neuronalen Verhaltens betrachtet, die ausdifferenzierte und spezialisierte Form der Nervenzellen und die komplexen Eigenschaften der Membran. Die Eigenschaften der Zellmembran hängen von der Vorgeschichte der jeweiligen Zelle ebenso ab wie von der Konzentration von bestimmten Substanzen sowie dem elektrischen Potentialgefälle zwischen dem Inneren der Zellen und dem sie um- 1 1 Einleitung gebenden Medium. Schon sehr kleine Unterschiede in den Ausgangsbedingungen können darüber entscheiden, ob eine Zelle feuert oder nicht. Betrachten wir zusätzlich die komplexe Form von den meisten Nervenzellen, so wird klar, dass die möglichst genaue Approximation der neuronalen Geometrie kritisch für das Verhalten von Neuronen ist. Eine weit verbreitete Methode das Neuron mathematisch zu modellieren ist, es als eine Menge von gekoppelten Kabelabschnitten mit Kabelgleichungen zu beschreiben. Mit Multi-Compartment-Modellen werden dann die räumlichen Diskretisierungen der Kabelgleichungen beschrieben, die numerisch berechnet werden können. Die zeitlichen Diskretisierungen der Kabelgleichungen sind daher Verfahren zur Lösung der gewöhnlichen Differentialgleichungen. Für die Leistungsfähigkeit eines Multi-Compartment-Modells ist es von Bedeutung, dass es leicht vergröbert oder verfeinert werden kann, ohne die Konvergenzordnung des Verfahrens zu beeinflussen. Insbesondere sollte es möglich sein, die Synapsen nicht nur an ganz bestimmten Punkten im Modell zu positionieren. Wir haben uns für das Multi-Compartment-Modell von Lindsay und Rosenberg [8] entschieden, weil es eine höhere Genauigkeit und damit eine höhere Simulationsgeschwindigkeit verspricht als das Standardprogramm NEURON [1]. Der Vorteil kommt dadurch zustande, dass die genaue Position des synaptischen Inputs in die Rechnung einfließt, während das herkömmliche Modell die Synapsen im Zentrum des jeweiligen Compartments lokalisiert. Die Frage der Geschwindigkeit ist sehr wichtig, denn durch die Nichtlinearität der Membraneigenschaften sind an kritischen Stellen sehr kleine Schrittweiten der Zeitdiskretisierung erforderlich. Um die Simulation weiter zu beschleunigen benutzen wir parallele Computer. Das Problem wird hierbei in kleinere Teilprobleme aufgeteilt, die auf jeweils einem Prozessorkern berechnet werden. Ein effizientes paralleles Kommunikationsprotokoll benutzt nichtblockierende Operationen, um den Aufwand für Kommunikation zu reduzieren. Als Anwendung des numerischen Verfahrens, wollen wir hier das Verhalten einer neokortikalen Kolumne der Ratte simulieren, die als Basiseinheit in verschiedenen Ausprägungen in den Gehirnen der meisten Säugetiere vorkommt. Durch die Modellierung und Simulation hoffen wir, Beiträge zum Verständnis des Gehirns zu liefern. 2 2 Biologische Grundlagen In diesem Kapitel stellen wir neurobiologische Grundlagen vor, die zum Verstehen der Signalverarbeitung der Nervenzelle und der neokortikalen Kolumne der Ratte notwendig sind. 2.1 Struktur von Nervenzellen Eine Nervenzelle ist eine Grundeinheit der neuronalen Informationsverarbeitung und hat entsprechend dieser Funktion einen spezifischen Aufbau. Vom Zellkörper, dem Soma, zweigen baumartige Strukturen - Dendriten und Axon - ab (Abbildung 2.1). Synapsen dienen dazu, Signale von einem Neuron zum anderen oder Muskelfasern weiterzuleiten. Meistens leiten sie die Signale vom Axon einer Zelle zu dem Soma oder Dendriten einer anderen Zelle. Abbildung 2.1: Schematischer Aufbau des Neurons Das Innere der Zelle ist mit einer Flüssigkeit, dem Zytoplasma gefüllt, in das verschiedene Organellen eingebettet sind. Gleichzeitig dient das Zytoplasma als Medium für elektrische Ströme innerhalb der Zelle, die aus geladenen Ionen bestehen. Die Zellmembran grenzt das Innere der Nervenzelle vom Außenraum ab. Sie besteht aus einer Doppellipidschicht, in die Kohlenhydrate und Proteine eingebettet sind. Die Zellmembran reguliert den Fluss von Wasser, Ionen und Proteinen in 3 2 Biologische Grundlagen und aus der Nervenzelle. Es gibt verschiedene Typen von Nervenzellen. Ein Unterscheidungsmerkmal ist die Anzahl der Fortsätze, die am Soma beginnen. Unipolare Zellen haben nur einen Somafortsatz, so wie zum Beispiel sensorische Neuronen. Bipolare Zellen, Neuronen mit zwei Somafortsätzen kommen in der Netzhaut des Auges vor. Abbildung 2.2 zeigt die schematische Darstellung verschiedener Polarität. Ein anderes Unterscheidungsmerkmal ist die Myelierung der Axone. Myelin ist eine fettreiche Substanz, die die Axone mancher Neuronen spiralförmig umwickelt. Es dient als zusätzlicher Isolator und ermöglicht eine höhere Signalgeschwindigkeit innerhalb des Axons. Dies trifft insbesondere bei Neuronen auf, deren Ausgabesignal schnell über große Entfernungen geleitet werden soll. So werden verschiedene Bereiche der Großhirnrinde typischerweise über myelierte Axone miteinander verbunden. Eine Möglichkeit der Klassifizierung von Synapsen ist die Einteilung in chemische und elektrische Synapsen. Elektrische Synapsen sind Bereiche in denen Kommunikation zwischen zwei Zellen über direkten Austausch von Ionen über einen sehr dünnen Spalt zwischen den Zellen stattfindet. Chemische Synapsen sind meist unidirektional, die Signalübertragung findet nur in einer Richtung statt. Die Empfänger-Seite wird postsynaptisch genannt, die andere präsynaptisch. Chemische Synapsen bestehen aus dem synap- Abbildung 2.2: Beispiele Polarität tischen Endkolben, einem Ende des Axnen. Von ons der präsynaptischen Zelle, und eirechts: nem postsynaptischen Bereich der MemBipolare, bran der empfangenden Zelle. Ein Signal Zellen wird durch Botenstoffe, so genannte Neurotransmitter, übermittelt. Diese werden 4 verschieder von Neurolinks nach Unipolare, Multipolare 2.2 Elektrophysiologische Eigenschaften von Nervenzellen im Ruhezustand in Bläschen in den synaptischen Endkolben angereichert. Wird ein Signal auf der präsynaptischen Seite ausgelöst, verschmelzen diese Bläschen teilweise mit der Membran des Endkolbens und geben ihren Inhalt nach außen, in den synaptischen Spalt, ab. Die Neurotransmitter docken an Rezeptoren der postsynaptischen Membran an. Sie beeinflussen dadurch direkt die Leitfähigkeit der Ionenkanäle oder lösen sekundäre Reaktionen in der postsynaptischen Zelle aus, die zur Änderung der Durchlässigkeit der Zellmembran für bestimmte Ionentypen führen. 2.2 Elektrophysiologische Eigenschaften von Nervenzellen Eine der wichtigsten Eigenschaften der Membran ist, dass sie ein sehr guter Isolator ist. Man kann sich deshalb einen kleinen Abschnitt der Zellmembran als parallel geschalteten Kondensator und Widerstand vorstellen. Unter normalen Umständen bestehen elektrische Ströme durch die Membran aus von einer Hydrathülle eingeschlossenen Ionen. Diese werden von hochselektiven Ionenkanälen gesteuert. Besteht innerhalb der Zelle ein Potentialunterschied, so ist der spezifische Widerstand des Zytoplasma von Bedeutung. 2.2.1 Membranpotential Die Konzentration von Ionen innerhalb und außerhalb einer Nervenzelle unterscheidet sich teilweise enorm. Für eine bestimmte Ionenart kann eine Gleichung aufgestellt werden, die das so genannte Gleichgewichtspotential für eine bestimmte Temperatur definiert. Es gibt an, wie groß der elektrische Potentialunterschied zwischen dem Inneren der Zelle und dem extrazellulären Medium sein muss, damit sich die Ionenströme, verursacht durch den Potentialunterschied und den Konzentrationsgradienten, gerade aufheben. Das Gleichgewichtspotential E für eine bestimmte Ionenart lässt sich anhand der Nernst-Gleichung bestimmen: [X]a RT ln . (2.1) E= zF [X]i 5 2 Biologische Grundlagen Dabei ist R die Gaskonstante, T die absolute Temperatur in Kelvin, z die Valenz des Ions und F die Faradaykonstante. [X]a und [X]i sind die Ionenkonzentrationen außerhalb und innerhalb der Membran. Da die Membran kein perfekter Isolator ist, lässt sie auch im Ruhezustand Ionenströme durch. So gennante Ionenpumpen halten aber den Konzentrationsunterschied aufrecht. Dadurch stellt sich ein so genanntes Ruhepotential ein, das sich aus Gleichgewichtspotentialen der verschiedenen Ionenarten zusammensetzt. Wir nennen die Membran hyperpolarisiert, wenn ihr Membranpotential kleiner ist und depolarisiert, wenn es größer als das Ruhepotential ist. Da durch die chemischen Synapsen die Leitfähigkeit der postsynaptischen Membran für bestimmte Ionenarten verändert wird, können wir zwischen exzitatorischen und inhibitorischen Synapsen unterscheiden. Exzitatorische depolarisieren die Membran aus dem Ruhezustand, wärend die inhibitorischen Synapsen sie hyperpolarisieren. 2.2.2 Aktionspotential Ein Aktionspotential ist eine kurzzeitige Abweichung vom Ruhepotential. Es dient in Nervenzellen zur Signalübertragung innerhalb der Zelle. 1952 wurde Alan Lloyd Hodgkin und Andrew Fielding Huxley ([7]) ein Modell aufgestellt, um die Entstehung von Aktionspotentialen im Riesenaxon des Tintenfisches zu erklären. Dieses Modell basiert auf der Dynamik von Ionenkanälen für Natrium (Na+ ) und Kalium (K+ ). Man stelle sich einen Abschnitt des Axons als ein zylindrisches Stück der Membran vor, die das Zytoplasma umhüllt. In Abbildung 2.3 ist dargestellt, was passiert, wenn die Membran stark genug depolarisiert wird. Wird die Membran an einer Stelle über einen Schwellenwert hinaus depolarisiert, so öffnen sich verstärkt die Na+ -Kanäle und lassen Na+ -Ionen von außen einfließen, dadurch wird die Membran immer weiter zum Gleichgewichtspotential von Na+ depolarisiert. Ist die Depolarisation hoch genug, schließen sich die Natrium-Kanäle. Gleichzeitig öffnen sich Kalium-Kanäle verstärkt und hyperpolarisieren das Membranpotential zum Gleichgewichtspotential von K+ . Das nachfolgende Schließen der K+ -Kanäle und die Arbeit der Ionenpumpen bewirken, dass sich das Membranpotential wieder an das Ruhepotential annähert. 6 2.2 Elektrophysiologische Eigenschaften von Nervenzellen Abbildung 2.3: Modell eines Aktionspotentials beim Riesenaxon des Tintenfisches. EK , EN a Gleichgewichtspotentiale von N a+ und K + , Em Membranpotential. (aus [3], Abb. 4-18) 2.2.3 Elektrotonische Signalleitung Ist ein Membranabschnitt depolarisiert, so sorgt ein axialer Ionenstrom zu den benachbarten Bereichen der Membran dafür, dass auch deren Membranpotential positiver wird und eventuell ein Aktionspotential ausgelöst wird. Diese elektrotonische Leitung wird demnach maßgeblich von der spezifischen elektrischen Leitfähigkeit des Zytoplasma und der spezifischen Membrankapazität beeinflusst. Im Falle eines Membranzylinders ist der axiale elektrische Widerstand RAx = rAx L , πr2 (2.2) wobei rAx der spezifische Widerstand des Zytoplasma, L die Länge und r der Radius des Zylinderstückes sind. Der Einfachheit halber nehmen wir an, dass der spezifische axiale Widerstand konstant ist. Eine solche Membran nennen wir passiv. Injiziert man in den zylindrischen Abschnitt Ladungen mit einer bestimmten Stromstärke 4i , so lässt sich die Ausbreitung der zusätzlichen Ladungsträger anhand des elektrischen Diagramms aus Abbildung 2.4 veranschaulichen. 7 2 Biologische Grundlagen Abbildung 2.4: Elektrotonus (nach [3], Abb. 4-17a) Hier ist cm die Membrankapazität, Ei das Gleichgewichtspotential der Membran und ri die axiale Leitfähigkeit der Teilstücke. Legt man einen konstanten positiven elektrischen Strom 4i an, so steigt die Spannung zwischen Innerem und Äusserem mit der Aufladung der Membran, was durch Kondensatoren modelliert wird. Messen wir den Strom 5mm von der Stelle des angelegten Stroms entfernt, so sehen wir, dass er nur einen Teil von 4i ausmacht. Ein Teil des Stroms wird unterwegs abgezweigt und fließt in die Kondensatoren und durch die Widerstände. Wenn man nun die Kapazitäten cm erhöht, kommt noch weniger Ladungen bei 5 mm an, und die Spannung steigt an dieser Stelle langsamer. Hier sieht man, dass die Membrankapazität eine entscheidende Rolle bei der Weiterleitung von Signalen in Form von Aktionspotentialen ist, da es dort darum geht, wie schnell das Schwellenpotential erreicht wird. Deshalb sind Axone, die Aktionpotentiale über längere Entfernungen transportieren müssen, wie in Abbildung 2.5 gezeigt, meistens von einer Myelinschicht umhüllt. Diese reduziert die Kapazität der Membran und erlaubt dadurch schnelleres Depolarisieren an den Schnürringen des Axons, Stellen, an denen die Myelinschicht unterbrochen wird. Dort wird das Signal durch das Auslösen des Aktionspotentials verstärkt und springt zum nächs- 8 2.3 Die Neokortikale Kolumne ten Schnürring. Neben der höheren Signalgeschwindigkeit hat die Myelierung den Vorteil des niedrigeren Energieverbrauches, denn die Aktionspotentiale werden nur an den Schnürringen ausgelöst. Abbildung 2.5: Schema einer myelierten Faser (Verhältnis von Dicke und Länge verändert nach [3], Abb. 4-19c). Bei Depolarisation fließt Membranstrom überwiegend in Schnürringen. Das spart Energie bei der Leitungs des Aktionspotentials.Die Depolarisation pflanzt sich besonders schnell zwischen den Schnürringen fort (nach [3], Abb. 4-19c). 2.3 Die Neokortikale Kolumne Der Neokortex ist die oberste und evolutionär jüngste Schicht des Großhirnes der Säugetiere. Er wird in mehrere Schichten (Laminae) unterteilt (L1 - L6), die sich in der Zusammensetzung der in ihnen vorkommenden Zelltypen unterscheiden. 9 2 Biologische Grundlagen Abbildung 2.6: Signalübertragunsstrecke (nach [12], Abb. 1.12). Abbildung 2.7: Ein Schnitt durch den Kortex mit sichtbar gemachten L4Zellen.(nach [9], Abb. 1A). Es wurde eine horizontale Ausdifferenzierung in säulenförmige Gebilde, auch Kolumnen genannt, nachgewiesen. Diese sind eine Basiseinheit der neuronalen Schaltkreise im Neokortex. Die Abbildung 2.7 zeigt einen Querschnitt durch den Neokortex. 10 2.3 Die Neokortikale Kolumne Abbildung 2.8: Somatotopie (nach [12], Abb. 1.13). Bei Ratten entspricht zum Beispiel ein Schnurrbarthaar einer neokortikalen Kolumne des Neokortex [12]. Siehe dazu Abbildungen 2.6 und 2.8. Diese Entsprechung taucht in unterschiedlicher Ausprägung entlang der gesamten Signalstrecke zwischen den Schnurrbarthaaren und dem Neokortex auf, z.B. im Hirnstamm und Thalamus. Diese 1:1 Somatotopie macht Barrel-Kortex zu einem beliebten Studienobjekt für neuronale Verschaltung und Lerneffekte [12]. 11 3 NeuGen Um die Ausgangsdaten für die Simulation der kortikalen Kolumne in Silico zu gewinnen, verwenden wir NeuGen [4], eine Software zum Generieren von künstlichen dreidimensionalen Geometrien von vernetzten Neuronen der kortikalen Kolumne. Anhand vorgegebener Parameter und Generatoren für Zufallszahlen erzeugt NeuGen eine künstliche Kolumne. Dabei wurde Wert darauf gelegt, dass die NeuronenParameter möglichst direkt aus Versuchsergebnissen übernommen werden können, und die Standardwerte für die implementierten Neuronen mit deren morphologischen Merkmale möglichst genau übereinstimmen. NeuGen erzeugt nicht nur die Geometrie einzelner Neuronen, sondern verschaltet sie auch zu einem neuronalen Netzwerk mittels Synapsen. Diese Synapsen sind Verbindungen zwischen Dendriten und Axonen, die dort erstellt werden, wo deren Abstand zueinander einen bestimmten Schwellenwert unterschreitet. Der thalamische Input wird in Form von so genannten Alpha-Synapsen (dazu siehe Abschnitt 4.4) auf den Dendritenbäumen von L4 - und L5 -Neuronen verteilt. Der Ablauf des Algorithmus zur Generierung von Zellen ist wie folgt. Zuerst verteilt NeuGen die Somata in der Kolumne. Ausgehend von diesen wird ein Hauptstrang des Axons erzeugt, an den weitere Zweige angehängt werden. Die Konstruktion der Dendriten erfolgt auf eine ähnliche Weise, nur dass hier die Konstruktion der Zweige iterativ ausgeführt wird. Das bedeutet, dass für jeden Zweig ein Hauptstrang erzeugt wird, und von dem aus die Konstruktion weiterer Abzweigungen angestoßen wird. 12 Abbildung 3.1: Von NeuGen generierte kortikale Kolumne aus 12 Zellen. Dendriten sind gelb, Soma rot, Axons blau dargestellt. Die graue Wire-FrameBox zeigt den Umriß der Kolumne. In der Mitte befindet sich die Schicht 4. Die von NeuGen erzeugte Kolumne enthält fünf Neuronenarten mit exzitatorischen Synapsen: L2/3-Pyramidal, L4-Spiny Stellate, L4-Starpyramidal, L5APyramidal und L5B-Pyramidal. Beispiele für diese Zelltypen sind in den Abbildungen 3.2 und 3.3 zu sehen. Die Abbildung 3.1 zeigt eine Beispielkolumne aus 12 Zellen, von denen drei L2/3-Pyramidal, fünf L4-Spiny Stellate, zwei L5A-Pyramidal 13 3 NeuGen und zwei L5B-Pyramidal sind. Abbildung 3.2: Von NeuGen erzeugte künstliche Neuronen. Von links nach rechts: L2/3 Pyramidal, L4 Spiny Stellate, L4 Starpyramidal. Abbildung 3.3: Von NeuGen erzeugte künstliche Neuronen. L5A Pyramidal und L5B Pyramidal. 14 4 Modellierung In diesem Kapitel entwickeln wir das mathematische Modell für die Signalverarbeitung in Neuronen. Wir modellieren ein Neuron als eine Menge gekoppelter Kabelgleichungen. Geschichtlich wurde die Theorie der Kabelgleichungen zuerst von Weber, [15], auf das Axon angewandt, wobei er nach stationären Lösungen für ein dreidimensionales Kabel fragte. In der Arbeit von Hodgkin et al., [7], wurde dann das erste Modell für das zeit- und potentialabhängige Verhalten des Membranwiderstandes aufgestellt. Wir leiten die Kabelgleichungen her und konstruieren die analytische Lösung für den einfachen Fall eines homogenen passiven Kabels her. Es wird die Modellierung der Ionenkanäle als eine Verallgemeinerung des Hodgkin-Huxley-Modells angegeben. Anschließend zeigen wir, wie wir das zeitliche Verhalten von einfachen chemischen Synapsen modellieren können. 4.1 Das Neuron als eine Menge von Kabelgleichungen Man kann Teile von Neuronen analytisch durch Kabelgleichungen beschreiben, da sie im Vergleich zu ihrer Länge sehr dünn sind. Hier richten wir uns nach der Darstellung des Themas in [14]. Um die Kabelgleichungen herzuleiten, gehen wir von einem zylindrischen intrazellulären Stück der Länge 4x mit Radius rI aus, das in eine zylindrische extrazelluläre Umgebung mit Radius rA eingebettet ist. Die Abbildung 4.1 zeigt diesen Membranabschnitt. 15 4 Modellierung Abbildung 4.1: Zylindrischer Membranabschnitt. 4x ist die Länge des Abschnittes, rI und rA Innen- und Außenradius. Seien x und x + 4x die eindimensionalen Koordinaten auf der Längsachse, die die Endpunkte des Membranabschnittes angeben. Die Radien seien so gering, dass wir im Inneren und im Äußeren VI0 und VA0 , elektrische Potentiale bezüglich eines Punktes im Unendlichen, entlang der Längenachse des Zylinders definieren können. 0 0 Wir bezeichnen mit VI,r und VA,r die Ruhepotentiale im Inneren und Äußeren und 0 0 definieren VM := VI − VA . Wir setzen den Nullpunkt des Potentials auf das äußere 0 Ruhepotential, so dass VA,r = 0 V . Im Ruhezustand fließt durch die Membran 0 netto kein Strom, deshalb definieren wir noch V (t, x) := VI0 (t, x) − VI,r , denn V (t, x) − VA0 (t, x) = VM (t, x) − VI,r . Wir definieren elektrischen Strom durch die Membran als positiv, wenn er aus Kationen besteht, die nach Innen wandern. Entsprechend ist der Axialstrom positiv mit zunehmenden x-Werten. Nehmen wir an, dass 4x so klein ist, dass das Membranpotential über die Mantelfläche des entsprechenden Zylinderabschnittes gleich ist. Nun können wir für das zylindrische Membranstück ein elektrisches Schema in der Abbildung 4.1 betrachten. Abbildung 4.1 zeigt das elektrische Schema des Zylinderabschnittes, wobei II , IA , RI und RA die axialen Stromstärken und Widerstände im Inneren und Äußeren, IIA und IAA die angelegten Stromquellen und IM der Membranstrom bezeichnet. RM und CM sind entsprechend Membranwiderstand und Kapazität. 16 4.1 Das Neuron als eine Menge von Kabelgleichungen Abbildung 4.2: Ersatzschema des Membranzylinders (verändert nach [14], Abb. 4.2). Da die Widerstände ohmsch angenommen werden, gilt − RI (4x)II (t, x) = (V (t, x + 4x) − V (t, x)) , (4.1) − RA (4x)IA (t, x) = (VA0 (t, x + 4x) − VA0 (t, x)) . Der axiale elektrische Widerstand im Inneren berechnet sich wie der axiale Widerstand eines homogenen zylindrischen Leiterstücks, also RI = rsI 4x/AI , wobei rsI der spezifische Widerstand des Inneren und AI die Querschnittsfläche πrI2 bezeich2 net. Analog gilt RA = rsA 4x/AA mit AA = π(rA − rI2 ). Für den Membranstrom IM erhalten wir V (t, x + 4x) − VA0 (t, x + 4x) ∂VM (t, x + 4x) + CM (4x) . RM (4x) ∂t (4.2) Unter Annahme, dass die Membrandicke δ << rI und der Membranwiderstand über das ganze Stück konstant ist, gilt − IM (t, x + 4x) = RM (4x) = rM 2πrI 4x (4.3) 17 4 Modellierung mit rM als spezifischer Widerstand der Membran in Ohm · m2 . Entsprechend lässt sich die Membrankapazität durch die spezifische Membrankapazität ausdrücken: CM (4x) = 2πrI 4xcm . (4.4) Wir definieren iIA (4x) := IIA (4x)/4x. Nach dem 1. Kirchhoffschen Gesetz gelten folgende Stromerhaltungsgleichungen II (t, x + 4x) − II (t, x) = IM (t, x + 4x) + IIA (4x) , (4.5) IA (t, x + 4x) − IA (t, x) = −IM (t, x + 4x) + IAA (4x) . Da beide rechte Seiten proportional zu 4x sind, erhalten wir durch Umformen und Grenzwertbildung 4x → 0 2πrI (V (t, x) − VA0 (t, x)) − 2πrI cm ∂1 VM (t, x) + iIA (0) , rM 2πrI (V (t, x) − VA0 (t, x)) ∂2 IA (t, x) = + 2πrI cm ∂1 VM (t, x) + iAA (0) . rM ∂2 II (t, x) = − (4.6) Aus den Gleichungen (4.1) folgt durch Umformen, Grenzwertbildung 4x → 0 und nochmaliges Differenzieren nach x rsI ∂2 II (t, x) = ∂22 V (t, x) , AI rsA − ∂2 IA (t, x) = ∂22 VA0 (t, x) . AA − (4.7) Eingesetzt in (4.6) erhalten wir rsI [KM ((V (t, x) − VA0 (t, x) + rM cm ∂1 VM (t, x)) − iIA (0)rM ] , AI r M (4.8) rsA ∂22 V 0 (t, x) = − [KM ((V (t, x) − VA0 (t, x) + rM cm ∂1 VM (t, x)) + iAA (0)rM ] AA r M ∂22 V (t, x) = mit KM = 2πrI . Nach der Subtraktion der zweiten Gleichung von der ersten und Umformen gilt rM cm ∂1 VM (t, x) = 18 rM ∂22 VM − [V (t, x) − VA0 (t, x)] S rM rsA iAA (0) rsI iIA (0) − − S AA AI (4.9) 4.1 Das Neuron als eine Menge von Kabelgleichungen mit S := KM rAsII + rAsA . Da der extrazelluläre Raum im Vergleich zum DurchA messer der Zellteile typischerweise sehr viel größer ist, kann angenommen werden, dass das extrazelluläre Medium den Widerstand 0 hat und daher VA0 (t, x) = 0 gilt. Dies vereinfacht die obige Kabelgleichung zu rM cm ∂1 V = rM rsI iIA (0) rM ∂22 V − V + . S SAI (4.10) 4.1.1 Dimensionslose Kabelgleichung Wir wollen nun eine dimensionslose Form der Kabelgleichung herleiten, die für die analytische Lösung benötigt wird. In (4.10) sind die einzelnen Größen mit Einheiten verbunden: V(t,x) ist die Depolarisation in Volt am Ort x zur Zeit t, x ist die Ortsvariable mit der Einheit Meter, t ist die Zeit in Sekunden, rI ist der Innenradius in Metern, rsI ist der spezifische Widerstand des innenzellulären Raumes in Ohm · Meter, rM ist der spezifische Membranwiderstand in Ohm · Meter, iIA ist die Stromstärkedichte des externen Stroms in Ampere pro Meter. Man kann die Änderung der elektrischen Ladung Q im Abschnitt [x,x+4x) während des Zeitintervalls [t,t+4t) mit iIA (0)(t, x)4x4t approximieren, so dass iIA (0)(t, x) = ∂Q . ∂x∂t (4.11) Wir machen die Orts- und Zeitvariablen dimensionslos, indem wir x̄ := x/kx und t̄ := t/kt definieren. Nun definieren wir V̄ (t̄, x̄) := V (t, x) , (4.12) Q̄(t̄, x̄) := Q(t, x) . Damit gilt 19 4 Modellierung ∂ V̄ dt̄ 1 ∂ V̄ = , ∂ t̄ dt kt ∂ t̄ 1 ∂ V̄ ∂ V̄ dx̄ = , ∂2 V = ∂ x̄ dx kx ∂ x̄ 1 ∂ 2 V̄ ∂22 V = 2 2 , kx ∂ x̄ 1 ∂ Q̄ . ∂21 Q = kx kt ∂ x̄∂ t̄ ∂1 V = (4.13) Wir können also die Kabelgleichung (4.10) schreiben als rM cm ∂ V̄ rM ∂ 2 V̄ rM rsI ∂ Q̄ = . (4.14) − V̄ + 2 2 kt ∂ t̄ Skx ∂ x̄ kt ky S ∂ x̄∂ t̄ p Mit der Wahl kt = rM cm und kx = rM /S vereinfacht sich die Gleichung zu ∂ V̄ ∂ 2 V̄ = − V̄ + I¯ , ∂ t̄ ∂ x̄2 rM rsI ∂ Q̄ I¯ = . kx kt S ∂ x̄∂ t̄ (4.15) Nun eliminieren wir die Dimension des Membranpotentials, indem wir die Gleichung durch VS teilen. VS sei das konstante Potential, das entsteht, wenn wir an jeder Stelle der Membran von außen einen konstanten Einheitsstrom von I¯ = 1 2 Volt anlegen. VS ist also die Lösung von (4.15) mit ∂∂V̄t̄ = 0V und ∂∂ x̄V̄2 = 0V . Damit ergibt sich die dimensionslose Form der Kabelgleichung ∂U ∂2U = −U +J . ∂ t̄ ∂ x̄2 (4.16) 4.2 Analytische Lösungen der Kabelgleichung Wir benutzen die Greensche Funktion, um die Kabelgleichung für einige einfache Testfälle analytisch zu lösen. Das gegebene Problem ist ein Anfangswertproblem: Vt = Vxx − V + I, t > 0, 0 < x < L , V (0, x) = V0 (x) 20 (4.17) 4.2 Analytische Lösungen der Kabelgleichung mit V0 Membranpotential zum Zeitpunkt 0. Die Greensche Funktion G(t,x,y) der Gleichung (4.17) ist die Lösung der Gleichung Gt = Gxx − G, t > 0 , (4.18) G(0, x, y) = δ(x − y) . Wir zeigen, dass jedes V aus G konstruiert werden kann per Z LZ t Z L G(t, x, y)V0 (y)dy + G(t − s, x, y)I(s, y)dsdy . V (t, x) = 0 0 (4.19) 0 Wir müssen also zeigen, dass V das Anfangswertproblem (4.17) löst. V erfüllt die Anfangswertbedingung, denn Z L Z L V (0, x) = G(0, x, y)V0 (y)dy = δ(x − y)δ(0)V0 (y)dy = V0 (x) . (4.20) 0 0 Wir müssen nun zeigen, dass die Differentialgleichung aus (4.17) erfüllt ist. Z L Z t Z L ∂ Gt (t, x, y)V0 (y)dy + G(t − s, x, y)I(s, y)dsdy . (4.21) Vt (t, x) = 0 ∂t 0 0 Wegen Z ∂ t G(t − s, x, y)I(s, y)ds = (4.22) ∂t 0 Z t ∂ G(0, x, y)I(t, y) + G(t − s, x, y)I(s, y)ds 0 ∂t gilt also Z L Z L G(0, x, y)I(t, x)dy (4.23) Gt (t, x, y)V0 (y)dy + Vt (t, x) = 0 0 Z LZ t ∂ + G(t − s, x, y)I(s, y)dsdy = I(t, x) 0 0 ∂t Z LZ t Z L ∂ + Gt (t, x, y)V0 (y)dy + G(t − s, x, y)I(s, y)dsdy . 0 0 ∂t 0 Für die rechte Seite der Kabelgleichung aus (4.17) bekommen wir Vxx (t, x) − V (t, x) + I(t, x) = I(t, x) (4.24) Z L + (Gxx (t, x, y) − G(t, x, y))V0 (y)dy 0 Z LZ t + (Gxx (t − s, x, y) − G(t, x, y))I(s, y)dsdy . 0 0 Aus (4.18) folgt nun die Erfüllung der Kabelgleichung (4.10) durch V. 21 4 Modellierung 4.3 Ionenkanäle vom Hodgkin-Huxley Typ Was in der bisher entwickelten Kabelgleichung fehlt, ist ein Modell für die aktive Membran, deren Leitfähigkeit mit der Membranpotential variiert. Oben haben wir das Modell von Hodgkin-Huxley, [7], erwähnt, das es erstmal ermöglicht hat, die Ausbreitung des Aktionspotential entlang des Riesenaxons des Tintentenfisches mathematisch zu modellieren. Das Modell funktioniert durch die Interaktion von drei Arten von Leitfähigkeiten der Membran: Leckstrom, K+ - und Na+ -Ionkanälen. IM embrane = ḡK n4 (V − VN a) + ḡN a hm3 (V − VN a ) + gl (V − Vl ) (4.25) Dabei sind gl , gK und gN a die maximalen Leitfähigkeiten des Leckstroms, K+ und Na+ -Ionkanälen. Entsprechend sind VK , VN a und Vl die Gleichgewichtspotentiale. n, m und h sind sogennante Gating-Variablen, Funktionen des Membranpotentials und der Zeit. Man kann die Gleichung 4.25 anhand der physikalischen Konstruktion der Ionenkanäle interpretieren. Bei einem K+ -Ionenkanal müssen vier Komponenten unabhängig voneinander einen bestimmten Zustand annehmen, damit er offen ist. Die Wahrscheinlichkeit, dass eine Komponente diesen Zustand einnimmt, ist gerade m. Die Zustandsänderung der Gating-Variablen wird durch ein System gewöhnlicher Differentialgleichungen definiert ṅ = αn (1 − n) + βn n, (4.26) ṁ = αm (1 − m) + βm m, ḣ = αh (1 − h) + βh h. Hier sind α und β nichtlineare Funktionen, die die statistischen Änderungsraten der Zustände in Abhängigkeit vom Membranpotential angeben. Sie sind hochgradig nichtlinear. Wir verallgemeinern das Hodgkin-Huxley-Modell. Die Ionenkanäle vom HodgkinHuxley Typ, indiziert mit i, erfüllen folgende gleichung für den Membranstrom X iion = gi mki i nlii (V − Ei ) . (4.27) i 22 4.4 Typen von Synapsen Hierbei ist gi ist die maximale Leitfähigkeit der i-ten Ionenkanalart und Ei deren Gleichgewichtspotential. Die Zustandsfunktionen mi und ni werden durch Differentialgleichungen definiert: ∂mi (t, V ) = ai (V )(1 − mi (t, V )) − bi (V )mi (t, V ) ∂t (4.28) und ∂ni (t, V ) = ci (V )(1 − ni (t, V )) − di (V )ni (t, V ) , (4.29) ∂t dabei sind ai , bi , ci , di in der Regel nichtlineare Funktionen, die die Öffnungs- und Schließungsraten der Ionenkanäle zu gegebenen Membranpotentialen angeben. 4.4 Typen von Synapsen In diesem Kapitel richten wir uns nach der Darstellung aus [2], Seite 180-183, um die Modellierungsprinzipien für chemische Synapsen zu erklären. Wir betrachten nur die chemischen Synapsen und modellieren nur die postsynaptische Seiten explizit, weil wir annehmen, dass die präsynaptische Seite nur durch die Ausschüttung der Neurotransmitter den Einfluss auf den Kommunikationsvorgang nehmen kann. Analog zu den Ionenkanälen beschreiben wir die Wahrscheinlichkeit des Geöffnetseins eines von synaptischen Transmittern abhängigen Ionenkanals durch dP = α(1 − P ) − βP. (4.30) dt Für gewöhnlich nimmt man β, die Schließungsrate, als konstant an. α dagegen ist abhängig von der Konzentration der Neurotransmitter im synaptischen Spalt. Die Wahrscheinlichkeit, dass ein Molekül des Ionentransmitters an den Rezeptor des Ionenkanals angebunden wird, ist proportional zur Konzentration des Transmitters, [transmitter], so dass α proportional zu [transmitter]k ist. Aus Gründen der Einfachheit nehmen wir weiter an, dass die Transmitterkonzentration sehr schnell einen Maximalwert erreicht und nach einem bestimmten Zeitintervall T auch sehr schnell abgebaut wird. Demnach wird die Transmitterkonzentration durch einen rechteckigen Impuls beschrieben. Sei 0 der Zeitpunkt, zu dem die Ausschüttung der Neurotransmitter beginnt und α sehr viel größer als β, solange die Transmitterkonzentration hoch bleibt und gleich 0 andernfalls . 23 4 Modellierung Der Verlauf von P lässt sich damit in zwei Zeitbereiche einteilen. P (t) = 1 + (P (0) − 1)e−αt , 0 ≤ t ≤ T , (4.31) P (t) = P (T )e−β(t−T ) , t > T für den Zustand der postsynaptischen Seite. Dabei ist P (t) der Anteil der geöffneten postsynaptischen Kanäle. Abbildung 4.3: Beispiele für die höhere Flexibilität der Exp2syn Darstellung der postsynaptischen Reaktion gegenüber der Alpha-Synapse. Synapsen, die in der Simulation verwendet werden, sind dieselben, die NeuGen generiert. In der Terminologie von NEURON sind es Alpha- und Exp2synSynapsen. Beide reagieren auf das Überschreiten eines Schwellwertpotentials auf präsynaptischer Seite mit einem festen zeitabhängigen Verhalten ihrer Leitfähigkeit. Bei Alpha-Synapsen wird der zeitliche Verlauf durch Pα (t, τ ) = festgelegt. 24 Pmax t exp(1 − t/τ ) τ (4.32) 4.4 Typen von Synapsen Exp2syn Synapsen erlauben, wie in der Abbildung 4.4 dargestellt, mehr Freiheit bei der Beschreibung der Steilheit der Leitfähigkeitskurve. Sie werden durch die folgende Gleichung beschrieben Pe2s (t, τ1 , τ2 ) = Pmax B(exp(−t/τ1 ) − exp(−t/τ2 )) . B sichert die Gleichheit von Pmax und dem Maximum von P durch τ /τ1 τ /τ2 !−1 τ2 τ2 − , B := τ1 τ1 (4.33) (4.34) wobei Pe2s τ · ln τ1 τ2 , τ1 , τ2 = Pe2s ln τ1 τ2 τ1 τ2 , τ1 , τ2 τ1 − τ2 = Pmax . (4.35) 25 5 Diskretisierung In diesem Kapitel stellen wir die Diskretisierungen zweiter Ordnung der Kabelgleichungen in Ort und Zeit vor. Die Diskretisierung in Ort wird durch das mathematische Multi-Compartment-Modell des Neurons bewerkstelligt. Die Diskretisierung in der Zeit ist eine Form des Crank-Nicolson-Verfahrens, bei dem der Zustandsvektor der Ionenkanäle und das Membranpotential auf zueinander verschobenen Zeitgittern berechnet werden. Kombiniert entsprechen die beiden Diskretisierungen einer einem Verfahren zweiter Ordnung in Ort und Zeit. 5.1 Das Multi-Compartment-Modell Das nichtlineare Verhalten der Membranströme bei Änderungen des Membranpotentials sowie die in der Natur sehr ausdifferenzierte Form der Dendritenbäume deuten darauf hin, dass die Form des Neurons einen entscheidenden Einfluss auf die Art und Weise ausübt, wie es die Informationen verarbeitet. Entsprechende Studien unterstützen diese Hypothese [10], [11], [6]. Daher brauchen wir eine detaillierte Beschreibung der Geometrie in dem numerischen Modell des Neurons. Ein Multi-Compartment-Modell beschreibt ein Neuron als eine Ansammlung von einfachen und homogenen Compartments, die durch die Stromerhaltung nur an angrenzende oder synaptisch verbundene Nachbarn gekoppelt sind. Das Modell, das wir verwenden, wurde 2003 von Lindsay und Rosenberg veröffentlicht, [8]. Im Folgenden beziehen wir uns auf diese Darstellung. Ein Compartment ist demnach ein Kegelstumpf oder Zylinder mit bestimmten statischen und dynamischen Eigenschaften wie in der Abbildung 5.1 abgebildet. 26 5.1 Das Multi-Compartment-Modell Abbildung 5.1: Relevante Eigenschaften eines Compartments. V1 , V2 sind elektrische Membranpotentiale an den Enden des Compartments, gAx die spezifische axiale Leitfähigkeit, gm ist die spezifische elektrische Leitfähigkeit der Membran, cm ist die spezifische elektrische Kapazität der Membran, r1 ,r2 sind die Endradien des Compartments, L ist die axiale Länge. Eine Annahme des Modells ist, dass die axiale Leitfähigkeit eines Compartments viel größer ist, als die Leitfähigkeit der Membran. Diese Annahme ist dadurch gerechtfertigt, dass für die Leitfähigkeiten eines homogenen Zylinders mit Radius r in den für die Simulation (empirisch) relevanten Fällen gilt (2πrL)gm 2L2 gm = << 1 . (πr2 /L)gAx rgAx Der Axialstrom I12 , verursacht durch Potentialdifferenz, ist dann für ein Compartment durch die Differentialgleichung I12 = gAx A(x)∂V /∂x gegeben. Dabei ist A(x) = πr(x)2 die Querschnittsfläche des Compartments an der Position x und r(x) = (1 − x/L)r1 + (x/L)r2 , x ∈ [0; L]. Nach dem Lösen dieser Gleichung durch Integration erhalten wir I12 = πgAx r1 r2 (V2 − V1 ) . L (5.1) Die axiale Leitfähigkeit eines Compartments ist also πgAx r1 r2 L−1 . 27 5 Diskretisierung Angewandt auf das Membranpotential an einer beliebigen Stelle innerhalb des Compartments erhalten wir V (x) = V1 r1 (1 − λ) + V2 r2 λ x V1 r1 (1 − x/L) + V2 r2 x/L = V (λ) = , λ := . (5.2) r1 (1 − x/L) + r2 x/L r1 (1 − λ) + r2 λ L 5.1.1 Aufteilung des Membranstroms Den Einfluss des verteilten Transmembranstroms berücksichtigen wir insoweit, als dass es gerade die Differenz der Stromstärken in den beiden Enden eines Compartments und dem Axialstrom ausmacht aufgrund der Stromerhaltung. Es gilt also ZL (I12 (t) + I2 (t)) − (I12 (t) + I1 (t)) + J(x, t)dx = 0 . (5.3) 0 Mit I1 , I2 bezeichnen wir die Stromanteile an den Strömen in den Enden des Compartments, die aus verteilten Transmembranstrom bestehen. J(x, t) ist die Stromstärke des Transmembranstroms am Punkt x zum Zeitpunkt t. Um der Stromerhaltungsgleichung zu genügen, benutzen wir eine Aufteilungsregel für den verteilten Transmembranstrom. Wir definieren, dass sich die Anteile von J(x, t) so verhalten, wie die axialen Leitfähigkeiten der zugehörigen Teilstücke G1 (λ), G2 (λ), für die gilt G1 (λ) = πgAx r1 r(λ) λL G2 (λ) = πgAx r2 r(λ) . (1 − λ)L (5.4) Also ist i+1 Ii (t) = −1 Z1 L Gi (t)J(λ, t) dt, i ∈ 1, 2 . G1 (t) + G2 (t) (5.5) 0 Es ist unmittelbar einsichtig, dass diese Regel die Stromerhaltungsgleichung (5.3) erfüllt. 5.1.2 Komponenten des Membranstroms Bezogen auf das Compartment können wir den Membranstrom als die Summe Z Z X X ∂V dx + 2πrJion (V )dx + Jsyn (V ) + IEX (5.6) 2πrcm ∂t 28 5.1 Das Multi-Compartment-Modell beschreiben. Hierbei wird über die Achse des Compartments integriert. cm ist die spezifische Membrankapazität (F/m2 ), Jion die Stromstärkedichte der verteilten Ionenströme (A/m2 ), Jsyn sind die Synapsenströme (A) und IEX sind externe zeitabhängige Ladungsquellen. 5.1.3 Aufteilung des kapazitativen Stroms Nach (5.5) und (5.2) können wir die Anteile der kapazitativen Ströme schreiben als Z1 2 (1 − λ) cm (λ)dλ (1 − λ)r1 + λr2 0 Z1 dV2 λ(1 − λ)cm (λ)dλ +2πr1 L r2 , dt (1 − λ)r1 + λr2 I1cap = 2πr1 L r1 dV1 dt (5.7) 0 Z1 λ(1 − λ)cm (λ)dλ (1 − λ)r1 + λr2 0 Z1 2 dV2 λ cm (λ)dλ −2πr1 L r2 . dt (1 − λ)r1 + λr2 I2cap = −2πr1 L r1 dV1 dt 0 Die zu berechnenden Integrale Z1 In1 := (1 − λ)2 cm (λ)dλ , (1 − λ)r1 + λr2 (5.8) 0 Z1 In2 := λ(1 − λ)cm (λ)dλ , (1 − λ)r1 + λr2 0 Z1 In3 := λ2 cm (λ)dλ (1 − λ)r1 + λr2 0 29 5 Diskretisierung bilden das Gleichungssystem Z1 In1 + 2In2 + In3 = cm (λ)dλ , (1 − λ)r1 + λr2 (5.9) 0 Z1 (1 − λ)cm (λ)dλ , r1 In1 + r2 In2 = 0 Z1 r1 In2 + r2 In3 = λcm (λ)dλ . 0 Unter Annahme von cm (λ) = (1 − λ)cm (0) + λcm (1), c1 := cm (0), c2 := cm (1)und r1 6= r2 lässt sich das obere Gleichungssystem eindeutig lösen und ergibt damit die Darstellung I1cap =2πLr1 [c1 ψ(r1 , r2 ) + c2 φ(r1 , r2 ))] dV1 dt + 2πL [c1 r2 φ(r1 , r2 ) + c2 r1 φ(r2 , r1 )] (5.10) dV2 , dt dV1 dt dV2 + 2πLr2 [c1 φ(r2 , r1 ) + c2 ψ(r2 , r1 )] dt −I2cap =2πL [c1 r2 φ(r1 , r2 ) + c2 r1 φ(r2 , r1 )] mit x 6xy 2 x 2 2 φ(x, y) = log , x − 5xy − 2y + 6(x − y)3 x−y y x − 3y ψ(x, y) = − φ(x, y) . 2(x − y)2 (5.11) Im Fall von zylindrischen, kapazitativ homogenen Compartments kann man In1 , In2 , In3 direkt integrieren und erhält I1cap −I2cap 30 2πrLcm dV1 dV2 = 2 + , 6 dt dt 2πrLcm dV1 dV2 = +2 . 6 dt dt (5.12) 5.2 Zeitliche Diskretisierung 5.1.4 Membran-Ionenströme. Analog zu dem beschriebenen Verfahren approximieren wir die spezifische Leitfähigkeit für eine bestimmte Sorte von Ionenstrom durch die Membran durch g(λ, t) = g1 (t)(1 − λ) + g2 (t)λ mit g1 (t) := g(0, t), g2 (t) := g(1, t). Damit gilt für den nichtzylindrischen Fall I1ion =2πLr1 [g1 ψ(r1 , r2 ) + g2 φ(r1 , r2 ))] (V1 − E) (5.13) + 2πL [g1 r2 φ(r1 , r2 ) + g2 r1 φ(r2 , r1 )] (V2 − E) , −I2ion =2πL [g1 r2 φ(r1 , r2 ) + g2 r1 φ(r2 , r1 )] (V1 − E) + 2πLr2 [g1 φ(r2 , r1 ) + g2 ψ(r2 , r1 )] (V2 − E) . Für zylindrische Compartments erhalten wir durch Integration g1 + g2 3g1 + g2 ion I1 = 2πrL (V1 − E) + (V2 − E) , 12 12 3g2 + g1 g1 + g2 ion (V2 − E) + (V1 − E) . −I2 = 2πrL 12 12 (5.14) 5.2 Zeitliche Diskretisierung Indem wir die Kabelgleichungen mithilfe des Multi-Compartment-Modells diskretisieren, erhalten wir ein System von gewöhnlichen Differentialgleichungen für alle Enden von Compartments. Dieses können wir mit dem Staggered-Steps-Verfahren numerisch lösen. 5.2.1 Staggered Steps Wir bezeichnen beide Enden eines Compartments als Knoten. Sind zwei Compartments direkt verbunden, so identifizieren wir die Knoten, die die einander zugewandten Seiten der verbundenen Compartments repräsentieren. An jedem Knoten gilt die Stromerhaltungsgleichung, die insgesamt in Matrixform dargestellt werden kann. Mit der Trapezregel können wir nun ein Verfahren zweiter Ordnung konstruieren, das stabil ist und ohne die iterative Berechnung der Membranpotentiale auskommt. 31 5 Diskretisierung Wir schränken den Ort von Synapsen und externen Strömen auf die Knoten ein. Die Stromerhaltungsgleichung in Matrixform lautet dann CV − A X X dV − IEXT − Gα (V − Eα ) − Gβ (V − Eβ ) = 0 . dt α β (5.15) Hierbei ist V der Vektor der Membranpotentiale an den Knoten, IEXT sind die externen Stromquellen an den Knoten. A dV enthält nach dem Ausmultiplizieren die dt Terme aus (5.11). Analog enthalten die Summenterme mit Gβ und Gα Ausdrücke für die verteilten Ionen- und Synapsenströme. CV repräsentiert die axialen Ströme an jedem Knoten. Gemäß der Annahme sind die IEXT und Gα Diagonalmatrizen mit nichtnegativen Diagonalelementen. Ausgehend von der Matrixdarstellung der Stromerhaltungsgleichung für das Multi-Compartment-Modell können wir ein Lösungsverfahren 2. Ordnung vorschlagen. Aus A X X dV Gβ (V − Eβ ) Gα (V − Eα ) − = CV − IEXT − dt α β (5.16) können wir das implizite Euler Verfahren konstruieren mit t2 = t1 + 4t AV (t2 ) = AV (t1 ) + 4t(CV (t2 ) − IEXT (t2 ) X − Gα (t2 , V (t2 ))(V (t2 ) − Eα ) (5.17) α − X Gβ (t2 , V (t2 )(V (t2 ) − Eβ )) . β Dabei sind in unserem Fall Gα nicht von V (t2 ) abhängig, denn die verwendeten Leitfähigkeit-Funktionen sind nicht von den postsynaptischen Neuronen abhängig. Weiter beträgt die Verzögerung zwischen den synaptischen Seiten von Exp2synSynapsen > 0,5 ms, wobei die maximale empfohlene Zeitschrittweite 0,05 ms beträgt, so dass keine Abhängigkeit zu V (t2 ) zu präsynaptischen Neuronen besteht. Wir erhalten ein Verfahren 2. Ordnung für Ionenkanäle vom Hodgkin-Huxley Typ, wenn wir V (t2 ) mit V (t2 ) = 2V (t + 4t/2) − V (t1 ) berechnen, vorausgesetzt, dass V (t + 4t/2) mit einem Schritt des expliziten Euler erhalten wurde. Dabei taucht allerdings das Problem auf, die Leitfähigkeiten der Ionenkanäle, Gβ (t + 4t/2, V (t + 4t/2)), zu berechnen, da sie von nichtlinearen Funktionen für 32 5.2 Zeitliche Diskretisierung die Schließ- und Öffnungsraten bestimmt werden. Die Werte der Ratenfunktionen können aber durch n(t+4t/2, V (t + 4t/2)) = n(t − 4t/2, V (t − 4t/2))+ (5.18) n(t + 4t/2) + n(t − 4t/2) 4t α(V (t)) − (α(V (t) + β(V (t))) 2 approximiert werden, ohne die Ordnung des Verfahrens zu reduzieren. Wir approximieren also das Membranpotential durch das Potential zum Zeitpunkt t. Die Abbildung 5.2 veranschaulicht den Ablauf und den Informationsfluss des Verfahrens. Abbildung 5.2: Veranschaulichung der Berechnungsschritte und der verwendeten Zwischenergebnisse. 5.2.2 Die Baummatrix Da in jedem Zeitschritt des Verfahrens ein lineares System gelöst werden muss, wollen wir zusätzlich die Baummatrix einführen. Wir werden zeigen, dass sich die Eigenschaften der Baummatrix verwenden lassen, um das Gleichungssystem direkt zu lösen. Betrachten wir zunächst den Knotenbaum, also einen Baum, bei dem die Kanten gerade die Compartments sind. Wir durchlaufen den Baum mit dem Algorithmus für Tiefensuche. Dabei nummerieren wir jeden besuchten und noch nicht nummerierten Knoten beginnend mit 1 durch. Danach kehren wir die Nummerierung um mit i→n-i+1, wobei n die Gesamtanzahl der Knoten ist. Nun stellen wir eine 33 5 Diskretisierung Matrix auf, deren Zeilen und Spalten den Knotenindizes entsprechen und jeweils dort eine 1 haben, wo die entsprechenden Knoten identisch oder durch ein Compartment verbunden sind. Sonstige Elemente der Matrix seien 0. Siehe dazu auch Abbildung 5.3. Abbildung 5.3: Das Schema der Generierung von Baummatrizen. 5.3 Der Löser Neuronale Strukturen weisen bei Verzweigungen nur wenige Zweige auf. Per Konstruktion ist eine Baummatrix demnach dünn besetzt und symmetrisch. Die Nummerierung der Knoten ist so ausgelegt, dass ein Verzweigungsknoten einen höheren Index hat, als die direkten Nachbarn, die weiter vom Startknoten des Knotenbaumes entfernt sind. Sei n die Spaltenanzahl der Baummatrix. Dann befindet sich in jeder der ersten n-1 Spalten genau eine 1 unter der Diagonalen. Wir verwenden die Knotenindizierung aus dem oberen Verfahren, um die Matrizen aus (5.18) aufzustellen. Es tauchen Einträge 6= 0 höchstens da auf, wo Knoten durch Segmente verbunden sind, also dort, wo die Baummatrix bereits 1 hat. 34 5.3 Der Löser Die Gleichung (5.18) formen wir um zu M (t2 )V (t2 ) = AV (t1 ) + 4t(−IEXT (t2 ) + X α Gα (t2 )Eα + X Gβ (t2 )) , (5.19) β X X M (t2 ) := A + 4t( Gα (t2 ) + Gβ (t2 ) − C) . α β Per Konstruktion sind die Matrizen A, Gα und Gβ strikt diagonaldominant. C ist diagonaldominant. Also ist M ebenfalls strikt diagonaldominant und hat höchstens dort Elemente 6= 0, wo sie auch in der Baummatrix auftreten. Wir können daher die Gauß-Elimination ohne Pivoting anwenden, um das lineare Gleichungssystem (LGS) zu lösen. Offensichtlich werden in jedem Schritt der Gauß-Elimination keine neuen Elemente 6= 0 an Positionen, die bisher 0 waren, erzeugt. Bei neuronalen Multi-Compartment-Modellen handelt es sich meist um Strukturen mit einer konstanten maximalen Rate von Verzweigungen, so dass die Baummatrix dünn besetzt ist. Deshalb können wir das Gleichungssystem in der Praxis in linearer Zeit lösen. Analog zu dem Knotenbaum erhalten wir für ein Netz aus synaptisch verknüpften Neuronen einen Knotenwald, der aus Knotenbäumen besteht. Die entsprechende Matrix ist blockdiagonal, wobei die Blöcke gerade die Baummatrizen einzelner Neuronen sind. Für das gesamte Netz stellen wir daher ein zu 5.19 äquivalentes LGS auf, das wir mit der Gauß-Elimination ohne Pivoting lösen können. 35 6 Die Implementierung In diesem Kapitel zeigen wir, wie wir den Löser für die Diskretisierung implementiert haben. Wir zeigen, wie man eigene Modelle für die Simulation definieren kann, und wie man die von NeuGen erzeugten Netze importiert. Dazu erklären wir die benötigten Datenstrukturen und Vorgehensweisen. Ein besonderes Augenmerk gilt der Behandlung der Berechnung auf parallelen Computern. Für die Kommunikation zwischen den einzelnen Instanzen des Programms wird ein dezentralisiertes Protokoll verwendet, das den Datenaustausch zwischen den Prozessoren auf effiziente Art regelt. 6.1 Wahl der Programmiersprache Wir haben uns für die Programmiersprache C++ entschieden, weil sich diese Sprache einerseits gut für numerische Anwendungen eignet, andererseits aber auch objektorientiertes Programmieren unterstützt und sich, durch zusätzliche Werkzeuge, gut für Erstellung von parallelisierten Programmen eignet. C++ ist bei numerischen Anwendungen beliebt, weil sie durch Inklusion von C Maschinennähe und entsprechende Optimierungsmöglichkeiten bietet. Durch die Unterstützung des objektorientierten Programmierens eignet sie sich aber auch für größere und ausbaufähige Softwarepakete, die spezifische Ansprüche an Wartbarkeit und Wiederverwertbarkeit des Quellcodes stellen. Weitere nützliche Eigenschaften von C++ sind ihre Ausgereiftheit und die Portabilität des Quellcodes. 6.2 Definition einer Simulation Die Simulation wird als C++ Programm erstellt. Innerhalb der Programmdatei definiert man das Modell oder importiert vorgefertigte Modelldaten, setzt den Löser 36 6.2 Definition einer Simulation auf und exportiert gewählte Daten in Form von Dateien. Zum Beispiel kann man das simulierte Modell ins HOC-Format des Programms NEURON exportieren. 6.2.1 Definition des Modells Die Definition der neuronalen Modelle erfolgt in drei Phasen: 1. Definition von Geometrie und elektrophysiologischen Eigenschaften der Nervenzellen. 2. Verknüpfung von einzelnen Modellen durch Synapsen. 3. Verteilen von Input-Synapsen. Das Modell eines Neurons besteht aus Segmenten, den eigentlichen Compartments, und den post- und präsynaptischen Seiten von Synapsen. Im Folgenden nennen wir Compartments auch Segmente. Die Art, wie ein Modell im Quellcode definiert wird, lehnt sich an die Skriptsprache von NEURON, [1], an. Hier ist ein Beispiel, wie ein simples Modell mit passiver Membran in NEURON definiert werden kann: create soma, dendrite soma { nseg = 1 // Anzahl der Compartments diam = 5 // Durchmesser Ra = 123 // Spezifischen axialen Widerstand setzen // Leere die Punktliste pt3dclear() // Setze die Endpunkte des Soma. pt3dadd(0,0,0,diam) pt3dadd(1,0,0,diam) insert pas // Setze passive Membraneigenschaften g_pas = .0001666 // Spezifische Leitfaehigkeit e_pas = −60.0 // Gleichgewichtspotential } dendrite { nseg = 1 37 6 Die Implementierung pt3dclear() pt3dadd(0,0,0,2) pt3dadd(1,0,0,1) } // Verbinde das Ende 0 des Dendriten // mit dem Ende 1 von Soma. connect dendrite(0), soma(1) Jedes Segment wird durch die 3D-Position seiner Endpunkte sowie die beiden Endradien definiert. Dann setzt man die elektrophysiologischen Eigenschaften der Membran und kann optional zusätzliche Ionenkanäle hinzufügen. Synapsen werden in einem separaten Schritt erzeugt, da sie die Indizes der Segmente und die Knoten im Geometriemodell der Neuronen benötigen. Beispiele für die Definition des Modells in NeuSim können im Anhang nachgelesen werden. 6.2.2 Einlesen von Netzen aus NeuGen Zum Einlesen von Netzen, die von NeuGen erzeugt werden, existiert ein Subsystem von Klassen. NeuGen exportiert die Daten in Form von Geometrien einzelner Neurone und Positionsinformationen für Synapsen in ein Unterverzeichnis namens model. Für Alpha-Synapsen werden zusätzlich die Gewichtung sowie die Zeitpunkte der Aktivierung herausgeschrieben. Der NeuronGeometryImporter liest die Geometriedaten neuronenweise ein. Bei jedem Compartment lässt er Instanzen des SegmentObserver die elektrophysiologischen Eigenschaften initiieren. Als Ausgabe generiert der NeuronGeometryImporter für jedes Neuron ein CompiledNeuronModel. Der SynapsesFileReader liest die Datei synapses und reicht die Daten an den DataTargetContainer weiter, der einen oder mehrere SynapsesHandler enthält, die die weiteren Parameter der Synapsen mithilfe der Daten aus CompiledNeuronModel festlegen. Die Abbildung 6.1 veranschaulicht das Zusammenspiel der Klassen als Blockdiagramm. 38 6.2 Definition einer Simulation Abbildung 6.1: Darstellung der Daten-Pipeline zwischen NeuGen und der Simulation. Abbildung 6.2: UML Diagramm der geometrischen Grundklassen. Durch das Implementieren eigener SynapseHandler und SegmentObserver kann 39 6 Die Implementierung man leicht die elektrophysiologischen Parameter des Modells anpassen. Um den Zugriff auf die geometrischen und elektrophysiologischen Eigenschaften eines Neuronen-Modells zu vereinheitlichen, existieren zwei Basisklassen. So liefert NeuronModelInterface Segment-Informationen in Form von Objekten der Klasse Segment. Das SimpleModelSegment besitzt zusätzlich die Möglichkeit Anfangs- und Endpunkte eines Segmentes anzugeben. Abbildung 6.2 zeigt das UML-Klassendiagramm der Klassen, die für die Darstellung und Definition der Geometrie notwendig sind 6.3 Der Löser Wie oben ausgeführt, muss in jedem Zeitschritt das Gleichungssystem M (t2 )V (t2 ) = AV (t1 ) + 4t(−IEXT (t2 ) + X α Gα (t2 )Eα + X Gβ (t2 )) , (6.1) β X X Gβ (t2 ) − C) . Gα (t2 ) + M (t2 ) = A + 4t( α β aufgestellt und gelöst werden. Dabei ist M (t2 ) eine strikt diagonaldominante blockdiagonale Matrix. Damit sind die Lösungen für einzelne Neuronen von den Lösungen anderer Neurone unabhängig. Der lokale Löser für jede Zelle wird durch ein Objekt der Klasse StaggedSolver repräsentiert. Er arbeitet auf einem äquidistanten Zeitgitter. Bei der Konstruktion des Lösers übergibt man ihm eine eindeutige Identifikationsnummer sowie die Zeitschrittweite des Zeitgitters. Mit der Funktion addHHTMembraneMechanism() des Lösers sollte man die Mechanismen der Ionenkanäle, die man vorher bei der Definition des Modell benutzt hat, in den Löser einfügen. Macht man dies nicht, so werden sie bei der Simulation nicht verwendet. Synapsen werden mit addSynapses(), ebenfalls einer Funktion von StaggedSolver, hinzugefügt. Das fertige Compartment-Modell wird mit setModel() in den Löser geladen. Wenn es das SimpleModel ist, wird es kompiliert, es werden also Knoten erzeugt und durchnummeriert. 40 6.3 Der Löser Abbildung 6.3: UML Diagramm der Klasse StaggedSolver und der referenzierten Klassen der Synapsen und Ionenkanälen von Typ Hodgkin-Huxley. Das Membranpotential setzt man, indem man es als Vektor mit getV() holt. Dieser Vektor enthält Membranpotentiale an allen Knoten des Modells, wobei die Indizes den Knoten-Indizes entsprechen. Das geänderte Membranpotential wird mit setV() in den Löser geladen. Ein Simulationsschritt auf dem Zeitgitter wird mit trace() angestoßen. Innerhalb dieser Funktion wird erst geprüft, ob alle postsynaptischen Seiten aktuell sind, Synapses::upToDate(), also eventuelle Signale von den präsynaptischen Neuronen erhalten haben. Wenn ja, so wird der nächs- 41 6 Die Implementierung te Simulationsschritt durchgeführt. Dabei werden die Stati von Ionenkanälen und Synapsen mit HHTStateCalc::staggedStep() und Synapses::step() berechnet. Am Ende wird die update() Funktion der synaptischen Seiten angestoßen, um die Signale von den präsynaptischen an die postsynaptische Neuronen zu senden. Die Abbildung 6.3 zeigt das UML-Modell der Klassen, auf die StaggedSolver zugreift. Für Matrixoperationen des Lösers wird die Klasse SparseRowMatrix benutzt. Diese ermöglicht das effiziente Speichern von dünn besetzen Matrizen, wie sie im Lösungsverfahren auftauchen. Die Klasse ermöglicht simple Matrixoperationen wie die Addition und Subtraktion, sowie skalare und rechtsseitige Vektormultiplikation. Die interne Struktur der Matrix ist zeilenorientiert. Ein Array von Zeigern verweist auf die Zeilen. Diese werden jeweils als ein Vector der Standard Template Library (STL) von C++ gespeichert. Jedes Element der Matrix wird durch ein Paar (Spaltenindex, Wert) repräsentiert. Die Werte werden innerhalb der Zeilenvektoren nach dem Spaltenindex sortiert gespeichert, so dass die Suchzeit für einen Eintrag in einer gegebenen Spalte maximal logarithmisch in der Zeilengröße ist. Die Abbildung 6.4 zeigt das Speicherformat der Matrixklasse. Abbildung 6.4: Implementation der Matrix Klasse. Da in unserer Anwendung die meisten Compartments sich nicht direkt an Verzweigungen befinden, werden meistens nur zwei Zahlen pro Zeile der beteiligten Matrizen gespeichert. Deswegen ist die Zugriffszeit auf die Matrixelemente hier ungefähr konstant. Ein Vorteil der Speicherung in einem STL-Vektor ist der geringe Speicherverbrauch und die Möglichkeit eine Zeile zu vergrößern, zu verkleinern oder zusätzliche Elemente einzufügen. Ein Nachteil ist, dass eine Änderung der Zeilenstruktur potentiell sehr teuer werden kann. Der Hauptgrund ist, dass es bei der Vergrößerung eines STL-Vectors passieren kann, dass dem STL-Vector ein neuer Speicherbereich 42 6.3 Der Löser für die Daten zugewiesen wird, wenn der alte nicht ausreicht. Anschließend werden die Daten kopiert. Dieses Problem ist für uns nicht gegeben, denn unsere Zeilen sind typischerweise sehr klein (zwei Werte). Um neue Matrizen zu initialisieren empfiehlt es sich daher, die betroffene Zeile extern zu konstruieren und sie dann in die Matrix einzufügen. Dies passt zu den Anforderungen des StaggedSolvers, der bei der Konstruktion von Matrizen den Knotenbaum durchläuft und jeweils nur die Compartments berücksichtigt, die durch den jeweiligen Knoten verbunden sind. Ein Nachteil durch das Array von Zeilenzeigern ist die potentiell erhöhte Anzahl der Cache Misses, weil die Matrixklasse an sich keine zusammenhängende Allokierung der Zeilen erzwingt. In modernen Rechnern werden die oft benutzten Daten aus dem Hauptspeicher im schnelleren aber kleineren Cache-Speicher zwischengelagert, so dass die CPU schneller darauf zugreifen kann. Beim Laden eines kleinen Speicher-Bereiches in das Cache wird vorsorglich auch der umgebende Speicherbereich mitgeladen. Im Extremfall wird also in unserem Fall beim Zugriff auf eine Zeile nur diese eine Zeile in den Cache-Speicher geladen, was Verschwendung von Laufzeit bedeutet. Eine einfache Lösung ist, bei der externen Konstruktion von Zeilen darauf zu achten, dass die Zeilen in einem zusammenhängenden Speicherbereich reserviert werden. 43 6 Die Implementierung 6.4 Parallelisierung Für die Parallelisierung haben wir uns für das Message Passing Interface (MPI) entschieden, weil diese Bibliothek für paralleles Programmieren weit verbreitet, sehr ausgereift ist und ständig weiterentwickelt und gewartet wird. Außerdem hat sie eine gute Anbindung an C/C++. Ein MPI-Knoten ist typischerweise ein Computer in einem Rechnerverbund (Cluster), auf dem unter Zuhilfenahme von MPI ein Teil des Programms ausgeführt wird. Die Kommunikation zwischen den einzelnen MPI-Knoten wird über ein Netzwerk vermittelt. Es existieren auch Mehrprozessorsysteme, bei denen mehrere Hauptprozessoren in einem Computer stecken. Hier wird die Kommunikation über interne Bussysteme des jeweiligen Computers ausgeführt. Sehr weit verbreitet sind Mischformen, Mehrprozessor-Systeme mit Netzwerk Verbindungen zwischen den einzelnen Computern. Die Abbildung 6.5 zeigt ein Beispiel für ein Cluster aus zwei Computern mit je zwei Prozessorkernen. Abbildung 6.5: Schematische Darstellung eines Clusters bestehend aus 2 Computern mit je 2 Prozessoren. 6.4.1 Das MPI Programmiermodell In MPI wird die Kommunikation zwischen Prozessoren, auch Knoten genannt, in Form von Nachrichten abgewickelt. Möchte man Informationen vom MPI-Knoten A zu MPI-Knoten B übermitteln, so sendet A eine Nachricht als Inhalt eines Speicherbereiches an B, indem sie eine Send-Funktion von MPI aufruft. Entsprechend ruft B eine Receive-Funktion mit einem freien Speicherbereich auf, damit das 44 6.4 Parallelisierung MPI die gesendeten Daten dorthin schreibt. Nun gibt es zwei Unterformen solcher Funktionen, nichtblockierende und blockierende. Nichtblockierende Operationen terminieren ohne abzuwarten, ob eine Nachricht beim Empfänger angekommen ist. Blockierende Operationen dagegen warten, bis der Kommunikationsvorgang abgeschlossen ist. 6.4.2 Parallele Kommunikation In der parallelen Version des Programms zur Berechnung der Potentiale werden einzelne Neuronenmodelle auf die einzelnen Rechner (MPI-Knoten) verteilt. Jeder Knoten berechnet in einem Zeitschritt die zugeordneten Neuronen. Die genaue Zuordnung wird in einem Vorverarbeitungsschritt per Python-Skript und Neukompilierung des Programms festgelegt. Dabei wird pro MPI-Knoten ein Objekt der Klasse AddressBook angelegt, eine Tabelle, die den Neuronen-Indizes die MPIKnoten-Indizes zuordnet. Pro Knoten wird je ein Objekt der Klasse PostOffice angelegt, das die Details der Kommunikation vor StaggedSolver verbirgt, so dass diese für Neuronen transparent ist. Es ist für sie als Klienten von PostOffice völlig egal, welche Neuronen auf welchen Rechnern liegen, und ob das Programm überhaupt parallel oder seriell ausgeführt wird. Sie schicken ihre Daten an andere Neuronen per PostOffice.sendBuffer() oder geben bekannt, dass sie Daten empfangen möchten mit PostOffice.receiveBuffer(). PostOffice benutzt nicht blockierende Funktionen des MPI, Isend() und Irecv(), um die Daten, wenn nötig, per Netzwerk an andere Prozessoren zu schicken oder zu empfangen. Die Abbildung 6.6 stellt beispielhaft die Kommunikation zwischen drei Neuronen dar. 45 6 Die Implementierung Abbildung 6.6: Kommunikationablauf im Falle, dass Neuron1 synaptische Signale an Neuron 2 und Neuron 3 sendet. Sind die Daten auf dem empfangenden MPI-Knoten angekommen, so werden die Neuronen, die diese empfangen möchten, vom PostOffice per notifyReceive() benachrichtigt. Durch diese Organisation und die Verwendung nichtblockierender Funktionen zur Kommunikation müssen Neuronen, die bereits genug Daten für den nächsten Zeitschritt der Simulation erhalten haben, nicht auf die anderen warten. Dadurch ergibt sich eine effizientere CPU-Nutzung. In der ersten Implementierung von PostOffice bewirkte jedes sendBuffer() bzw. receiveBuffer() mit dem Ziel bzw. Quelle auf einem anderen Prozessor genau einen Isend() bzw. Irecv() Aufruf. Das Problem dabei ist der Aufwand für die parallele Kommunikation bei Netzen, bei denen es zu einem Neuronen viele präsynaptische Neuronen gibt, von denen viele von ihnen sich auf anderen Prozessoren befinden. Die aktuelle Implementierung von PostOffice fasst die Nachrichten prozessorweise zusammen, so dass sehr viel weniger MPI-Aufrufe und Netzwerkoperationen notwendig sind. Die zentrale Methode von PostOffice ist tryToDeliver(). Hier geschieht das Zusammenfassen von Anfragen an andere MPI-Knoten sowie das Testen des Status solcher Anfragen. 46 6.4 Parallelisierung Die Schleife zum Simulieren der Nervenzellen, die auf einem Prozessor gerechnet werden, sieht dann wie folgt aus: unsigned long nsteps = 0; // Iteriere solange es noch Loeser gibt , // die nicht die maximale Anzahl der // Simulationsschritte durchgefuehrt haben. while(nSteps < nTraces) { // Setze den Iterator auf den ersten Loeser aus einer Liste . iter = solver.begin() // Deklariere einen lokalen Zaehler. unsigned long locn; // Iteriere ueber alle lokalen Loeser // des Prozessors. for(; iter !=solver .end(); iter ++) { // Hole den aktuellen Loeser. StaggedSolver& solver = ∗((∗iter).second); // Hole seine aktuelle Schrittnummer. locn = solver.getTraceNumber(); // Wenn der Loeser ganz am Anfang der // Loeser−Liste // so memoriere seine Schrittnummer. if ( iter ==solver.begin()) nSteps = solver.getTraceNumber(); // Wurde eine kleinere Schrittnummer // gefunden, so speichere sie ab. else if (locn<nSteps) nSteps = solver.getTraceNumber(); // Ist der aktuelle Loeser noch nicht // fertig , so fuehre einen Simulations− // schritt aus. 47 6 Die Implementierung if (locn<nTraces) solver.trace (); } // Sende und empfange die synaptischen // Informationen. post.tryToDeliver(); } MPI::COMM_WORLD.Barrier(); Dabei ist solver eine Liste von lokalen Lösern für die zugeordneten Neuronen und iter ein Iterator über diese Liste. MPI::COMM_WORLD.Barrier() dient dazu die Prozesse anzuhalten sobald alle Neuronen eines Prozessors fertig berechnet wurden. Sobald alle Prozessoren diese Stelle erreicht haben, wird das parallele Programm fortgesetzt und nach eventuellem Postprocessing beendet. Im seriellen Programm wird diese Zeile weggelassen. 48 7 Untersuchung der numerischen Konvergenz In diesem Kapitel konstruieren wir die analytische Lösung der Kabelgleichung für finite Kabel mit passiver Membran. Desweiteren vergleichen wir das Konvergenzverhalten der numerischen Lösungen für diesen Fall mit der theoretischen Ordnung des Verfahrens. 7.1 Analytische Lösung für endliche Kabel Wir leiten eine analytische Lösung für die dimensionslose Kabelgleichung 4.16 im Falle eines Kabel endlicher Länge her, um die numerische Konvergenz zu testen. Dazu brauchen wir die Lösung der Kabelgleichung auf einem unendlichen Kabel G∗t (t, x, y) = G∗xx (t, x, y) − G∗ (t, x, y), t > 0, (7.1) G∗ (0, x, y) = δ(x − y), −∞ < (x + y) < ∞. Die Randbedingung ist lim|x|→∞ G(t, x, y) = 0. Wie man leicht verifizieren kann, lautet die Lösung G∗ (t, x, y) = exp(−t)exp(−(x − y)2 /4t) √ . 4πt (7.2) Die Abbildung 7.1 stellt G∗ grafisch dar. Wir wollen nun die analytische Lösung der Kabelgleichung im Falle eines Kabelabschnittes endlicher Länge L herleiten. Wir brauchen also zusätzlich die Randbedingungen für die beiden Enden des Abschnittes. Wir nehmen an, dass durch die Endpunkte kein Axialstrom fließt, also 49 7 Untersuchung der numerischen Konvergenz Abbildung 7.1: G∗ (t, x, 0). Vx (t, 0) = Vx (t, L) = 0. Wir suchen ihre Greensche Funktion mit denselben Randbedingungen, Z L Vx (t, L) = Vx (t, 0) = Gx (t, 0, y)V0 (y)dy (7.3) 0 Z LZ t + Gx (t − s, 0, y)I(s, y)dsdy = 0 . 0 0 Nach Definition kann man sich die Greensche Funktion als die Kabelgleichung des finiten Kabels vorstellen, bei dem an der Position y ein einzelner Stromimpuls zum Zeitpunkt t=0 injiziert wird. Die Randbedingen sind erfüllt, wenn G bezüglich 0 und L lokal symmetrisch ist. Dies können wir erreichen, indem wir G als Summe von Lösungen für infinite Kabel darstellen, G(t, x, y) = ∞ X (G∗ (t, x, 2nL − y) + G∗ (t, x, 2nL + y)) . (7.4) n=−∞ Offenbar erfüllt G die Differentialgleichung, denn jeder der Terme auf der rechten Seite erfüllt sie ebenso wie die Randbedingung. Also ist die geforderte Greensche 50 7.1 Analytische Lösung für endliche Kabel Funktion ∞ exp(−t) X −(x − 2nL + y)2 G(t, x, y) = √ exp 4t 4πt n=−∞ −(x − 2nL − y)2 . + exp 4t (7.5) Die Abbildung 7.2 zeigt das Prinzip der Konstruktion der Lösung für finites Kabel. Der einfache Testfall für die Betrachtung der Konvergenz ist ein finites Kabel mit einem Strominput in Form einer Dirac-Funktion δ(x − y0 )δ(t)I0 , sowie V0 ≡ 0. Es gilt Z LZ t G(t − s, x, y)δ(x − y0 )δ(s)I0 dsdy = (7.6) V (t, x, y) = 0 0 Z L G(t, x, y)δ(x − y0 )dy = I0 G(t, x, y0 ) . (7.7) I0 0 Die Abbildungen 7.3 und 7.4 demonstrieren Auswirkungen von der Länge des finiten Kabels und der Position des Stromimpulses auf den zeitlichen und räumlichen Verlauf der analytischen Lösung. Wir schauen nun, wie sich die von NeuSim berechnete Lösung an die analytische annähert. Das zugrundeliegende Lösungsverfahren ist zweiter Ordnung in Ort und Zeit. Wir lassen die Eigenschaften des Kabels und der Stromquelle variieren. Für jede dieser Kombinationen führen wir eine Reihe von Verfeinerungen der Zeitschrittweite und der Länge der Compartments durch, um den größten absoluten Fehler zu betrachten. Siehe Tabelle 7.1 für die Variation der Simulationsparameter. Die Eigenschaften sind so gewählt, dass sie möglichst viele Fälle aus der Realität widerspiegeln. Dazu siehe die Tabelle 7.1. Um die Probleme bei der Darstellung der Dirac-Funktion zu umgehen, betrachten wir nur Zeitintervalle, in denen das Membranpotential die Größenordnung des Aktionspotentials erreicht. Als Anfangszeitpunkt für die Simulation wurde daher 25e-6 s angesetzt. Aus der Variation der Parameter können wir Abschätzungen der abgeleiteten Parameter kt , kx , t/kt und L/kx ableiten, die in der Tabelle 7.2 zusammengefasst sind. Wie im Kapitel 4.1.1 beschrieben, brauchen wir sie, um die Lösung der dimen- 51 7 Untersuchung der numerischen Konvergenz Abbildung 7.2: Greensche Funktion als Summe von Lösungen für infinites Kabel hier L=2.5 und y=L/3. sionlosen Kabelgleichung auf die Lösung der dimensionsbehafteten Kabelgleichung abzubilden. 7.2 Konvergenztests Neben der Variation der Kabeleigenschaften (Tabelle 7.1) wird auch die Feinheit der Zerlegung des Kabels in Compartments und die Zeitschrittweite des Lösers variiert. Bei der ersten Versuchsreihe wird die Anfangsschrittweite auf 50e-6 Sekunden und die Anzahl der Compartments auf 10 gesetzt. In jedem Verfeinerungsschritt wird die Zeitschrittweite durch 1,2 dividiert und die Anzahl der Compartments mit 1,2 multipliziert. Bei jedem Verfeinerungsschritt berechnet man den Quotienten q, indem man den globalen Diskretisierungsfehler des vorherigen Schrittes durch den aktuellen dividiert. Da das Lösungsverfahren von NeuSim theoretisch 2. Ordnung in Ort und Zeit ist, müsste q ca. 1,44 sein. Die Anzahl der Verfeinerungsschritte betrug 19. Die Ergebnisse für verschiedene Testfälle in der Tabelle 7.3 zusam- 52 7.2 Konvergenztests Parameter Werte Stromimpuls, I0 (A) Länge des Kabels,L (m) Position Stromquelle (m) Radius, rI (m) Spezifischer Membranwiderstand, rM (Ohm · m2 ) Spezifischer axialer Widerstand, rsI (Ohm · m) Spezifische Membrankapazität, cM (F/m2 ) Gleichgewichtspotential (V) Zeit, (s) 1e-6, 1e-5, 1e-4 500e-6, 1000e-6, 2000e-6 Lk /2, Lk /3, Lk /5 10e-6, 5e-6, 1e-6 1/3 , 1/30, 1/300, 1/3000 1.23 1e-2 0 25e-6 ≤ t ≤ 40e-3 Tabelle 7.1: Variation der Parameter beim Testen der numerischen Konvergenz Abgeleitete Parameter Werte k t = rM · c M q M rI kx = r2r sI 1,16e-5 < kx < 1,17e-3 t/kt L/kx 7,38e-3 < t/kt < 12.013 0.42 < L/kx < 173 3,33e-6 < kt < 3,34e-3 Tabelle 7.2: Variation der abgeleiteten Parameter beim Testen der numerischen Konvergenz 53 7 Untersuchung der numerischen Konvergenz Abbildung 7.3: Lösungen für finite Kabel L=2.5, y=L/2 btw. y=L/3. Abbildung 7.4: L=1.875, y=L/2 btw. y=L/3. mengefasst. Es gibt einen signifikanten Unterschied zwischen den Versuchen mit rM = 1/3000 und den anderen. Man sieht für den spezifischen Membranwiderstand von 1/3000 Ohm · m2 eine schlechtere Konvergenz. Daher wird eine zweite Testreihe mit Anfangsschrittweite von 5e-6 Sekunden und 500 Compartments durchgeführt. Es gibt 9 Verfeinerungsschritte. Der kleinste absolute Fehler liegt jeweils um mehrere Größenordnungen über der Schranke für das Approximationsfehler der analytischen Lösung (siehe Kapitel 7.2.1, so dass wir davon ausgehen können, dass die Messungen nicht durch Approximationsfehler verfälscht sind. Es ist verständlich, dass das Konvergenzverhalten der numerischen Lösung im all- 54 7.2 Konvergenztests Spezifischer Membranwiderstand q minimaler absoluter Fehler rM > 1/3000 rM = 1/3000 1,41 1,29 2, 44 · 10−11 4, 52 · 10−13 Tabelle 7.3: Konvergenztest 1. Die Werte für q sind ein arithmetisches Mittel über die jeweilige Versuchsmenge. Spezifischer Membranwiderstand q minimaler absoluter Fehler rM = 1/3000 1,46 1, 69 · 10−13 Tabelle 7.4: Konvergenztest 2. Die Werte für q sind ein arithmetisches Mittel über die Versuchsmenge. gemeinen nicht mit dem der theoretischen übereinstimmt. Dennoch zeigen die Experimente eine gute Übereinstimmung mit dem theoretischen Konvergenzverhalten in bestimmten Parameterbereichen. 7.2.1 Die Approximation der analytischen Lösung Wir approximieren die analytische Lösung der dimensionslosen Kabelgleichung ∂U ∂2U = −U +J ∂t ∂x2 (7.8) durch eine endliche Reihe, um sie mit der numerischen Lösung zu vergleichen. Dazu definieren wir für feste t, x, y, L (x + 2nL + y)2 F1 (n) := exp − , 4t (x + 2nL − y)2 F2 (n) := exp − . 4t (7.9) 55 7 Untersuchung der numerischen Konvergenz ∞ X x + 2nL + y x + 2nL − y exp − + exp − = 4t 4t n=−∞ F1 (0) + F2 (0) + ∞ X (7.10) [F1 (n) + F2 (n) + F1 (−n) + F2 (−n)] ≈ n=1 F1 (0) + F2 (0) + i−1 X ei−1 [F1 (n) + F2 (n) + F1 (−n) + F2 (−n)] =: G n=1 für das kleinste i mit F1 (i) + F2 (i) + F1 (−i) + F2 (−i) ≤ eps . ei−1 G (7.11) Dabei ist eps die so genannte Maschinengenauigkeit und beträgt in unserem Fall 2,22e-16, da die Tests mit dem Datentyp Double durchgeführt wurden. Für ein festes n≥1 ist F1 (−n) größer als F1 (n), F2 (n) und F2 (−n). Weiter gilt die Abschätzung ! ! [(n − 1)L]2 [2(n − 1)L]2 = exp − , (7.12) F1 (−n) ≤ exp − 4t t wobei Gleichheit gerade für x=y=L eintritt. Damit kann der Abschneidefehler abgeschätzt werden ∞ X [F1 (n) + F2 (n) + F1 (−n) + F2 (−n)] ≤ 4 n=i ∞ X F1 (−n) n=i ∞ X 2 (n − 1) L =4 exp − t n=i Wir definieren K := ∞ X (i−1)L2 . t 2 ∞ X (i − 1)(n − 1)L2 ≤4 exp − t n=i [F1 (n) + F2 (n) + F1 (−n) + F2 (−n)] =4 ∞ X . Damit ergibt sich (7.14) n=i exp (−(n − 1)K) = 4 exp(K) n=i = 4 exp(K)1−i ∞ X n=i ∞ X n=0 56 (7.13) exp(−K)n . exp(−K)n 7.2 Konvergenztests Nun brauchen wir die Abschätzung für den Abschneideindex i, so dass F1 (−i) ≤ Gi−1 eps. Bei allen Tests gilt Gi−1 < 1, 7. Daher definieren wir T := 1.7 eps. Für dieses Abschneideindex i gilt wegen Ungleichung 7.12 2 2 −i L −(i − 1)2 L2 T < exp ≤ F1 (−i) ≤ exp <T , (7.15) 4 t t i2 < − ln(T /4)tL−2 , (i − 1)2 > − ln(T )tL−2 , p p − ln(T /4)tL−2 > i > 1 + − ln(T )tL−2 . Daher i ≥ 2. Damit ist aber K > 0 für alle x, y, t, L und die unendliche Reihe in 7.15 konvergiert. Diese Schranke für den Abschneidefehler ist noch zu grob. Wir können sie verfeinern mit 1−i 4 exp(K) ∞ X 4 exp(−K)i−1 (7.16) 1 − exp(−K) n=0 !!−1 p − ln(T )tL2 −(i − 1)2 L2 = 4 exp 1 − exp − t tL !!−1 r − ln(T )L2 < exp(ln(T )) 1 − exp − t exp(−K)n = Da die analytische Lösung der dimensionsbehafteten Kabelgleichung durch die √ · rkMx krtsIS erhalten wird, können wir den abMultiplikation mit einem Faktor exp(−t) 4πt soluten Fehler der Approximation der Lösung der Kabelgleichung rM cm ∂1 V = rM rM rsI iIA (0) ∂22 V − V + S SAI (7.17) nach oben einschränken durch exp(−t) √ 2 πt r rsI rI T 2rM c2m r 1 − exp − − ln(T )L2 t !!−1 . (7.18) Wir definieren r U := − − ln(T )L2 . t (7.19) Damit gilt −12.001 · 103 < U < −2, 29 · 10−2 . Nun unterscheiden wir drei Fälle anhand von U 57 7 Untersuchung der numerischen Konvergenz 1. U ∈ [−1, −2, 29 · 10−2 ). Damit gilt exp(U ) < 1 + U/4. Wegen U ≥ −1 gilt r − ln(T )L2 ≤ 1 ⇒ t ≥ − ln(T )L2 > 6, 26 . (7.20) t Hier können wir den Abschneidefehler zusammenfassen r exp(−t) rsI rI T √ 2 2rM cm 1 − exp(U ) 2 πt r rsI rI 4T exp(−t) < √ 2rM c2m −U 2 πt r 2T rsI rI exp(−t) p < 3, 79 · 10−18 . = √ 2rM c2m L − ln(T ) π 2. U ∈ [−8, −1) und damit r − ln(T )L2 − ln(T )L2 ≤8⇒t≥ > 9, 79 · 10−2 . t 64 Weiter gilt exp(U ) < exp(−1) und damit r rsI rI T exp(−t) √ 2 2rM cm 1 − exp(U ) 2 πt r exp(−9, 79 · 10−2 ) T rsI rI < p 2rM c2m 1 − exp(−1) 2 9, 79 · 10−2 π (7.21) (7.22) (7.23) <2, 04 · 10−15 . 3. U ∈ (−12.001, −8). Damit gilt exp(U ) < exp(−8). Die Abschätzung lautet dann r exp(−t) T rsI rI √ (7.24) 2rM c2m 1 − exp(U ) 2 πt r exp(−t) rsI rI T < √ 2 2rM cm 1 − exp(−8) 2 πt <3, 87 · 10−16 . 58 8 Simulationen und numerische Resultate In diesem Kapitel präsentieren wir die Ergebnisse der Simulationen. Zum einen zeigen wir, wie sich eine simulierte Kolumne von 5000 Neuronen beim simulierten Input aus dem Thalamus verhält. Wir zeigen weiter, dass der Zeitbedarf der Software in etwa quadratisch, der Speicherbedarf linear mit der Größe des Netzes wächst und linear mit der Anzahl der verwendeten Prozessoren skaliert. 8.1 Simulation eines Netzes aus 5000 Neuronen Die größte von uns simulierte Kolumne bestand aus 5000 Neuronen, davon je 35% L2/3-Pyramidal, 35% L4-Spiny Stellates, 15% L5A-Pyramidal und 15% L5BPyramidal. Die Zellen wurden von 3.469.526 Synapsen miteinander verbunden. 155.487 Synapsen dienen als Input aus dem Thalamus. Das Bild 8.1 zeigt die Anzahl der präsynaptischen Neuronen pro Zelle für verschiedene Schichten. Man kann sehen, dass ein L2/3-Pyramidal synaptische Nachrichten von ca. 330 L4-Stellates bekommen kann sowie von 52 anderen L2/3-Pyramidals. Es ist direkt einleuchtend, dass diese Zahlen ausschlaggebend für die Frage sind, wie oft ein Neuron synaptisch angeregt wird. Die Aktivität wird von einem thalamischen Input an den Alpha-Synapsen ausgelöst. Die Wahrscheinlichkeitsfunktion, ob eine Synapse zu einem bestimmten Zeitpunkt aktiviert wird, wird von NeuGen vorgegeben (siehe Bild 8.2). Bei NeuGen besteht die Möglichkeit empirische oder experimentelle Aktivierungswahrscheinlichkeiten per Datei tcu_data.txt vorzugeben. 59 8 Simulationen und numerische Resultate L2/3 Pyramidal 52 L4 Spiny Stellate 31 1 .......... 83 330 75 140 L5A Pyramidal 83 L5B Pyramidal 113 3 Synapse Dendrite 12 Axon Thalamischer Input Abbildung 8.1: Rechte Seite: Anzahl der präsynaptischen Neuronen für die einzelnen Neuronentypen der Kolumne von 5000 Neuronen. Linke Seite: Projektion von L2/3-Pyramidal auf L5B-Pyramidal. 60 Abbildung 8.2: Thalamisches Signal in die Schichten 2/3 und 5B als Wahrscheinlichkeit der Aktivierung einer Alpha-Synapse. 8.1 Simulation eines Netzes aus 5000 Neuronen Am Beginn der Simulation ist die Kolumne inaktiv. Es finden keine synaptischen Übertragungen statt und die Membranpotentiale werden auf -70 mV gesetzt. Zur Veranschaulichung der Ergebnisse benutzen wir das Programm NeuDV von J. Eberhard. Auf den Bildern sind die Somata der simulierten Kolumne aus 5000 Neuronen zu sehen. Grün steht für das Ruhepotential (< -50 mV), Rot für das Membranpotential > 0mV und Gelb für den Wertebereich dazwischen. Abbildung 8.3: Simulation der Kolumne. Die Initialisierung der Aktivität durch Thalamus. Von Links nach Rechts: 13,75 ms, 15,225 ms, 16 ms. Abbildung 8.4: Simulation der Kolumne. Die Abschwächung des thalamischen Inputs. Von Links nach Rechts: 20 ms, 21,4 ms, 22,95 ms 61 8 Simulationen und numerische Resultate Abbildung 8.5: Simulation der Kolumne. Restaktivität. Von Links nach Rechts: 28 ms, 31 ms, 39 ms. In der Abbildung 8.1 sehen wir, wie die thalamischen Synapsen das Signal in L4 und den unteren Teil von L5 einbringen. L4 projiziert das Signal in L2/3 und wird deaktiviert. Die L2/3 -Zellen projizieren in L5A und L5B und werden selbst deaktiviert. In der Abbildung 8.1 produzieren L4 -Neuronen sekundäre Aktionspotentiale mit niedrigeren Amplituden. Diese liegen bei verschiedenen Neuronen weiter auseinander als die primären Aktionspotentiale, so dass gleichzeitig L4 und L2/3 aktiv sind (Abbildung 8.6). Die Abbildung 8.1 zeigt das Nachlassen der Aktivität in L4 und L2/3 nach der Beendigung des thalamischen Inputs. Dennoch sorgt die Verschaltung innerhalb von L4 dafür (Abbildung 8.7) , dass die Kolumne nie ganz den Ruhezustand erreicht. Hier aktivieren sich die Spiny Stellates der oberen Schicht 4 gegenseitig über Exp2syn-Synapsen. Interessanterweise taucht dieses Verhalten bei kleineren Netzen von ca. 1000 Neuronen nicht auf. Es ist anzunehmen, dass das Fehlen von inhibitorischen Mechanismen wie Interneuronen, inhibitorischen Synapsen und Adaption hier ein Abklingen der Aktivität verhindert. 62 8.1 Simulation eines Netzes aus 5000 Neuronen Abbildung 8.6: Somale Membranpotentiale (mV) von 4 untereinander unvernetzten L4-Spiny-Stellates als Reaktion auf thalamischen Input. XAchse ist die Zeit in ms. Abbildung 8.7: Membranpotentiale für 4 L4-Spiny-Stellate im 5000 Netz. X-Achse ist die Zeit in ms. 63 8 Simulationen und numerische Resultate 8.2 Laufzeitverhalten und Speicherverbrauch Um das serielle Laufzeitverhalten des Programms zu testen, wurden künstliche Netzwerke verschiedener Größe mit dem Programm NeuGen erzeugt. Das Verhältnis der Anzahlen der Zellen von verschiedenen Zelltypen war in allen Versuchen L4-Spiny-Stellate / L2/3-Pyramidal / L5A-Pyramidal / L5B-Pyramidal = 7/7/3/3. Es wurden 10 ms simuliert mit der Zeitschrittweite von 25 µs. Simulationshardware war ein 2 GHz Opteron Rechner mit 16 GB Hauptspeicher. Laufzeit und Speicherbedarf wurden gemessen. Tabelle 8.1 fasst die Resultate zusammen. Ausführungszeit (min) 58 Zeit pro Neuron (min) 0,58 140 90 0,64 477,828 180 119 0,66 609,642 220 142 0,65 757,934 260 190 0,73 906,225 300 227 0,76 1.038,040 340 255 0,75 1.169,854 380 264 0,69 1.334,623 420 330 0,79 1.449,960 460 365 0,79 1.598,252 500 382 0,76 1.746,543 540 454 0,84 1.878,358 580 463 0,8 2.026,649 620 521 0,84 2.191,418 660 577 0,87 2.405,616 700 608 0,87 2.240,848 Anzahl Neuronen 100 Speicherverbrauch (MB) 346,013 Tabelle 8.1: Serielle Laufzeit und Speicherverbrauch 64 8.2 Laufzeitverhalten und Speicherverbrauch Abbildung 8.8: Serielle Ausführungszeit in Abhängigkeit von der Größe des Netzes. Abbildung 8.9: Belegung des Hauptspeichers in Abhängigkeit von der Größe des Netzes.. 65 8 Simulationen und numerische Resultate Wie man sieht in der Abbildung 8.8 sieht, steigt die Laufzeit pro Neuron mit der Anzahl der Neurone. Dies ist auf schlechtere Ausnutzung des Caches zurückzuführen. In unserem Fall greift das Programm sequentiell auf die Daten der Löser zu, was bei der wachsender Anzahl von Neuronen dazu führt, dass die mittlere Verweildauer von Daten im Cache abnimmt. Das bedeutet aber wiederum, dass immer mehr Daten direkt aus dem langsameren Hauptspeicher geladen werden müssen. Der Bedarf nach Hauptspeicher wächst linear mit der Anzahl der Neuronen wie der Abbildung 8.9 zu entnehmen ist, denn der Speicherbedarf pro Löser ist in etwa konstant. Um die Skalierung bei wechselnder Anzahl der Prozessoren zu testen, haben wir das HP XC 4000 Cluster (2.6 Ghz AMD Opteron) der Universität Karlsruhe für eine Messreihe verwendet. Es wurden die ersten 20 ms simuliert. Du Zuordnung von Neuronen zu Prozessoren wurde anhand der Neuronennummer i durchgeführt: i→(i mod nproc), wobei nproc die Anzahl der Prozessoren ist. Abbildung 8.10: Skalierung der Ausführungszeit mit der Anzahl der verwendeten Prozessoren. 66 8.2 Laufzeitverhalten und Speicherverbrauch Man sieht aus der Abbildung 8.10, dass die Laufzeit in etwa proportional zum Kehrwert der Prozessorenanzahl ist. Hier treten zwei Effekte auf, die sich entgegengesetzt auf die Laufzeit auswirken. Weniger Neuronen pro Prozessor bedeutet einen schnelleren Speicherzugriff. Mit der Anzahl der Prozessoren steigt aber auch der Kommunikationsaufwand, weil bei gegebenem Netz und Zuordnungsverfahren von Neuronen zu Prozessoren jeder Prozessor mit jedem anderen Prozessor kommunizieren muss. Hiermit haben wir gezeigt, dass die Laufzeit der seriellen Simulation etwa quadratisch mit der Anzahl der Zellen im Netz wächst. Der Speicherbedarf steigt linear. Verwendet man mehr Prozessoren, so verhält sich die Laufzeit etwa proportional zu der Anzahl der Prozessoren. 67 9 Zusammenfassung und Ausblick Die Arbeit stellt ein Verfahren zur effizienten Simulation der Signalausbreitung in neuronalen Netzen vor. Solche Verfahren sind notwendig, um Modelle der neuronalen Signalverarbeitung in großen Netzen zu testen. Unser Testproblem ist die Simulation einer Kolumne im Neokortex der Ratte. Wir stellen biologische und elektrophysiologische Grundlagen der Signalverarbeitung einer Nervenzelle vor, die notwendig sind, um den Modellierungsansatz zu verstehen. Dann stellen wir die Kolumne, unser Simulationsobjekt, vor. Da die Kolumne aus 5000 - 10000 Neuronen besteht, kann sie momentan nicht nicht in dem für Simulationen nötigen Genauigkeitsgrad durch mikroskopische Aufnahmen erfasst werden. Mit Hilfe der Software NeuGen erzeugen wir daher künstliche neuronale Netze, die die Kolumne möglichst realistisch repräsentieren. Dann wenden wir uns den Fragen der elektrophysiologischen Modellierung zu. Wir leiten die Kabelgleichungen her und zeigen, dass ihre analytischen Lösungen mithilfe der Greenschen Funktion beschrieben werden können. Die Modellierung der Ionenkanäle und der Synapsen vervollständigt das Bild und liefern die Grundlagen für die Diskretisierung. Diese ist notwendig, da die analytischen Lösungen für Kabelgleichungen für komplexe Strukturen wie Dendritenbäume sehr aufwendig zu berechnen sind. Wir leiten ein Multi-Compartment-Modell als räumliche Diskretisierung des Membranpotentials her. Im Gegensatz zum herkömmlichen Modell wie es beispielsweise in NEURON verwendet wird, wird das Membranpotential eines Compartments durch zwei Werte, an den beiden Enden eines Compartments, beschrieben. Dies erlaubt eine höhere Genauigkeit und somit potentiell eine höhere Geschwindigkeit, da die Auswirkungen der Positionierung der Synapsen genauer erfasst werden können. Die 68 Diskretisierung der Kabelgleichungen mit dem Multi-Compartment-Modell liefert ein System gewöhnlicher Differentialgleichungen erster Ordnung in der Zeit, die wir mit der Staggered-Steps-Methode diskretisieren. Beide Diskretisierungsmethoden sind von zweiter Ordnung und beinhalten im jedem Zeitschritt die Lösung von linearen Gleichungen. Die Matrizen auf der linken Seite sind dünnbesetzt und haben eine Struktur, die es ermöglicht Gauß-Eliminination effizient anzuwenden. Nachdem wir die Diskretisierung entwickelt haben, wenden wir uns der Implementierung zu. Die Software mit dem Namen NeuSim liegt in Form eines C++ - Programms vor. Das Programm bietet die Möglichkeit die simulierten Objekte direkt im Quellcode zu erzeugen oder Netze einzulesen, die mit NeuGen erzeugt wurden. Die erste Möglichkeit bietet Klassen an, die erlauben, die Beschreibung ähnlich der HOC-Sprache von NEURON zu gestalten. NeuSim kann Netzmodelle im HOC-Format exportieren. So können die Simulationsresultate von NEURON und NeuSim miteinander verglichen werden. Der Löser ist als lokaler Löser für Neuronen mit klaren Schnittstellen zu den Synapsen angelegt. Auf diese Weise wird die Parallelisierung ermöglicht, bei der ganze Neuronen auf einzelne Prozessoren verteilt werden. Diese Parallelisierung ist notwendig, weil die von NeuGen erzeugten Neuronen-Modelle sehr detailliert sind und für große Netze auf Einzelrechnern einen hohen Zeitaufwand verursachen. Wir verwenden MPI für die Kommunikation zwischen den Prozessoren. Die nichtblockierenden Send- und Receive-Funktionen dieser Bibliothek erlauben, die Wartezeiten der einzelnen Löser zu reduzieren. Ein Mechanismus zur Zusammenfassung der Nachrichten zwischen je zwei Prozessoren minimiert den Kommunikationsaufwand weiter. Um die Konvergenzordnung der Diskretisierung zu bestätigen, führen wir numerische Konvergenztests mit einem Kabel finiter Länge und passiver Membran durch. Ein Stromimpuls wird an verschiedenen Stellen in das Kabel injiziert. Für diesen Fall existiert eine geschlossene analytische Lösung, zu der wir den maximalen absoluten Fehler der der Diskretisierung berechnen. Die Tests zeigen das theoretische Konvergenzverhalten. Um das Laufzeitverhalten der Software zu charakterisieren, vergleichen wir die Auführungszeit und den Speicherbedarf der Software bei wachsender Anzahl von Neuronen. Es zeigt sich, dass der Speicherbedarf linear mit der Anzahl der Neuronen wächst. Hingegen steigt die benötigte Ausführungszeit überproportional, was 69 9 Zusammenfassung und Ausblick auf eine schlechtere Ausnutzung des Cache-Zwischenspeichers hinweist. Hier könnte ein Umbau der Schleife helfen, in der die Löser aufgerufen werden. Dies macht aber nur für kleinere Netze oder kurze Simulationen Sinn. Für größere Probleme bietet sich die parallele Ausführung auf mehreren Prozessoren an. Wir haben gezeigt, dass die gesamte Ausführungszeit paralleler Simulationen in etwa linear mit der Anzahl der Prozessoren skaliert. Nun wenden wir die Software beispielhaft auf ein NeuGen-Netz von 5000 Neuronen an. Der thalamische Input wird mittels Alpha-Synapsen repräsentiert, die die Aktivität in der Kolumne auslösen. Wir visualisieren die Ergebnisse in Form von Membranpotentialen der Somata mit dem Programm NeuDV von J. Eberhard. Um ein realistischeres Verhalten der Kolumne zu erreichen, sind weitere Verbesserungen des Kolumnen-Modells zu empfehlen. Möglicherweise ist eine weitere Verfeinerung der Ionenkanal-Verteilung in NeuGen notwendig. Es wären chemische Ionenkanäle für den Löser zu implementieren, um die Adaption, also die Abschwächung der Aktionspotential-Folgen bis hin zum Abbruch, zu simulieren. Inhibitorische Neuronentypen und Synapsen spielen ebenfalls eine wichtige Rolle bei der Regelung der kolumnaren Aktivität, eine Modellierung dieser in NeuGen wäre also wichtig. Ein weiterer Punkt ist die Implementierung von schnellen elektrischen Synapsen (Gap Junctions). Sie sind wichtig, um die Aktivität von großen Neuronen-Population zu synchronisieren und sind Gegenstand aktueller Forschung. Allerdings sind ihre Reaktionszeiten so gering, dass sie nicht mehr nur auf der rechten Seite des, in jedem Zeitschritt zu lösenden, linearen Gleichungssystems auftauchen. Man könnte dieses Problem mit einem iterativen Löser für große Gleichungssystem angehen. Trotz der Verbesserungsvorschläge sehen wir NeuGen und NeuSim als einen wichtigen Schritt zur kortikalen Kolumne in silico. 70 10 Anhang 10.1 Elektrophysiologische Parameter der Kolumne Für die Simulation der Kolumne haben die simulierten Neuronen weitgehend die gleichen Eigenschaften wie die in der HOC-Ausgabe von NeuGen definierten Netze (s. auch [4], [10]). 10.1.1 Ionenkanäle Die Palette der Ionenkanäle umfasst Na+ -, K+ - und Ca2+ -Kanäle, wobei zwei Unterarten von K+ -Kanälen verwendet wurden. Hier wird zwischen langsamen und schnellen K+ -Kanälen unterschieden. Die Besonderheit der langsamen KaliumKanäle ist die langsamere Dynamik, also die niedrigeren Öffnungs- und Schließraten. In Abbildung 10.1 sehen wir die Verteilung der Ionenkanäle auf die Modellneuronen. In Tabelle 10.1 werden die Werte für die maximalen spezifischen Leitfähigkeiten der Membran für die einzelnen Ionenkanal-Sorten angegeben. 10.1.2 Synapsen Alle Synapsen haben ein Gleichgewichtspotential von 0 V. Die Zeitkonstante τ der Alpha-Synapsen beträgt 1.7 ms. Exp2syn-Synapsen haben entsprechend die Zeitkonstanten 0.2 und 1.7 ms. Die Verzögerung zwischen der Aktivierung der präsynaptischen Seite und der Wirkung auf der postsynaptischen Seite beträgt bei Exp2syn 0.5 ms. Die maximalen Leitfähigkeiten der einzelnen Synapsen hängen 71 10 Anhang Abbildung 10.1: Verteilung der Ionenkanäle über ein Neuron. Na+ L4 L5, L2/3 K+ schnell K+ langsam Soma 1500 2000 Axon 1800 2000 Dendrite 13 Soma 1500 2000 Axon 1800 3000 Dendrite 19 Ca2+ 0.1 0.3 0.1 0.3 0.1 0.3 0.1 0.3 Tabelle 10.1: Maximale spezifische Leitfähigkeit der Ionenkanäle in S/m2 von der postsynaptischen Entfernung zum Soma sowie vom postsynaptischen und, falls vorhanden, präsynaptischen Zelltyp ab. 10.2 Beispiele für die Definition eines Modells zur Simulation mit NeuSim Hier ein Beispiel wie ein unverzweigtes konisches Stück (Section) definiert werden kann: // Definiere passive Ionenkanaele SimpleHHModel::LeakageConductanceMechanism leakage; // Erzeuge ein leeres Modell mit der Nummer 0 72 10.2 Beispiele für die Definition eines Modells zur Simulation mit NeuSim SimpleModel ∗ model = new SimpleModel(0); SimpleModel::SimpleModelSegment∗ prev = NULL; // Differenz der Endradien der Sektion double deltaR = 1e−6; // Startradius double oldR = 2e−6; // Section−Laenge double lsection = 1000e−6; // Anzahl der Segmente in der Sektion int insection = 200; // Berechne die Laenge eines Segmentes. double l = lsection/insection ; // Erzeuge alle Segmente. for(int i=0; i<insection; i++) { // Hole ein neues Segment. SimpleModel::SimpleModelSegment& seg = model−>newSegment(0); // Setze Startradius . seg. rStart = oldR + i∗deltaR/insection; // Setze Endradius. seg.rEnd = oldR + (i+1)∗deltaR/insection; // Setze den Startpunkt des Segmentes. seg. setStart ( Point3D<float>(i∗l,0,0)); // Setze den Endpunkt des Segmentes. 73 10 Anhang seg.setEnd( Point3D<float>((i+1)∗l,0,0)); // Hole Parameter fuer passive Ionenleitung. SimpleHHModel::LeakageConductance& lpar = leakage.newParameter(); // Setze maximale spezifische Leitfaehigkeit der Membran. lpar .gmax = 3; // Setze Gleichgewichtspotential der passiven Kanaele // auf 0 V. lpar .e = 0; // Versehe das Segment mit passiver Leitfaehigkeit . seg.addHHTParameter(lpar); // Setze spezifische Membran Kapazitaet. seg.spC = 1e−2;. // Setze 1,23 ohm∗m spezifischer axialer Widerstand. seg.gAx = 0.81300813; // Verbinde die Segmente miteinander. if ( i>0) model−>connectSegments(seg,∗prev,true,false); prev = &seg; } Exp2syn Synapsen dienen zur Übertragung der Signale zwischen den Neuronen. Auf der Ebene des Quellcodes werden prä- und postsynaptische Seiten durch Objekte der Klassen Exp2syn::Presynaptic und Exp2syn::Postsynaptic definiert. Alle synaptischen Seiten eines Neurons werden in einem Objekt der Klasse Exp2syn zusammengefasst. Um eine Exp2syn-Synapse zu erzeugen, ruft man auf dem Exp2synObjekt des Neurons Exp2syn::newSynapse() auf und übergibt ihr eine Argumentenliste, die die Position und die maximale Leitfähigkeit der Synapse eindeutig beschreiben. Dabei wird die benötigte Seite (prä- oder postsynaptisch) erzeugt und 74 10.2 Beispiele für die Definition eines Modells zur Simulation mit NeuSim gespeichert. Danach werden die weiteren Eigenschaften wie Verzögerung, Schwellwertpotential, Gleichgewichtspotential und die Zeitkonstanten festgelegt. // Erzeuge die Synapsensammlung fuer das Neuron mit der Nummer // neuronNummer, comTag ist die Identifikationsnummer fuer die // Kommunikation mit anderen Neuronen. Exp2syn ∗ synapses = new Exp2syn(neuronNummer, postOffice, comTag); // Generiere eine Synapse zwischen den Neuronen 0 und 1, // zwischen den Segmenten 0 und 0 und den relativen // Koordinaten 1.0 und 1.0. Die Nummer der neuen Synapse ist 0, // und ihre maximale Leitfaehigkeit betraegt 10−7 S. pair<Exp2syn::Presynaptic∗,Exp2syn::Postsynaptic∗> sides; sides = synapses−>newSynapse(0,0,1.0,1,0,1.0,0,1e−7); // Das praesynaptische Neuron wird von diesem // Prozessor simuliert? if ( sides . first != NULL) { // Die Aktivierung der postsynaptischen Seite verzoegern. sides . first −>delay = 0.5e−3; // Die Synapse wird aktiviert , wenn das Membranpotential // an der praesynaptischen Seite −10 mV ueberschreitet. sides . first −>treshold = −10e−3; } if ( sides .second != NULL) { sides .second−>tau1=0.2e−3; sides .second−>tau2=1.7e−3; 75 10 Anhang // Setze das Gleichgewichtspotential der Synapse. sides .second−>e=0; } 76 Abbildungsverzeichnis 2.1 Schematischer Aufbau des Neurons . . . . . . . . . . . . . . . . . . 3 2.2 Beispiele verschieder Polarität von Neuronen. Von links nach rechts: Unipolare, Bipolare, Multipolare Zellen . . . . . . . . . . . . . . . . 4 Modell eines Aktionspotentials beim Riesenaxon des Tintenfisches. EK , EN a Gleichgewichtspotentiale von N a+ und K + , Em Membranpotential. (aus [3], Abb. 4-18) . . . . . . . . . . . . . . . . . . . . . 7 2.4 Elektrotonus (nach [3], Abb. 4-17a) . . . . . . . . . . . . . . . . . . 8 2.5 Schema einer myelierten Faser (Verhältnis von Dicke und Länge verändert nach [3], Abb. 4-19c). Bei Depolarisation fließt Membranstrom überwiegend in Schnürringen. Das spart Energie bei der Leitungs des Aktionspotentials.Die Depolarisation pflanzt sich besonders schnell zwischen den Schnürringen fort (nach [3], Abb. 4-19c). 9 2.3 2.6 Signalübertragunsstrecke (nach [12], Abb. 1.12). . . . . . . . . . . . 10 2.7 Ein Schnitt durch den Kortex mit sichtbar gemachten L4-Zellen.(nach [9], Abb. 1A). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.8 Somatotopie (nach [12], Abb. 1.13). . . . . . . . . . . . . . . . . . . 11 3.1 Von NeuGen generierte kortikale Kolumne aus 12 Zellen. Dendriten sind gelb, Soma rot, Axons blau dargestellt. Die graue Wire-FrameBox zeigt den Umriß der Kolumne. In der Mitte befindet sich die Schicht 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Von NeuGen erzeugte künstliche Neuronen. Von links nach rechts: L2/3 Pyramidal, L4 Spiny Stellate, L4 Starpyramidal. . . . . . . . . 14 3.3 Von NeuGen erzeugte künstliche Neuronen. L5A Pyramidal und L5B Pyramidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 77 Abbildungsverzeichnis 78 4.1 Zylindrischer Membranabschnitt. 4x ist die Länge des Abschnittes, rI und rA Innen- und Außenradius. . . . . . . . . . . . . . . . . . . 16 4.2 Ersatzschema des Membranzylinders (verändert nach [14], Abb. 4.2). 17 4.3 Beispiele für die höhere Flexibilität der Exp2syn Darstellung der postsynaptischen Reaktion gegenüber der Alpha-Synapse. . . . . . . 24 5.1 Relevante Eigenschaften eines Compartments. . . . . . . . . . . . . 27 5.2 Veranschaulichung der Berechnungsschritte und der verwendeten Zwischenergebnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3 Das Schema der Generierung von Baummatrizen. . . . . . . . . . . 34 6.1 Darstellung der Daten-Pipeline zwischen NeuGen und der Simulation. 39 6.2 UML Diagramm der geometrischen Grundklassen. . . . . . . . . . . 39 6.3 UML Diagramm der Klasse StaggedSolver und der referenzierten Klassen der Synapsen und Ionenkanälen von Typ Hodgkin-Huxley. . 41 6.4 Implementation der Matrix Klasse. . . . . . . . . . . . . . . . . . . 42 6.5 Schematische Darstellung eines Clusters bestehend aus 2 Computern mit je 2 Prozessoren. . . . . . . . . . . . . . . . . . . . . . . . 44 6.6 Kommunikationablauf im Falle, dass Neuron1 synaptische Signale an Neuron 2 und Neuron 3 sendet. . . . . . . . . . . . . . . . . . . 46 7.1 G∗ (t, x, 0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.2 Greensche Funktion als Summe von Lösungen für infinites Kabel hier L=2.5 und y=L/3. . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.3 Lösungen für finite Kabel L=2.5, y=L/2 btw. y=L/3. . . . . . . . . 54 7.4 L=1.875, y=L/2 btw. y=L/3. . . . . . . . . . . . . . . . . . . . . . 54 8.1 Rechte Seite: Anzahl der präsynaptischen Neuronen für die einzelnen Neuronentypen der Kolumne von 5000 Neuronen. Linke Seite: Projektion von L2/3-Pyramidal auf L5B-Pyramidal. . . . . . . . . . 60 8.2 Thalamisches Signal in die Schichten 2/3 und 5B als Wahrscheinlichkeit der Aktivierung einer Alpha-Synapse. . . . . . . . . . . . . 60 8.3 Simulation der Kolumne. Die Initialisierung der Aktivität durch Thalamus. Von Links nach Rechts: 13,75 ms, 15,225 ms, 16 ms. . . 61 Abbildungsverzeichnis 8.4 Simulation der Kolumne. Die Abschwächung des thalamischen Inputs. Von Links nach Rechts: 20 ms, 21,4 ms, 22,95 ms . . . . . . . 8.5 Simulation der Kolumne. Restaktivität. Von Links nach Rechts: 28 ms, 31 ms, 39 ms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6 Somale Membranpotentiale (mV) von 4 untereinander unvernetzten L4-Spiny-Stellates als Reaktion auf thalamischen Input. X-Achse ist die Zeit in ms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.7 Membranpotentiale für 4 L4-Spiny-Stellate im 5000 Netz. X-Achse ist die Zeit in ms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.8 Serielle Ausführungszeit in Abhängigkeit von der Größe des Netzes. 8.9 Belegung des Hauptspeichers in Abhängigkeit von der Größe des Netzes.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.10 Skalierung der Ausführungszeit mit der Anzahl der verwendeten Prozessoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 62 63 63 65 65 66 10.1 Verteilung der Ionenkanäle über ein Neuron. . . . . . . . . . . . . . 72 79 Tabellenverzeichnis 7.1 7.2 7.3 7.4 8.1 Variation der Parameter beim Testen der numerischen Konvergenz Variation der abgeleiteten Parameter beim Testen der numerischen Konvergenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konvergenztest 1. Die Werte für q sind ein arithmetisches Mittel über die jeweilige Versuchsmenge. . . . . . . . . . . . . . . . . . . Konvergenztest 2. Die Werte für q sind ein arithmetisches Mittel über die Versuchsmenge. . . . . . . . . . . . . . . . . . . . . . . . . 53 . 53 . 55 . 55 Serielle Laufzeit und Speicherverbrauch . . . . . . . . . . . . . . . . 64 10.1 Maximale spezifische Leitfähigkeit der Ionenkanäle in S/m2 . . . . . 72 80 Literaturverzeichnis [1] N. T. Carnevale, M. L. Hines : The NEURON Book. Cambidge University Press 2006. [2] P. Dayan, L. F. Abbott : Theoretical Neuroscience. MIT Press 2001. [3] J. Dudel, R. Menzel, R. F. Schmidt : Neurowissenschaft. Springer Verlag 2001. [4] J. P. Eberhard, A. Wanner, G. Wittum : NeuGen: A tool for the generation of realistic morphology of cortical neurons and neural networks in 3D. Neurocomputing 70 (2006), 327-342. [5] W. Gropp, E. Lusk, A. Skjellum : Using MPI. MIT Press 1999. [6] M. Häußer, B. Mel : Dendrites: Bug or feature? Current opinion in neurobilogy 13(2003), 372-383. [7] A. L. Hodgkin, A. F. Huxley : A Quantitative Description of Membrane Current and its Application to Conduction and Excitation in Nerve. Journal of Physiology 117 (1952), 500-544. [8] A. E. Lindsay, K. A. Lindsay, J. R. Rosenberg : Increased Computational Accuracy in Multi-Compartmental Cable Models by a Novel Approach for Precise Point Process Localization. Journal of Computational Neuroscience 19 (2005), 21-38. [9] J. Lübke, V. Egger, B. Sakmann, D. Feldmeyer : Columnar Organisation of Dendrites and Axons of Single and Synaptically Coupled Excitatory Spiny Neurons in Layer 4 of the Rat Barrel Cortex. The Journal of Neuroscience 20 (2000), 5300-5311. 81 [10] Z. F. Mainen, T. J. Sejonwski : Influence of dendritic structure on firing pattern in model neocortical neurons. Nature 382 (1996), 363-366. [11] A. T. Schaefer, M. Matthew, E. Larkum, B. Sakmann, A. Roth : Coincidence Detection in Pyramidal Neurons Is Tuned by Their Dendritic Branching Pattern. Journal of Neurophysiology 89 (2003), 3143-3154. [12] A.Schierloh : Neuronale Netzwerke und deren Plastizität im Barrel-Kortex der Ratte. Dissertation, Technische Universität München, 2003. [13] R. D. Traub, D. Contreras, M. O. Cunningham, H. Murray, F. E. N. LeBeau, A. Roopun, A. Bibbig, W. B. Wilent, M. J. Higley, M. A. Whittington: Single-Column Thalamocortical Network Model Exhibiting Gamma Oscillations, Sleep Spindles, and Epileptogenic Bursts. J Neurophysiol 93 (2005), 21942232. [14] H. C. Tuckwell: Introduction to theoretical neurobiology. Cambidge University Press 1988, 126-189. [15] H. Weber : Ueber die stationären Strömungen der Elektricität in Cylindern. Journal für die reine und angewandte Mathematik 76 (1873), 1-20. 82 Danksagung An dieser Stelle möchte ich den Herrn Prof. Dr. Gabriel Wittum und Dr. Jens Eberhard für ihre Geduld und Unterstützung danken, die sie mir wärend der Arbeit entgegengebracht haben. Weiter bedanke ich mich bei Simone Eberhard für viele nützliche Anregungen und Tipps. 83