Neuron (Software)
NEURON ist eine Simulationsumgebung für Modelle von einzelnen Neuronen und neuronalen Netzen. Das Programm wurde im Wesentlichen von Michael Hines, John W. Moore, und Ted Carnevale an den Universitäten Yale und Duke in den USA entwickelt. NEURON ist für die Berechnung von Kabelgleichungen optimiert und damit besonders für Neuronenmodelle mit mehreren Kompartimenten geeignet.[1] Seit der Version 7.3 ist es auch möglich, Diffusions-Reaktions-Gleichungen mit NEURON zu simulieren und diese in die Neuronen- und Synapsenmodelle einzubauen.[2]
Neuron | |
---|---|
Basisdaten | |
Entwickler | Michael Hines, John W. Moore, and Ted Carnevale |
Aktuelle Version | 7.3 (3. April 2013) |
Betriebssystem | Cross-platform |
Programmiersprache | C, C++, FORTRAN |
Kategorie | Neuronensimulation |
Lizenz | GNU GPL |
http://www.neuron.yale.edu/neuron/ |
Das Programm wird primäre mithilfe der Skriptsprache HOC gesteuert, es gibt auch ein Python-Interface. Die Programme können interaktiv in einer Shell-Umgebung geschrieben oder aus einer Datei geladen werden. NEURON besitzt eine graphische Benutzeroberfläche (GUI), die auch ohne Programmierkenntnisse zu bedienen ist. Mit der GUI können Zellen mit einem oder mehreren Kompartimenten, Netzwerke, Ionenkanäle und lineare elektrische Schaltkreise konstruiert werden. Bei komplexeren Zellen können für jedes der Kompartimente eigene Parameterwerte festgelegt werden, etwa für die Abmessungen oder die Kinetik der Kanäle. Die Ionenkanäle des Neuronenmodelles wird von vorkompilierten Mechanismen simuliert, die entweder in NMODL-Programmiersprache geschrieben oder durch Datenstrukturen definiert wurden, die von einem GUI-Tool (dem Channel Builder) erstellt werden.
NEURON unterstützt parallele Programmierung mithilfe des MPI-Protokolls. Seit Version 7.0 kann die Parallelisierung auch von internen Multithreading-Routinen durchgeführt werden, um Computer mit mehreren Kernen zu unterstützen.[3]
NEURON wird weltweit für Forschung und Lehre im Bereich der Computational Neuroscience verwendet.
Anwendungsbeispiel
Der folgende Beispielcode erzeugt ein einfaches Neuronenmodell mit einem einzelnen Kompartiment als Soma sowie mehreren Kompartimenten als Axon. Die Dynamik des Membranpotentials wird durch die klassischen Hodgkin-Huxley-Gleichungen beschrieben. Das Programm erzeugt weiterhin einen elektrischen Stimulus und lässt die Simulation für 50 ms laufen.
//Erzeuge zwei Abschnitte, den Zellkörper und ein sehr langes Axon
create soma, axon
soma {
// Die Länge des Somas ist 100 Mikrometer
L = 100
// Der Durchmesser ist ebenfalls 100 Mikrometer
diam = 100
// Füge die klassischen Hodgkin–Huxley-Kanäle ein
insert hh
// Füge die passiven Eigenschaften der Zellmembran hinzu
insert pas
}
axon {
L = 5000
diam = 10
insert hh
insert pas
// Unterteilt das Axon in 10 Kompartimente. Standardmäßig wird nur eins simuliert.
nseg = 10
}
// Verbinde das proximale Ende des Axons mit dem distalen Ende des Somas
connect axon(0), soma(1)
// Deklariere den Stimulus (ein konstanter Strom) und setze ihn in die Mitte des Somas
objref stim
soma stim = new IClamp(0.5)
// Definiere einige Stimulusparameter: Verzögerung und Dauer (beide in ms), sowie Amplitude (in nA)
stim.del = 10
stim.dur = 5
stim.amp = 10
// Lade NEURONs Standard-Bibliothek, die die "run"-Routine enthält
load_file("stdrun.hoc")
// Lege eine Simulationszeit von 50 ms fest
tstop = 50
// Lass die Simulation laufen
run()
Das Ergebnis dieser Simulation kann in Form eines Plots dargestellt werden, der das Membranpotential als Funktion der Zeit zeigt. Da das Soma stimuliert wurde, tritt das Aktionspotential dort früher auf als am distalen Ende des Axons.
Weblinks
- NEURON-Website
- The NEURON Book
- Ein NEURON-Tutorial
- Kurzer Beispielcode
- Liste von NEURON-Modellen mit Links zu den entsprechenden Veröffentlichungen
Einzelnachweise
- Romain Brette et al.: Simulation of networks of spiking neurons: A review of tools and strategies. In: Journal of Computational Neuroscience. 23, 2007, S. 349–398, doi:10.1007/s10827-007-0038-6.
- neuron.yale.edu
- neuron.yale.edu