Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałAmalia Komorowska Został zmieniony 5 lat temu
1
Komunikacja miedzy neuronami (rozdzial 10 The NEURON book)
O komunikacji mowimy wtedy, gdy zmiana w pewnym miejscu modelu zalezy od informacji (potencjał błonowy, stężenie Ca2+, generacja AP) w innym miejscu modelu. W NEURONIE wyróżniamy dwa sposoby modelowania komunikacji: POINTER Klasa NetCon (network connection)
2
Przyklad: transmisja synaptyczna zalezna od
Ca2+ w komórce presynaptycznej Element błony w komórce postsynaptycznej. Potencjal błonowy zależy od prądu synaptycznego (Is), prądu pojemnościowego (IC), prądów jonowych (Iion) i prądu osiowego z przylegajacego segmentu komorki (Ia). Ia = C dV/dt + Iion + gs([ Ca2+]pre) (V- Es) przewodnictwo synaptyczne, bedace funkcja stężenia Ca2+ w komorce presynaptycznej lokalny gradient potencjalu
3
Przyklad: transmisja synaptyczna zalezna od
Ca2+ w komorce presynaptycznej Przypisanie stężenia wapnia w kolcu dendrytcznym komorki presynaptycznej do przewodnictwa synpatycznego na elemencie w komorce postsynaptycznej można zrobić za pomoca polecenia w głównej pętli: somedendrite.syn.capre = precell.bouton.cai(1) Przypisanie to byloby interpretowane w każdym kroku całkowania (wykonywanym przez fadvance()), co mogłoby spowalniać symulacje. Dużo wydajniejszym sposobem jest skorzystanie ze zmiennej typu POINTER. W języku NMODL, zmienna typu POINTER odnosi się (wskazuje) do innej zmiennej. Konkretne przypisanie odbywa się poprzez komendę w języku hoc.
4
: Graded synaptic transmission
NEURON { POINT_PROCESS GradSyn POINTER capre RANGE e, k, g, i NONSPECIFIC_CURRENT i } UNITS { (nA) = (nanoamp) (mV) = (millivolt) (uS) = (microsiemens) (molar) = (1/liter) (mM) = (millimolar) PARAMETER { e = 0 (mV) : reversal potential k = 0.02 (uS/mM3) ASSIGNED { v (mV) capre (mM) : presynaptic [Ca]i g (uS) i (nA) BREAKPOINT { g = k*capre^3 i = g*(v - e)
5
Po stworzeniu nowej instancji GradSyn, możemy ‘połączyc’ jej zmienną typu POINTER z inna zmienną w innej lokalizacji, za pomocą poleceń hoc: objref syn somedendrite syn = new GradSyn(0.8) setpointer syn.capre, precell.bouton.cai(0.5) Ostatnie polecenie używa komendy setpointer do przypisania zmiennej capre w synapsie syn, wartości zmiennej cai w segmencie button komórki precell.
6
Komunikacja za pomoca ‘wydarzen’ (NetCon)
Model koncepcyjny: pojawienie sie AP w zakonczeniu presynaptycznym wywoluje pewien efekt (np. zmiane przewodnictwa) w komórce postsynaptycznej. Efekt ten jest opisany rownaniami różniczkowymi albo schematem kinetycznym. Szczegoly w zakończeniu presynaptycznym nie są istotne, interesuje nas tylko wystapienie AP.
7
Komunikacja za pomoca ‘wydarzen’ (NetCon)
Komunikacja wywołana przez potencjal czynnosciowy (AP). Góra: Modelujemy propagacje AP z miejsca powstawania do zakonczenia aksonu (axon terminal). Na zakonczeniu aksonu ustawiamy detektor (Spike detector). Detekcja AP wywoluje z pewnym opóźnieniem (Synaptic latency) pewien efekt (np. zmianę przewodnictwa) w komórce postsynaptycznej. Dół: Bardziej wydajna wersja wydarzeń: zaniedbujemy szczegoly propagacji wzdluz aksonu i ‘śledzimy’ miejsce powstawania AP. Gdy wystąpi tam AP, obliczamy łączne opóźnienie (propagacja aksonem + opóźnienie synaptyczne) i aktywujemy zmianę przewodnictwa postsynaptycznego.
8
NetCon posiada threshold, delay i weight.
Klasa NetCon Objekt klasy NetCon definiuje połączenie synaptyczne pomiędzy komórka pre- i postsynaptyczną. NetCon posiada threshold, delay i weight. Gdy zmienna presynaptyczna (V) przekroczy threshold kierunku dodatnim w czasie t, po czasie t+delay wywoływana jest procedura NET_RECEIVE w neuronie postsynaptycznym i dostaje ona informację o wartości weight. Skladnia: section netcon = new NetCon(&v(x), target, threshold, delay, weight) Target musi byc procesem punktowym zawierajacym blok NET_RECEIVE Threshold, delay i weight są opcjonalne; wartości domyślne: netcon.threshold = 10 // mV netcon.delay = 1 // ms netcon.weight = 0 // uS
9
Wydajnosc NetCon - dywergencja
Gdy jedna komórka presynaptyczna tworzy wiele połączeń postsynptycznych, każde połączenie postsynaptyczne ma swój NetCon. Detekcja progu odbywa się ‘per zródło’, a nie ‘per NetCon’. Zmienna w komórce presynaptycznej jest sprawdzana tylko raz w kroku całkowania. Gdy przekroczy próg, generowane sa ‘wydarzenia’ dla połaczonych z nia NetCon, które mogą mieć różne parametery i klasy.
10
Wydajnosc NetCon - konwergencja
Gdy jedna komórka postsynaptyczna dostaje wiele podobnych wejść, mozna ‘podłączyć’ wiele objektow NetCon do tego samego procesu postsynaptycznego. Ten sam układ równań różniczkowych opisujących synapsę jest wykorzystywany do obliczania wielu wejść. Każde wejście może mieć inną wagę oraz opóźnienie.
11
Jak dziala NetCon NetCon laczy zmienna presynaptyczna (np. napięcie) z procesem punktowym (np. synapsa) w komorce postsynaptycznej, dla ustalonych parametrow threshold, delay i weight. Gdy zmienna presynaptyczna przekroczy threshold w kierunku dodatnim, w czasie t, wtedy, po czasie t + delay aktywowana jest procedura NET_RECEIVE w docelowym procesie punktowym i przekazywana jest informacja o weight. Skladnia: section netcon = new NetCon(&v(x), target, thresh, del, wt) Specyfikacja paramterow (wartosci domyslne pokazane sa ponizej): netcon.threshold = 10 // mV netcon.delay = 1 // ms netcon.weight = 0 // uS
12
Model integrate and fire w NEURONIE
IntFire1 jest procesem punktowym w NEURONIE posiadajacym ‘potencjal blonowy’ m, ktory zanika eksponencjalnie do zera: t dm/dt + m = 0 Pojedyncze wejscie z wagą w powoduje dodanie w do m, a gdy m > 1 komórka odpala generujac impuls wyjsciowy i przywraca m do 0. Rozszerzenie o okres refrakcji powoduje, ze m jest inicjalizowane do wartosci ujemnej po generacji impulsu. SYNTAX c = new IntFire1(x) c.tau --- ms time constant c.refrac --- ms refractory period. Minimum time between events is refrac c.m --- state variable c.M --- analytic value of state at current time, t m M - fixed dt step M – variable dt step Zmienna stanu neuronu IF, reprezentowana przez m, nie zmienia sie w okresie pomiedzy wydarzeniami (events). Do wizualizacji nalezy uzywac zmiennej M, ktora podaje akutalna wartosc zmiennej m.
13
Implementacja IntFire1
Podstawowa implementacja IntFire1 Implementacja IntFire1 rozszerzona o M NEURON { ARTIFICIAL_CELL IntFire1 RANGE tau, m } PARAMETER { tau = 10 (ms) } ASSIGNED { m t0 (ms) INITIAL { m = 0 t0 = 0 NET_RECEIVE (w) { m = m*exp(−(t − t0)/tau) m = m + w t0 = t if (m > 1) { net_event(t) //notifies all related NetCons that //it fired a spike at time t NEURON { ARTIFICIAL_CELL IntFire1 RANGE tau, m } PARAMETER { tau = 10 (ms) } ASSIGNED { m t0 (ms) INITIAL { m = 0 t0 = 0 FUNCTION M() { M = m*exp(−(t − t0)/tau) NET_RECEIVE (w) { m = m*exp(−(t − t0)/tau) m = m + w t0 = t if (m > 1) { net_event(t)
14
Blok NET_RECEIVE rozszerzony o proces refrakcji
PARAMETER { tau = 10 (ms) refrac = 5 (ms)} ASSIGNED {refractory} //variable that keeps track whether the point process is in the refractory //period or not INITIAL {refractory = 0} NET_RECEIVE (w) { if (refractory == 0) { m = m*exp(−(t − t0)/tau) m = m + w t0 = t if (m > 1) { net_event(t) refractory = 1 net_send(refrac, refractory) //self-event is sent after time refrac with the flag 1 } } else if (flag == 1) { : self−event arrived, so terminate refractory period refractory = 0 m = 0 } : else ignore the external event
15
Funkcja M rozszerzona o impuls i okres refrakcji
Stan refrakcji Zmienna M rozszerzona o impuls zanika eksponencjalnie i ’skacze’ do 2, gdy m przekroczy prog. Po okresie refrakcji zmienna m (a wiec i M) jest inicjalizowana do 0. FUNCTION M() { if (refractory == 0) { M = m*exp(−(t − t0)/tau) } else if (refractory == 1) { if (t − t0 < 0.5) { M = 2 } else { M = −1 } Zmienna M rozszerzona o impuls i okres refrakcji zanika eksponencjalnie,’skacze’ do 2, gdy m przekroczy prog, a nastepnie pozostaje w okresie refrakcjii. Po jego zakonczeniu zmienna m (a wiec i M) jest inicjalizowana do 0.
16
Prosty model sieci Neuron Integrate and Fire z synapsą z przychodzacymi impulsami W ogólności musimy Zdefiniować rodzaje komorek i wejść Stworzyć komórki i ich wejścia Stworzyć połączenia
17
First_NetStim_example.hoc load_file("nrngui.hoc") objref IAF
IAF = new IntFire1(0.5) IAF.tau = 20 IAF.refrac = 5 objref StimTrigger, NetInput StimTrigger = new NetStim(0.5) StimTrigger.start =10 StimTrigger.interval = 5 StimTrigger.number =50 StimTrigger.noise= 0 NetInput = new NetCon(StimTrigger, IAF, 0.1, 0, 0.3) /// graphical display /// objref g g = new Graph() g.size(0,500,-2,3) //g.addvar("IAF.m") //addvar is fast g.addexpr("IAF.M") //addexpr is more general but slower ///////////////////////// /* simulation control */ ///////////// dt = 0.025 tstop = 500 proc initialize() { t=0 finitialize() } proc integrate() { g.begin() while (t<tstop) { fadvance() g.plot(t) g.flush() proc go() { initialize() integrate()
18
Zachowanie modelu IAF.m IAF.M NetStim
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.