Method Article

Wizualny przewodnik po sortowaniu nagrań elektrofizjologicznych za pomocą "SpikeSorter"

DOI:

10.3791/55217

February 10th, 2017

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Artykuł pokazuje, jak używać programu SpikeSorter do wykrywania i sortowania skoków w nagraniach pozakomórkowych wykonanych za pomocą matryc wieloelektrodowych.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Dostępnych jest niewiele samodzielnych aplikacji do sortowania skoków z nagrań wykonanych za pomocą układów wieloelektrodowych. Idealnie byłoby, gdyby aplikacja była przyjazna dla użytkownika z graficznym interfejsem użytkownika, zdolnym do odczytywania plików danych w różnych formatach i zapewniała użytkownikom elastyczny zestaw narzędzi dających im możliwość wykrywania i sortowania zewnątrzkomórkowych przebiegów napięcia z różnych jednostek z pewnym stopniem niezawodności. Wcześniej opublikowane metody sortowania spajków są teraz dostępne w oprogramowaniu SpikeSorter, którego celem jest dostarczenie elektrofizjologom kompletnego zestawu narzędzi do sortowania, począwszy od surowego pliku z zapisanymi danymi, a skończywszy na eksporcie posortowanych czasów spajków. Procedury są zautomatyzowane w zakresie, w jakim jest to obecnie możliwe. Artykuł wyjaśnia i ilustruje zastosowanie programu. Otwierany jest reprezentatywny plik danych, filtrowane są ślady zewnątrzkomórkowe, wykrywane są zdarzenia, a następnie grupowane. Zilustrowano szereg problemów, które często występują podczas sortowania, w tym artefaktowe nadmierne dzielenie jednostek spowodowane tendencją niektórych jednostek do wystrzeliwania kolców w parach, gdzie drugi skok jest znacznie mniejszy niż pierwszy, oraz nadmierne dzielenie spowodowane powolnymi zmianami wysokości kolców w czasie, które występują w niektórych jednostkach. Dokładność działania SpikeSortera została przetestowana z zastępczymi danymi o prawdzie gruntowej i uznano, że jest porównywalna z innymi algorytmami w obecnie rozwijanym systemie.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Każdy, kto rejestruje sygnały zewnątrzkomórkowe z mózgu za pomocą metod bardziej wyrafinowanych niż proste progi i okienka on-line, staje przed zadaniem identyfikacji i oddzielenia sygnałów z różnych neuronów od hałaśliwych sygnałów napięciowych rejestrowanych przez elektrodę. To zadanie jest powszechnie znane jako sortowanie wartości szczytowych. Trudność sortowania kolców jest potęgowana przez różne czynniki. Neurony mogą znajdować się bardzo blisko siebie, więc sygnały rejestrowane z nich przez pobliską elektrodę mogą być podobne i trudne do odróżnienia. Sygnały wytwarzane przez pojedynczy neuron mogą zmieniać się w czasie, być może z powodu ruchów elektrody, zmiennej kinetyki kanału sodowego w okresach wysokiej szybkości wypalania, zmiennego stopnia aktywacji przewodnictwa napięciowego w dendrytach znajdujących się blisko elektrody lub być może w wyniku zmian w stanie mózgu. Problemy te można złagodzić, stosując matryce wieloelektrodowe (MEA) z wieloma blisko rozmieszczonymi (20 - 100 μm) kanałami rejestrującymi, co pozwala na lepszą przestrzenną definicję sygnałów z pojedynczych neuronów, ponieważ są one zwykle rozproszone po kilku kanałach1,2. Jednak to, w połączeniu z faktem, że sygnały z neuronów rozchodzą się na całej długości elektrody nakładają się na siebie w przestrzeni, skutkuje potencjalnie bardzo wysoką przestrzenią wymiarową, w której należy zidentyfikować klastry odpowiadające unikalnym neuronom. Problem ten staje się obliczeniowo nierozwiązywalny dla więcej niż niewielkiej liczby kanałów elektrodowych. Do tej pory nie ma ogólnie uzgodnionej najlepszej metody sortowania spajków, chociaż zaproponowano wiele rozwiązań3,4,5,6,7,8 a nagrania z MEA stają się coraz bardziej powszechne9,10. Ponieważ sortowanie wartości szczytowych nie jest celem samym w sobie, ale jest po prostu niezbędnym krokiem wstępnym przed dalszą analizą danych, istnieje zapotrzebowanie na łatwy w użyciu pakiet, który będzie odczytywał surowe pliki danych nagraniowych i konwertował je na posortowane ciągi spajków przy jak najmniejszym udziale użytkownika oraz tak szybko i niezawodnie, jak to tylko możliwe.

Ten artykuł zawiera samouczek dotyczący korzystania z SpikeSorter — programu opracowanego w celu zaspokojenia tych potrzeb. Program oparty jest na algorytmach opisanych we wcześniej opublikowanych artykułach11,12,13. Celem przy projektowaniu programu było: a) powinien on mieć przyjazny dla użytkownika interfejs, wymagający niewielkiej lub żadnej wcześniejszej wiedzy z zakresu programowania komputerowego lub metodologii sortowania spajków; b) nie powinno być potrzebnych niewiele innych specjalistycznych komponentów oprogramowania poza standardowymi systemami operacyjnymi Windows lub Linux; c) powinien być obsługiwany szeroki zakres formatów zapisu danych do importu i eksportu danych; d) potrzeba wprowadzania danych przez użytkownika podczas sortowania powinna być zminimalizowana, oraz e) czasy sortowania powinny być skalowane w rozsądny sposób, najlepiej liniowo, wraz z czasem nagrywania i liczbą kanałów na elektrodzie. Algorytmy zaimplementowane w programie obejmują: a) elastyczny zestaw strategii wstępnego przetwarzania i wykrywania zdarzeń; b) zautomatyzowana strategia redukcji wymiarów typu "dziel i rządź", polegająca na grupowaniu przebiegów napięcia w oparciu o rozkłady składowych głównych (PC) uzyskane z podzbiorów kanałów przypisanych do określonych klastrów; c) zautomatyzowane grupowanie dystrybucji PC z szybką procedurą grupowania opartą na algorytmie przesunięcia średniego3,14, oraz d) częściowo zautomatyzowane łączenie i dzielenie klastrów parami, aby zapewnić, że każdy z nich jest jak najbardziej różny od wszystkich innych. Do tego dodano zestaw procedur, które umożliwiają ręczne dzielenie lub łączenie klastrów w oparciu o inspekcję rozkładów PC, krzyżowych i autokorelogramów ciągów spajków oraz wykresy czasowo-amplitudowe przebiegów szczytów. Nagrania z tetrod, tablic tetrodowych, tablic Utah oraz jedno- i wielozębowych MEA mogą być odczytywane i sortowane. Obecny limit liczby kanałów wynosi 256, ale w przyszłości może zostać zwiększony.

