Table of Contents
Esempi d'uso di Neuron
Approfondimento sulle linee di trasmissione
Anche se la lunghezza di un assone è abbastanza piccola (100 um), i segnali variano molto rapidamente e la lunghezza della linea che viene percorsa non è trascurabile (non si può usare la teoria dei circuiti a costanti concentrate)
http://en.wikipedia.org/wiki/Cable_theory
- sezione: è un elemento cilindrico che possiede delle proprietà fisiche (diametro, lunghezza, capacità, resistenza) e che può essere diviso in segmenti. Le sezioni possono essere collegate tra loro, ad esempio: nella precedente immagine una sezione costituisce il soma di un neurone, un'altra sezione costituisce un assone di un neurone, un'altra un dendrite.
- segmento: una sezione composta da un solo segmento, sarebbe simulata come se fosse concentrata in un punto, quindi segmentare una sezione permette di eseguire dei calcoli in modo più accurato. Il modello iniziale si realizza usando solo sezioni. La suddivisione in segmenti può essere fatta dopo, in modo indipendente dal modello.
una sezione (cilindro) ha delle proprietà
- nseg = quante segmenti la compongono
- diam = diametro
- L = lunghezza
- C = capacità membrana per unità di superficie
- Ra = resistenza assiale
- v = potenziale membrana cellulare, voltage
Si possono aggiungere nuove proprietà e meccanismi, usando linguaggio NMODL (model description language)
Esempi
Per aprire la finestra
nrngui
Per uscire
quit()
Creare più sezioni (sinonimo di cilindri)
La sintassi e i tipi di dato ricordano il C++
create provasez1 create provasez2 provasez1.L = 18.8 print prvasez1.L create moltesez[2] // come in ling. C
Collegare le sezioni
Il collegamento avviene in certi punti della sezione.
Si specifica la percentuale della lunghezza tra parentesi tonde (0.0, …, 1.0)
connect moltesez[0](0), provasez1(0) connect moltesez[1](0), provasez1(1)
------------------------------- ----------------- |(1) moltesez[0] (0)---(0) provasez1 (1) |_____________________________| |_______________|
Definire una sezione (un cilindro) predefinita
In questo modo la sezione non va più specificata per nome (è sottintesa)
access provasez2 print L print provasez2.L provasez1 psection() forall psection
meccanismi delle membrane
- pas (passive channel)
- aggiungendo pas, si aggiungono due nuove proprietà (e_pas,g_pas)
provasez2 insert pas // utile nei dendriti provasez2.g_pas = .0001667 provasez2.e_pas = -60.0
- hh (Hodgkin-Huxley channels)
- aggiungendo hh, si aggiungono sei nuove proprietà (gnabar_hh,gkbar_hh,gl_hh,ena,ek,el_hh) e sei nuove variabili di stato (m_hh,h_hh,n_hh,ina,ik)
provasez2 insert hh // utile nel soma provasez2.gnabar_hh=0.25 provasez2.gl_hh = .0001667 provasez2.el_hh = -60.0
Loop
Si può automatizzare molto codice usando un for
for i = 0, N-1 moltesez[i] { insert pas g_pas = .0001667 e_pas = -60.0 }
Point processes
Alcune proprietà sono distribuite uniformemente sulla sezione (sul cilindro) con unità di misura per unità di superficie (cm2). Altre proprietà hanno dei valori puntuali e sono espressi in unità assolute
L'elaborazione per punto prende in considerazione proprietà assolute Questo esempio inserisce nel mezzo della sezione (50% della lunghezza del cilindro)
provasez1 objectvar provastimolo provasez1 provastimolo = new IClamp(0.5)
IClamp, VClamp e ExpSyn sono tipi puntuali predefiniti,
Anche IClamp ha delle proprietà: del, dur, amp (ritardo, durata e ampiezza)(espresso in ms e mA)
provasez1 provastimolo.del = 100 provasez1 provastimolo.dur = 100 provasez1 provastimolo.amp = 0.1
Eseguire una simulazione
si possono usare le istruzioni in uno script con estensione .hoc. La durata sarà di 300 ms.
Per eseguire uno script
nrngui myfile.hoc
per windows, per assicurare di avere Main Menu aperto aggiungendo PRIMA
load_file("nrngui.hoc")
tstop = 300 run() print provasez1.v
GUI
grafici mostrano come cambia un valore nel tempo o nello spazio
Graph > Voltage axis
Tool > RunControl > Init_&_Run
Procedure
proc block_sodium() { provasez2 gnabar_hh = 0 }
Oppure
proc block_sodium() { provasez2 gnabar_hh = $1 * 0.25 }