Komunikacja miedzy neuronami (rozdzial 10 The NEURON book)

Slides:



Advertisements
Podobne prezentacje
Metody badania stabilności Lapunowa
Advertisements

Zjawiska rezonansowe w sygnałach EEG
Sieć jednokierunkowa wielowarstwowa
Język ANSI C Funkcje Wykład: Programowanie komputerów
SIECI NEURONOWE Sztuczne sieci neuronowe są to układy elektroniczne lub optyczne, złożone z jednostek przetwarzających, zwanych neuronami, połączonych.
Integracja w neuronie – teoria kablowa
Zadanie z dekompozycji
Ludwik Antal - Numeryczna analiza pól elektromagnetycznych –W10
Inteligencja Obliczeniowa Sieci dynamiczne cd.
typy całkowite (całkowitoliczbowe)
Generatory napięcia sinusoidalnego
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Komórka nerwowa - neuron
HH model - bramki Pomiary voltage clamp dla różnych wartości V pozwoliły HH postawić hipotezę, że kanał Na posiada bramkę aktywacyjną i bramkę inaktywacyjną.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Co to jest studium przypadku?
Wprowadzenie do SystemC
Dynamiczne planowanie drogi z użyciem impulsowych sieci neuronowych
Domeny kolizyjne i rozgłoszeniowe
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
SO – LAB3 Wojciech Pieprzyca
Komunikacja z arkuszem. Iteracje. Funkcje.
Języki programowania obiektowego
Wątki.
Projektowanie - wprowadzenie
Korelacja, autokorelacja, kowariancja, trendy
Podstawy programowania
Systemy wspomagania decyzji
Sztuczne Sieci Neuronowe
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Prądy w komórkach nerwowych
Metody Lapunowa badania stabilności
Modelowanie populacji i przepływu opinii pomiędzy aktorami sztucznej inteligencji za pomocą sieci społecznej Wojciech Toman.
Uczenie w Sieciach Rekurencyjnych
EXCEL Wykład 4.
Ćwiczenie: Dla fali o długości 500nm w próżni policzyć częstość (częstotliwość) drgań wektora E (B). GENERACJA I DETEKCJA FAL EM Fale radiowe Fale EM widzialne.
Integracja iStore z programem Subiekt GT
Modelowanie obiektowe Diagramy czynności
Potencjały synaptyczne
Prądy w komórkach nerwowych. Kanały K + Istnieje wielka różnorodność kanałów K +. W aktywnej komórce, kanały K + zapewniają powrót do stanu równowagi.
Eksperymenty do wykonania
Przerzutniki Przerzutniki.
Zagadnienia AI wykład 6.
Potencjał błonowy Stężenie jonów potasu w komórce jest większe niż na zewnątrz. Błona komórkowa przepuszcza jony potasu, zatrzymując aniony organiczne.
Klasa NetCon (rozdzial 10 The NEURON book) Skladnia: section netcon = new NetCon(&v(x), target, thresh, del, wt) Target musi byc procesem punktowym zawierajacym.

EXCEL Wstęp do lab. 4. Szukaj wyniku Prosta procedura iteracyjnego znajdowania niewiadomej spełniającej warunek będący jej funkcją Metoda: –Wstążka Dane:
Model Lopesa da Silvy – opis matematyczny Zmienne modelu: V e (t) – średni potencjał w populacji pobudzającej E(t) – średnia częstość odpalania w populacji.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Od neuronow do populacji
PWM, obsługa wyświetlacza graficznego
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Rozszerzony model Lopesa da Silvy Schemat populacyjnego modelu generacji aktywności rytmicznej EEG. Każda z trzech populacji neuronalnych opisana jest.
AES 50 format wielokanałowej transmisji audio Antoni Paluszkiewicz wsparcie techniczne – sprzedaż w firmie Audio Plus Sp. z o.o.
Od neuronow do populacji
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Modele integrate and fire
Cwiczenie 1 Stworzyc siec zlozona z dwoch neuronow IAF polaczonych sekwencyjnie i wejsciem podawanym na pierwszy neuron IAF[0] IAF[1] NetStim IAF[0].M.
Przekaźnictwo synaptyczne
Potencjał czynnościowy
Wywołanie okienka ShapePlot poprzez hoc
Wpiszmy nastepujący kod (plot_cell1.hoc):
Object vs. class (rozdzial 13 The NEURON book)
Klasa NetCon (rozdzial 10 The NEURON book)
Zapis prezentacji:

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)

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

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.

: 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)

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.

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.

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.

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

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.

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.

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

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.

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)

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

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.

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

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()

Zachowanie modelu IAF.m IAF.M NetStim