Dostępna jest również inna wieloplatformowa implementacja open-source, "spyke" (http://spyke.github.io). Napisany przez jednego z nas (MS) w Pythonie i Cython, spyke używa tego samego ogólnego podejścia co SpikeSorter, z pewnymi różnicami: aby zmniejszyć zapotrzebowanie na pamięć, surowe dane są ładowane w małych blokach i tylko wtedy, gdy jest to absolutnie konieczne; klastry są wyłącznie wyświetlane, manipulowane i sortowane w 3D; oraz analiza składowych głównych i składowych niezależnych są stosowane jako uzupełniające metody redukcji wymiarów. Spyke wymaga więcej interakcji z użytkownikiem, ale w dużej mierze opiera się na skrótach klawiaturowych i myszy oraz kolejce cofania/ponawiania, aby szybko badać wpływ różnych czynników na grupowanie dowolnego podzbioru skoków. Czynniki te obejmują wybór kanału spajka i zakresu czasu, wyrównanie wartości szczytowej, wymiary grupowania i przepustowość przestrzenną (sigma)11.

Poniżej znajduje się krótki opis algorytmów i strategii używanych do sortowania. Bardziej szczegółowe opisy można znaleźć w poprzednich publikacjach11,12,13 oraz w adnotacjach, do których można uzyskać dostęp za pomocą przycisków pomocy (oznaczonych znakiem '?') w SpikeSorter. Po załadowaniu surowego pliku napięcia zewnątrzkomórkowego i odfiltrowaniu składowych o niższej częstotliwości, początkowy etap wykrywania zdarzeń skutkuje zestawem zdarzeń, z których każde składa się z krótkiej migawki napięcia przed i po czasie zdarzenia. Jeśli miejsca elektrod są wystarczająco blisko siebie oddalone (< 100 μm), sygnały pojedyncze jednostki będą zwykle pojawiać się na kilku sąsiednich kanałach. Dla każdego zdarzenia automatycznie wybierany jest kanał centralny, odpowiadający kanałowi, na którym napięcie międzyszczytowe zdarzenia jest największe. Automatyczne sortowanie rozpoczyna się od utworzenia pojedynczego początkowego klastra dla każdego kanału elektrody, składającego się ze wszystkich zdarzeń, które zostały zlokalizowane w tym kanale. Jednostka znajdująca się w połowie drogi między kanałami może powodować powstawanie impulsów, które są zlokalizowane (być może losowo) w różnych kanałach: klastry z tych dwóch zestawów kolców zostaną zidentyfikowane jako podobne i połączone na późniejszym etapie. Następnie obliczany jest średni przebieg zdarzeń w każdym początkowym klastrze. Jest to nazywane szablonem klastra. Kanały pomocnicze są przypisywane do każdego klastra na podstawie amplitud i odchylenia standardowego przebiegów szablonu na każdym kanale. Wartości składowych głównych są następnie obliczane dla każdego klastra na podstawie przebiegów na przypisanym zestawie kanałów. Użytkownik może wybrać liczbę wymiarów głównego komponentu, który ma być używany: zwykle wystarczają 2. Każdy klaster jest następnie dzielony na kolejny zestaw klastrów i jest to powtarzane do momentu, gdy żaden z nich nie może być dalej dzielony przez automatyczne grupowanie.

W tym momencie, początkowy zestaw składający się powiedzmy, z 64 klastrów z 64-kanałowej elektrody, może zostać podzielony na dwa lub trzy razy większą liczbę, w zależności od liczby jednostek, które były obecne w nagraniu. Jednak ze względu na zmienne przypisywanie zdarzeń z pojedynczych jednostek do różnych kanałów, liczba klastrów znalezionych na tym etapie jest prawie na pewno większa niż powinna. Kolejnym etapem sortowania jest skorygowanie nadmiernego podziału poprzez porównanie par klastrów i scalenie podobnych par lub ponowne przypisanie zdarzeń z jednego do drugiego. Ten etap sortowania jest określany jako "scalanie i dzielenie".

Łączenie i dzielenie

Dla N klastrów istnieje N*(N-1)/2 par, a zatem liczba par rośnie wraz z N2, co jest niepożądane. Jednak wiele par można wykluczyć z porównania, ponieważ dwaj członkowie pary są fizycznie daleko od siebie. Zmniejsza to zależność do czegoś, co jest bardziej liniowo związane z liczbą kanałów. Pomimo tego skrótu, etap scalania i dzielenia może być nadal dość czasochłonny. Działa to w następujący sposób. Każda para klastrów, która ma być porównywana (te, które są fizycznie blisko siebie, co można ocenić na podstawie nakładania się zestawów kanałów przypisanych do każdej z nich) jest tymczasowo scalana, zachowując jednak tożsamość skoków w dwóch klastrach składowych. Następnie obliczane są główne składowe scalonej pary. Miara nakładania się punktów w dwóch klastrach jest obliczana na podstawie rozkładu pierwszych dwóch głównych składników.

Sposób obliczania miary nakładania się jest opisany bardziej szczegółowo w innym miejscu11. Jego wartość wynosi zero, jeśli klastry w ogóle się nie nakładają, tzn. najbliższy sąsiad każdego punktu znajduje się w tym samym klastrze. Jego wartość jest bliska 1, jeśli klastry całkowicie się na siebie nakładają, tj. prawdopodobieństwo, że najbliższy sąsiad znajdzie się w tej samej grupie, jest takie samo, jak przewidywane na podstawie równomiernego wymieszania punktów.

Podejmowane są różne decyzje, które uwzględniają miarę nakładania się. Jeśli nakładanie się jest większe niż określona wartość, klastry mogą być scalane. Jeśli nakładanie się jest bardzo małe, para skupień może być zdefiniowana jako odrębna i pozostawiona sama sobie. Wartości pośrednie, wskazujące na niepełną separację pary klastrów, mogą sygnalizować, że para powinna zostać scalona, a następnie ponownie podzielona, co pożądanym rezultatem jest para klastrów o mniejszym nakładaniu się. Procedury te są uruchamiane najpierw w etapie zautomatyzowanym, a następnie w etapie kierowanym ręcznie.

Na etapie automatycznym, pary klastrów o wysokiej wartości nakładania się są łączone; następnie pary klastrów o średnich i niskich wartościach nakładania się są łączone i ponownie dzielone. W drugim, kierowanym przez użytkownika, użytkownikowi prezentowane są kolejno wszystkie pozostałe niejednoznaczne pary klastrów (tj. te, których wartości pokrywają się w zdefiniowanym pośrednim zakresie) i jest proszony o wybór, czy a) scalić parę, b) scalić i ponownie podzielić parę, c) zadeklarować, że para jest odrębna (co zastąpi znaczenie miary nakładania się), lub d) zdefiniowanie relacji między parą jako "niejednoznacznej", co wskazuje, że jest mało prawdopodobne, aby skoki w parze były dobrze posortowane. Dostępne są różne narzędzia, które pomagają w podejmowaniu tych decyzji, w tym automatyczne i krzyżowe korelogramy oraz wykresy szeregów czasowych wysokości szczytów i wartości PC.

Idealnie, na końcu etapów łączenia i dzielenia, każdy klaster powinien być odrębny od wszystkich innych, albo dlatego, że ma niewiele kanałów wspólnych z innymi klastrami, albo dlatego, że indeks nakładania się jest mniejszy niż zdefiniowana wartość. Ta wartość jest wybierana przez użytkownika, ale zwykle wynosi 0,1. Klastry (jednostki), które przejdą ten test, są definiowane jako "stabilne", a te, które tego nie robią (ponieważ nakładanie się z jednym lub kilkoma innymi klastrami jest większe niż próg) są definiowane jako "niestabilne". W praktyce zdecydowana większość jednostek jest definiowana jako "stabilna" na końcu sortowania, pozostawiając pozostałą część do odrzucenia lub potraktowania jako potencjalnie wielojednostkową.

Wymagania dotyczące oprogramowania

SpikeSorter jest kompatybilny z 64-bitowymi wersjami Windows 7 i Windows 10, a także został pomyślnie uruchomiony pod Linuksem przy użyciu emulatora Wine. Pliki danych są ładowane w całości do pamięci (ze względu na szybkość), stąd dostępna pamięć RAM musi skalować się wraz z rozmiarem nagrania (pozwól na około 2 GB na sam program). Pliki danych elektrofizjologicznych o rozmiarze większym niż 130 GB zostały pomyślnie posortowane zarówno w środowisku Windows, jak i Linux. Dostęp do opcji można uzyskać za pośrednictwem standardowych menu systemu Windows, paska narzędzi i okien dialogowych. Układ elementów w menu jest mniej więcej zgodny z kolejnością operacji sortowania, zaczynając od menu "Plik" po lewej stronie do wprowadzania danych i menu "Eksportuj" po prawej stronie, umożliwiającego eksport posortowanych danych. Przyciski paska narzędzi udostępniają skróty do często używanych elementów menu.

Plik konfiguracyjny kanału

Wiele formatów danych zapisu nie przechowuje lokalizacji kanałów. Jednak ich znajomość jest niezbędna do sortowania spajków. Kanały mogą być również numerowane na różne sposoby przez oprogramowanie akwizycyjne: SpikeSorter wymaga, aby kanały były numerowane w kolejności, zaczynając od kanału 1. W związku z tym należy utworzyć plik konfiguracyjny elektrody pomocniczej, który może zmienić mapowanie numerów kanałów, aby były zgodne z regułą sekwencyjną i przechowywać lokalizacje kanałów. Plik konfiguracyjny kanału jest plikiem tekstowym z pojedynczym wierszem tekstu dla każdego kanału. W pierwszym wierszu pliku znajduje się nazwa tekstowa o długości do 16 znaków, która identyfikuje elektrodę. Liczby w kolejnych wierszach mogą być oddzielone tabulatorami, pojedynczym przecinkiem lub spacjami. W każdym wierszu znajdują się cztery liczby podające (w kolejności): numer kanału w pliku, numer kanału, do którego ma być zmapowany (tj. numer, który będzie używany przez SpikeSorter) oraz współrzędne x i y kanału, w mikronach. Współrzędna x byłaby zwykle traktowana jako prostopadła do kierunku wprowadzania elektrody, a współrzędna y odpowiednio oznaczałaby głębokość w tkance. Plik konfiguracyjny musi być umieszczony w tym samym katalogu, co plik z nagraniem. Istnieje pewna elastyczność w tym, jak można go nazwać. Program najpierw wyszuka plik, który ma taką samą nazwę jak plik danych surowych, ale z rozszerzeniem .cfg. Jeśli ten plik nie zostanie znaleziony, wyszuka plik "elektroda.cfg". Jeśli ten plik z kolei nie zostanie znaleziony, zostanie wygenerowany komunikat o błędzie wskazujący na brak informacji o układzie kanału.

Access restricted. Please log in or start a trial to view this content.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1. Ustawienia programu

  1. Przejdź do http://www.swindale.ecc.ubc.ca/SpikeSorter aby pobrać program. Skopiuj dostarczony plik wykonywalny do wybranego katalogu. Przeczytaj dołączoną dokumentację.
    UWAGA: Nie jest wymagana żadna formalna instalacja ani kompilacja.
  2. Przed otwarciem jakiegokolwiek pliku do sortowania upewnij się, że jest wystarczająco dużo wolnej pamięci RAM, aby pomieścić cały czas trwania nagrania. Upewnij się również, że prawidłowy plik konfiguracyjny kanału, zgodnie z opisem w dokumentacji, znajduje się w tym samym katalogu co plik danych.
  3. Uruchom program, a następnie przejdź do "Plik - Otwórz" i wybierz format pliku nagrania z listy rozwijanej w prawym dolnym rogu wyświetlonego okna dialogowego otwierania pliku. Wybierz plik, który chcesz otworzyć, a następnie kliknij "Otwórz".
  4. Po zakończeniu odczytu sprawdź napięcie wyświetlacz nagrywania. Kliknij dwukrotnie na wyświetlaczu (lub przejdź do 'View - Voltage Record'), aby wyświetlić okno dialogowe z elementami sterującymi, które umożliwiają view dowolnej części przebiegu nagrywania.
    UWAGA: Dwukrotne kliknięcie w innych oknach wyświetlacza często powoduje wyświetlenie powiązanych okien dialogowych.
  5. Po zamknięciu okna dialogowego najedź myszką na przebiegi, aby wyświetlić określone wartości napięcia w lewym górnym rogu wyświetlacza. Użyj kółka przewijania, aby powiększyć dowolną część ekranu. Przytrzymaj lewy przycisk myszy, aby przeciągnąć zawartość okna.
    UWAGA: Ten ekran jest często aktualizowany w celu odzwierciedlenia dodania nowo wykrytych zdarzeń lub wskazania, za pomocą kolorów i/lub liczb, ich przypisania do klastrów po grupowaniu.
  6. Jeśli nagranie nie jest filtrowane i zawiera potencjał pola lokalnego, usuń je, przechodząc do "Wstępne przetwarzanie - Przekształć/filtr" (lub kliknij ikonę filtra na pasku narzędzi). Wybierz "Górnoprzepustowy filtr Butterwortha", a następnie odpowiednią częstotliwość odcięcia i liczbę biegunów, a następnie naciśnij "Do-It!". Po zakończeniu filtrowania sprawdź nowy przebieg w oknie przebiegu napięcia.
    UWAGA: Filtrowanie odbywa się w domenie Fouriera, jest nieprzyczynowe i nie wprowadza zniekształceń fazowych przebiegów. W przypadku długiego nagrania filtrowanie może potrwać kilka minut.
  7. Następnie sprawdź, czy kanały mogą być uszkodzone i wymagają zamaskowania. Przejdź do "Przetwarzanie wstępne - Sprawdzanie kanałów" (lub kliknij ikonę sprawdzania kanałów), a następnie sprawdź wyświetlony wykres. Wykres przedstawia zmianę korelacji sygnałów między parami kanałów w funkcji ich separacji przestrzennej5. Kanały, które naruszają tę relację, mogą nie działać poprawnie. Aby zobaczyć takie wartości odstające, kliknij "odchylenia netto pojedynczego kanału".
    1. Aby zamaskować odległy kanał, wybierz numer kanału lub wybierz go z listy problemów. Po zamknięciu tego okna dialogowego kliknij "Tak" po wyświetleniu monitu, aby zapisać wartości maski.
      UWAGA: Ten plik będzie miał taką samą nazwę jak plik danych nagrania, ale z rozszerzeniem .msk. Zostanie on odczytany automatycznie za każdym razem, gdy ten sam plik danych zostanie otwarty.

2. Wykrywanie zdarzeń

  1. Przejdź do opcji "Przetwarzanie wstępne - Wykrywanie zdarzeń", aby wyświetlić okno dialogowe wykrywania zdarzeń (Rysunek 1). To okno dialogowe oferuje również opcję maskowania kanałów na podstawie ich poziomu szumów (chociaż często będą one wykrywane przez poprzednie testy). Na przykład kanał, który został celowo uziemiony, może mieć bardzo niski poziom szumów.
  2. Użyj suwaka w prawym górnym rogu, aby sprawdzić poziom szumów na poszczególnych kanałach. Dokładna kontrola wyświetlacza napięcia może również ujawnić ciche lub niezwykle hałaśliwe kanały, które należy zamaskować.
  3. Wybierz metodę progowania na potrzeby wykrywania zdarzeń. Użyj przycisku pomocy w polu grupy, aby uzyskać więcej informacji o opcjach. Zalecane jest "zmienne" progowanie z progiem szumów 4,5X - 6X7. Użyj elementów sterujących w lewym górnym rogu, aby wybrać sposób obliczania poziomu hałasu w tym celu.
  4. Wybierz metodę wykrywania z listy rozwijanej. Zalecaną metodą jest "Dynamiczny filtr wielofazowy". Wymaga to określenia okna czasowego. Ustaw okno tak, aby miało mniej więcej połowę szerokości typowego skoku. Bardzo wąskie wartości skłaniają wykrywanie do węższych skoków, chociaż efekt nie jest duży. Zalecane są wartości z zakresu 0,15 - 0,5 ms12.
    UWAGA: Wyświetlane wartości są całkowitymi wielokrotnościami interwału próbkowania (odwrotność częstotliwości próbkowania).
  5. Wybierz metodę wyrównania. Wybierz opcję, która najlepiej identyfikuje pojedynczą, czasowo zlokalizowaną cechę sortowanych spajków, np. "dodatni szczyt" może być złym wyborem, jeśli wiele szczytów ma więcej niż jeden dodatni szczyt. W przypadku wielu nagrań najlepszym wyborem będzie "ujemne koryto". Inne opcje można zwykle pozostawić z ich wartościami domyślnymi. Naciśnij 'Start'.
    UWAGA: Wykrywanie zdarzeń może trwać od kilku sekund do kilku minut, w zależności od długości nagrania i liczby kanałów.
  6. Naciśnij "Gotowe", aby wyjść z okna dialogowego. Sprawdź zdarzenia, pokazane na szaro, w oknie przebiegu napięcia. Sprawdź, czy wykryto sygnały, które wyglądają jak zdarzenia.
    1. Jeśli nie, rozważ ponowne uruchomienie wykrywania zdarzeń z niższym progiem wykrywania. Należy jednak pamiętać, że skoki o bardzo niskiej amplitudzie mogą być trudne do sortowania, a duża ich liczba może utrudniać sortowanie skoków o większej amplitudzie. Sprawdź również, czy nie ma oczywistych duplikatów lub niepowodzenia w rozwiązaniu pobliskich skoków i odpowiednio dostosuj parametry okna blokady czasowo-przestrzennej.
      UWAGA: Na tym etapie zdarzenia są identyfikowane na podstawie czasu ich wystąpienia i numeru kanału. Zwykle jest to kanał, w którym amplituda skoku między szczytami jest największa. Zdarzenia są początkowo nieklastrowane, więc każde z nich ma przypisanie klastra o wartości zero.

3. Sortowanie

UWAGA: Następny krok zwykle nie jest wykonywany przed rutynowym sortowaniem, ale jest bardzo przydatny podczas sortowania po raz pierwszy lub gdy napotkasz nieznane dane.

  1. Przejdź do "Sortuj - Konwertuj kanały na klastry". Tworzy to pojedynczy klaster dla każdego niezamaskowanego kanału elektrody, zakładając, że każdy kanał ma przypisane pewne zdarzenia. Sprawdź te klastry, przechodząc do pozycji "Przegląd — wyświetlanie czystych i podzielonych klastrów". Spowoduje to wyświetlenie kolejnego okna dialogowego (Rysunek 2). Użyj elementu sterującego wirowaniem (w lewym górnym rogu), aby wybrać klaster do wyświetlenia.
    UWAGA: Ciągła niebieska (niebieskozielona) linia jest średnią wszystkich przebiegów w klastrze i jest określana jako szablon klastra w poniższym tekście. Rozkład głównych składowych (PC) zdarzeń w klastrze jest pokazany w poniższym oknie. Często ujawniają one obecność dwóch lub więcej podgromad.
  2. Naciśnij przycisk "realign", aby zmienić czas każdego zdarzenia (co skutkuje niewielkimi przesunięciami przebiegów na boki na wyświetlaczu), aby lepiej dopasować go do kształtu szablonu, co często sprawia, że podklastry są bardziej zwarte i wyraźne, a czasami zmniejsza liczbę pozorną (ilustracja 3).
  3. Wybierz klaster, który ma dwie lub więcej odrębnych podklastrów i naciśnij "Automatyczny podział". Jeśli podklastry zostaną zidentyfikowane na ekranie komputera, zostaną pokolorowane. W ramach ćwiczenia użyj jednego z małych przycisków "podziel", aby utworzyć nowy klaster i zbadać go. Sortowanie można kontynuować ręcznie w ten sposób, ale zamiast tego można cofnąć się i użyć szybszej procedury automatycznego sortowania.
  4. Przejdź do "Sortuj - Automatyczne sortowanie" (lub naciśnij przycisk automatycznego sortowania na pasku narzędzi), aby rozpocząć automatyczne sortowanie. Wynikowe okno dialogowe pokazano na rysunku 4. Przedstawia różnorodne opcje.
    1. Pozostaw zaznaczoną opcję "pomiń wykrywanie zdarzeń", jeśli wykrywanie zdarzeń zostało już wykonane. Jeśli ta opcja nie jest zaznaczona, wykrywanie zdarzeń będzie uruchamiane przy użyciu wartości parametrów i wyborów odziedziczonych z okna dialogowego wykrywania zdarzeń. Ponieważ wykrywanie zdarzeń zostało już wykonane, pozostaw tę opcję zaznaczoną.
    2. W poniższym panelu "grupowanie" wybierz okno czasowe wystarczająco duże, aby pomieścić cały przebieg skokowy poprzedzający i następujący po punkcie wyrównania, ale nie więcej. Użyj tego okna, aby zablokować obszary przebiegu spajka, np. długie zmienne potencjały wtórne, jeśli wydają się zakłócać (lub w niewielkim stopniu) sortować. Zazwyczaj odpowiednie są wartości z zakresu ± 0,5 ms. Podobnie jak inne okna czasowe, okno jest całkowitą liczbą punktów próbkowania, więc wyświetlane wartości czasowe są wielokrotnościami interwału próbkowania.
    3. Następnie wybierz opcję wyrównania, która ma być używana podczas grupowania. Będzie to wykorzystywać przebieg szablonowy i będzie działać bardziej niezawodnie niż w początkowym przypadku wykrywania zdarzeń, w którym kryterium musi być stosowane do stosunkowo hałaśliwych pojedynczych przebiegów szczytowych. Zalecaną opcją jest "c.o.g. ważony szczytem", ale "ujemne minimum" może być lepsze, jeśli jest to spójna cecha przebiegów skoków.
    4. Wybierz minimalny rozmiar klastra. Klastry z mniejszą liczbą szczytów zostaną usunięte, co zapobiegnie gromadzeniu się dużej liczby małych, potencjalnie fałszywych klastrów podczas sortowania.
    5. Zdecyduj o liczbie wymiarów w przestrzeni komputera, które będą używane do grupowania. Dwa są na ogół wystarczające, ale nieco lepsze wyniki można uzyskać przy 3, choć przy dłuższym czasie sortowania.
    6. Pozostaw inne opcje z ustawieniami domyślnymi. Użyj przycisków Pomoc, aby uzyskać bardziej szczegółowe wyjaśnienia różnych opcji.
  5. Naciśnij "Start", aby rozpocząć automatyczne sortowanie. Klastry oparte na kanałach są najpierw tworzone, jak pokazano w kroku 3.1. Są one teraz przetwarzane po kolei, tworząc nowe gromady poprzez oddzielanie poszczególnych podgromad, jedna po drugiej. Za każdym razem, gdy nowy klaster jest oddzielany, wartości PC są ponownie obliczane i wyświetlane. Trwa to do momentu, gdy nie będzie można dalej dzielić poszczególnych klastrów.
  6. Postępuj zgodnie z instrukcjami wyświetlanymi na wyświetlaczu, gdzie podklasa, która zostanie oddzielona od klastra nadrzędnego, jest pokazana na czerwono.
    UWAGA: Czasami końcowa grupa jest czerwona z niekolorowymi wartościami odstającymi, które nie tworzą odrębnej podgromady. Te wartości odstające są zwykle usuwane. Podczas tego procesu liczba klastrów stopniowo rośnie. Po jego zakończeniu obliczane są indeksy nakładania się klastrów dla każdej kwalifikującej się pary klastrów. Pary, które mają duże wartości nakładania się, są automatycznie scalane, natomiast pary, które mają pośrednie wartości nakładania się (domyślny zakres to 0,1 do 0,5), są scalane, a następnie ponownie dzielone. Wartości pośrednie sugerują, że istnieją dwa odrębne klastry, ale niektóre punkty są błędnie przypisane. Na tym etapie liczba klastrów zazwyczaj maleje, a liczba stabilnych klastrów rośnie.

4. Personalizacja

  1. Jeśli używasz programu po raz pierwszy (lub ewentualnie w następnym kroku), dostosuj rozmiary i pozycje okien. Przejdź do "Preferencji plików". Wybierz rozmiary dla różnych okien, wybierając typ okna z listy rozwijanej i dostosowując rozmiar do ekranu. Wyjdź z okna dialogowego i ustaw okna, aby jak najlepiej wykorzystać ekran.
  2. W oknie dialogowym wybierz wartości skalowania, które najlepiej pasują do układu i odstępów między kanałami na elektrodzie oraz skokami w nagraniu. Dostępna jest opcja automatycznego skalowania, ale nie zawsze może to wybrać najlepsze wartości. Wyłącz go, jeśli tak się nie stanie.
  3. Zaznacz opcję Lepkie parametry: jeśli opcja jest wybrana, zmiany w wartościach parametrów sortowania (np. używanych w wykrywaniu zdarzeń) zostaną zapisane i odziedziczone przy następnym uruchomieniu programu. Może to być przydatne, ale wymaga również sprawdzenia wartości parametrów, aby upewnić się, że nie zostały one nieostrożnie zmienione podczas eksplorowania różnych opcji lub w wyniku wczytywania różnych plików roboczych. Dostępne są również opcje zmiany kolorów podklastrów.
  4. Zachowaj ostrożność przy zmianie liczby wątków procesora. Optymalna liczba to zwykle o 1 mniej niż liczba fizycznych (nie wirtualnych) rdzeni procesora. Zwiększenie liczby wątków może nie przyspieszyć przetwarzania, a nawet spowodować poważne spowolnienie.

5. Scalanie i dzielenie

  1. Po zakończeniu automatycznego sortowania naciśnij "Dalej", aby przejść do etapu ręcznego scalania i dzielenia. Wynikowe okno dialogowe pokazuje w lewym dolnym rogu liczbę pozostałych niejednoznacznych par klastrów, które należy zbadać, a także liczbę stabilnych klastrów.
  2. Naciśnij "Rozpocznij". Pojawia się kolejne okno dialogowe wraz z pierwszą z par do zbadania.
  3. Wybierz, czy chcesz scalić parę, podzielić ją ponownie (co spowoduje niższą wartość nakładania się), oznaczyć parę jako "odrębną", co oznacza, że wartość indeksu nakładania się zostanie zignorowana, czy też oznaczyć parę jako "niejednoznaczną", co oznacza, że nie ma pewności, czy skoki pochodzą z tych samych, czy różnych jednostek.
    1. Kliknij pola wyboru, aby wyświetlić wykres parametrów skoków (wysokość między szczytami (P-P) lub pierwsza (PC1) lub druga (PC2) z głównych składowych) w funkcji czasu i/lub histogramy automatycznej i korelacji krzyżowej.
      UWAGA: Wyświetlanie wysokości P-P w funkcji czasu jest często bardzo przydatne przy podejmowaniu decyzji o połączeniu dwóch klastrów. Jeśli wysokości kolców w jednej jednostce płynnie łączą się z wysokościami innej jednostki w tym samym czasie, gdy jedna jednostka przestaje strzelać, a druga zaczyna, jest znacznie bardziej prawdopodobne, że są to te same jednostki i powinny zostać połączone. Korelogramy krzyżowe mogą ujawnić silną zależność czasową między czasami skoków w dwóch klastrach. Jeśli korelogram krzyżowy ma silny, asymetryczny pik w bardzo krótkim odstępie czasu (np. około 5 - 10 ms), a zwłaszcza jeśli drugi skok jest mniejszy niż pierwszy, dwie jednostki są najprawdopodobniej pojedynczą jednostką, która wystrzeliwuje pary kolców, w których druga jest mniejsza niż pierwsza z powodu adaptacji kanału Na+.
    2. W przypadkach, gdy decyzja o połączeniu nie jest łatwa, oznacz parę jako "niejednoznaczną" i odpowiednio potraktuj klastry w kolejnych analizach.
  4. Jeśli opcja scalania i dzielenia nie może znaleźć wyraźnie rozłącznych klastrów, użyj suwaka w wyświetlonym oknie dialogowym, aby ręcznie zmienić parametr klastrowania (przepustowość przestrzenną, sigma) wraz z zestawem przycisków scalania, aby znaleźć podział, który wygląda zadowalająco. Użyj przycisku "Przywróć", aby powrócić do pierwotnego stanu dwóch klastrów. Naciśnij "Podziel, jak pokazano", aby zakończyć. Uwaga W tej procedurze można utworzyć więcej niż dwa klastry.
  5. Kontynuuj ten proces, aż nie będzie już par do sprawdzenia. Zdecydowana większość klastrów powinna być teraz wymieniona jako "stabilna".
  6. Jeśli niektóre pary klastrów mają bardzo niskie indeksy nakładania się, tak że są ignorowane przez scalanie z przewodnikiem (ale nadal istnieją dowody na ich scalanie), przejdź do opcji menu "Przegląd - Porównaj pary klastrów" (lub kliknij odpowiednią ikonę na pasku narzędzi) i otwórz okno dialogowe pokazane na rysunku 5. Użyj elementów sterujących pokrętłem w górnej części okna dialogowego, aby wybrać dowolną parę klastrów do porównania.
    UWAGA: Podobnie jak w przypadku scalania i dzielenia z przewodnikiem, pary są umieszczane na posortowanej liście, ale w tym przypadku dostępne są metryki porównawcze dodatkowe do indeksu nakładania się klastrów.
    1. Wybierz opcję "znormalizowany iloczyn skalarny" z listy rozwijanej. Spowoduje to obliczenie korelacji między wartościami szablonu. Jest niewrażliwy na multiplikatywne zmiany skalowania i dobrze nadaje się do wybierania par klastrów, które są artefaktowym wynikiem zmienności wysokości między szczytami.
    2. Naciśnij przycisk "Najbardziej podobne" w środku okna dialogowego, aby wyświetlić najbardziej podobną parę. Użyj elementu sterującego obracaniem w poziomie pod przyciskiem, aby przewijać listę do przodu lub do tyłu. Korzystaj z wyświetlacza korelacji i wyświetlacza wysokości P-P w funkcji czasu, aby podejmować decyzje dotyczące scalania, tak jak w przypadku scalania i dzielenia kierowanego przez użytkownika. Należy zauważyć, że lista jest obliczana ponownie po każdej operacji scalania. Ten etap porównania jest otwarty i to użytkownik decyduje, jak szeroko szukać dowodów na korzyść scalania.

6. Recenzja – Przetwarzanie końcowe

  1. Teraz przejdź do "Recenzja - Przetwarzanie końcowe" (lub kliknij odpowiednią ikonę na pasku narzędzi). To okno dialogowe (Rysunek 6) oferuje opcje dodawania lub usuwania zdarzeń z klastrów, a także opcję usuwania całych klastrów, których stosunek sygnału do szumu (SNR) spada poniżej określonego progu. Zduplikowane zdarzenia (zdarzenia występujące w tym samym czasie w klastrze) mogą być tworzone przez błędy wyrównania podczas sortowania. Wydarzenia, które są znacznie oddalone od swojej pierwotnej lokalizacji, mogą czasami zostać przeniesione; Można je również usunąć, gdy przeprowadzka nie działa.
  2. Użyj przycisku czyszczenia wyrównania, aby usunąć zdarzenia z klastrów, które są niezgodne z szablonem. Użyj przycisku "Recluster", aby zrobić coś odwrotnego, tj. ponownie przypisać nieklastrowane zdarzenia, które są dobrze dopasowane do określonego szablonu. Odzyskane zdarzenia są oznaczone jako podklaster każdego klastra nadrzędnego i można je sprawdzić za pomocą okna dialogowego "Wyświetlanie, czyszczenie i dzielenie klastrów". Te zdarzenia pozostaną w klastrze (i zostaną wyeksportowane jako takie), chyba że zostaną usunięte (użyj małego przycisku "usuń" dla pierwszego podklastra). Wracając do okna dialogowego przetwarzania końcowego, użyj przycisku "usuń" i znajdującego się obok niego elementu sterującego pokrętłem, aby usunąć klastry o SNR mniejszym niż wybrany próg.
  3. Chociaż numery klastrów są ciągłe od 1 do N, gdzie N jest całkowitą liczbą klastrów, rzeczywista numeracja klastrów na końcu sortowania jest bliska dowolnej. Za pomocą przycisku 'Sortuj' przenumeruj klastry według wybranego kryterium, np. pozycji pionowej na elektrodzie lub numeru kanału. Zauważ, że z wyjątkiem usunięcia zduplikowanych zdarzeń, obecnie nie ma obiektywnych dowodów na poparcie tego, że niektóre wybory w tym oknie dialogowym są lepsze od innych.
  4. Na każdym etapie ręcznych procedur sortowania możliwe jest zapisanie pliku, który zawiera aktualne wartości parametrów, opcje sortowania, czasy zdarzeń, właściwości klastra oraz rekord wiadomości. Utwórz ten plik, przechodząc do "Plik - Zapisz plik roboczy". Nadaj plikowi nazwę, która jest wyraźnie związana z nazwą pliku danych i naciśnij "Zapisz". Wznów sortowanie w późniejszym czasie, otwierając najpierw oryginalny plik nagrania, a następnie filtrując górnoprzepustowe (jeśli zostało wykonane początkowo). Następnie otwórz zapisany plik roboczy. Program będzie wtedy w stanie identycznym z tym, w jakim znajdował się w momencie zapisania pliku roboczego. Plik roboczy jest również zapisem tego, w jaki sposób odbyło się sortowanie - użytych parametrów oraz komunikatów wysyłanych podczas sortowania.
  5. Na koniec wyeksportuj zdarzenia klastrowane. Przejdź do 'Eksport - Posortowane pliki spajków' (lub kliknij na odpowiedni przycisk na pasku narzędzi). Wybierz ".csv plik" (zmienna oddzielona przecinkami) z listy rozwijanej, a następnie kliknij "Zapisz jako". Wybierz nazwę pliku, który będzie zawierał wyeksportowane dane CSV dla posortowanych jednostek.
    UWAGA: Ten plik tekstowy będzie zawierał pojedynczy wiersz dla każdego zdarzenia zawierający, w kolejności, czas zdarzenia (w sekundach z dokładnością do 10 μs), numer klastra (od 1 w górę) oraz numer kanału, który został przypisany do zdarzenia. Należy pamiętać, że przypisany kanał może nie być taki sam dla wszystkich zdarzeń w klastrze, jeśli zdarzenia nie były konsekwentnie większe w jednym konkretnym kanale.

Access restricted. Please log in or start a trial to view this content.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Rysunek 7 pokazuje wyświetlanie (uzyskane przez przejście do 'Widok - Posortowane przebiegi') dla typowego posortowanego nagrania. Domyślna opcja widoku polega po prostu na pokazaniu przebiegów na kanale środkowym dla każdego klastra. Częstym doświadczeniem jest to, że przebiegi dla pary klastrów na tym samym kanale wyglądają identycznie, ale gdy okno dialogowe "Porównaj pary" jest używane do zbadania dwóch klastrów, w projekcji PC występują odrębne klastry, najczęściej w...

Access restricted. Please log in or start a trial to view this content.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Formaty plików

Obecnie obsługiwane formaty plików to Neuralynx (.ntt i .ncs), Plexon (.plx), Neuroscope (.xml + .dat), MultiChannel Systems (.mcd), Blackrock (.nev) i Intan (.rhd). W przypadku nieobsługiwanych formatów dostępne są dwie opcje. Jednym z nich jest prośba o dodanie formatu pliku do nadchodzącej wersji (link do wiadomości e-mail z programistą znajduje się w oknie dialogowym "Pomoc - Informacje"). Drugim jest przekonwertowanie pliku na obsługiwany format. Prostą opcją jest użycie forma...

Access restricted. Please log in or start a trial to view this content.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autorzy nie mają nic do ujawnienia.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Dziękujemy tym osobom i grupom, które korzystały z SpikeSorter i które dostarczyły prośby o wsparcie formatu plików oraz sugestie i opinie, jak go ulepszyć. Należą do nich Youping Xiao, Felix Fung, Artak Khachatryan, Eric Kuebler, Curtis Baker, Amol Gharat i Dongsheng Xiao. Dziękujemy Adrienowi Peyrache za fałszywie dodatnie i negatywne dane liczbowe podane w "Reprezentatywnych wynikach".

Access restricted. Please log in or start a trial to view this content.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
spikesorter.exeNiehttp://www.swindale.ecc.ubc.ca/SpikeSorter
dotyczy

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Buzsáki, G. Large-scale recording of neuronal ensembles. Nat. Neurosci. 7, 446-451 (2004).
  2. Blanche, T. J., Spacek, M. A., Hetke, J. F., Swindale, N. V. Polytrodes: High Density Silicon Electrode Arrays for Large Scale Multiunit Recording. J. Neurophys. 93, 2987-3000 (2005).
  3. Lewicki, M. S. A review of methods for spike sorting: the detection and classification of neuronal action potentials. Network. 9, R53-R78 (1998).
  4. Letelier, J. C., Weber, P. P. Spike sorting based on discrete wavelet transform coefficients. J. Neurosci. Methods. 101, 93-106 (2000).
  5. Quiroga, R. Q., Nadasdy, Z., Ben-Shaul, Y. Unsupervised spike detection and sorting with wavelets and superparamagnetic clustering. Neural Computation. 16, 1661-1687 (2004).
  6. Franke, F., Natora, M., Boucsein, C., Munk, M., Obermayer, K. An online spike detection and spike classification algorithm capable of instantaneous resolution of overlapping spikes. J. Comput. Neurosci. 29, 127-148 (2010).
  7. Jäckel, D., Frey, U., Fiscella, M., Franke, F., Hierlemann, A. Applicability of independent component analysis on high-density microelectrode array recordings. J. Neurophysiol. 108, 334-348 (2012).
  8. Rossant, C., et al. Spike sorting for large, dense electrode arrays. Nature Neuroscience. 19, 634-641 (2016).
  9. Vandecasteele, M., et al. Large-scale recording of neurons by movable silicon probes in behaving rodents. JoVE. (61), e3568(2012).
  10. Schjetnan, A. G. P., Luczak, A. Recording large-scale neuronal ensembles with silicon probes in the anesthetized rat. JoVE. (56), e3282(2011).
  11. Swindale, N. V., Spacek, M. A. Spike sorting for polytrodes: a divide and conquer approach. Frontiers in Systems Neuroscience. 8, 1-21 (2014).
  12. Swindale, N. V., Spacek, M. A. Spike detection methods for polytrodes and high density microelectrode arrays. J. Comput. Neurosci. 38, 249-261 (2015).
  13. Swindale, N. V., Spacek, M. A. Verification of multichannel electrode array integrity by use of cross-channel correlations. J. Neurosci. Meth. 263, 95-102 (2016).
  14. Fukunaga, K., Hostetler, L. D. The estimation of the gradient of a density function, with applications in pattern recognition. IEEE Transactions on Information Theory (IEEE). 21, 32-40 (1975).
  15. Mitelut, C., et al. Standardizing spike sorting: an in vitro, in silico and in vivo study to develop quantitative metrics for sorting extracellularly recorded spiking activity. Soc. Neurosci. Abstr. 598 (10), (2015).
  16. Hazan, L., Zugaro, M., Buzsáki, G. Klusters, NeuroScope, NDManager: A free software suite for neurophysiological data processing and visualization. J. Neurosci. Meth. 155, 207-216 (2006).
  17. Harris, K. D., Henze, D. A., Csicsvari, J., Hirase, H., Buzsáki, G. Accuracy of tetrode spike separation as determined by simultaneous intracellular and extracellular measurements. J. Neurophysiol. 84, 401-414 (2000).
  18. Anastassiou, C. A., Perin, R., Buzsáki, G., Markram, H., Koch, C. Cell-type and activity dependent extracellular correlates of intracellular spiking. J. Neurophysiol. 114, 608-623 (2015).
  19. Wohrer, A., Humphries, M. D., Machens, C. K. Population-wide distributions of neural activity during perceptual decision-making. Prog. Neurobiol. 103, 156-193 (2013).
  20. Mizuseki, K., Buzsáki, G. Preconfigured, skewed distribution of firing rates in the hippocampus and entorhinal cortex. Cell Reports. 4, 1010-1021 (2013).
  21. Schmitzer-Torbert, N., Jackson, J., Henze, D., Harris, K., Redish, A. D. Quantitative measures of cluster quality for use in extracellular recordings. Neuroscience. 131, 1-11 (2005).
  22. Barnett, A. H., Magland, J. F., Greengard, L. F. Validation of neural spike sorting algorithms without ground-truth information. J. Neurosci. Meth. 264, 65-77 (2016).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

SpikeSorterSpike SortingElectrophysiological RecordingsMulti Electrode ArraysEvent DetectionWaveform ClusteringData ExportVoltage FilteringChannel MaskingAutosort Procedure

Related Articles