Technische Artikel

Analysieren umfangreicher Daten von neuronalen Sonden mit MATLAB und Beschleunigung durch NVIDIA-GPUs

Von Vijay Iyer and Andy Thé, MathWorks


Jahrzehntelang konnten Wissenschaftler, die die Hirnaktivität auf der Ebene einzelner Gehirnzellen untersuchten, nur Daten von wenigen Dutzend Neuronen gleichzeitig aufzeichnen. Da ein einziger Funktionsbereich des Gehirns im Allgemeinen über 10.000 Neuronen umfasst, boten diese Aufzeichnungen nur einen winzigen Einblick in die Aktivitäten in lokalen neuronalen Systemen.

Neuropixels-Messsonden (Abbildung 1) sind eine neue Kategorie von Geräten, die auf der  Halbleitertechnologien basieren und  mit denen das anders wird: Mit diesen Geräten können Neurowissenschaftler Aktivitäten von Hunderten einzelner Neuronen gleichzeitig aufzeichnen. Diese bahnbrechenden Messsonden wurden in einer Zusammenarbeit zwischen dem Howard Hughes Medical Institute, dem Allen Institute of Brain Science, der Gatsby Charitable Foundation und dem Wellcome Trust entwickelt. Erste Anwender dieser neuen Silizium-Messsonden führen Pilotexperimente durch, mit denen sie neuronale Netze besser abbilden möchten. Dabei erhalten sie erste Einblicke in eine neue Herausforderung, vor der Neurowissenschaftler bald stehen werden: die Verwaltung von Datenmengen, die fast 100-mal so groß sind wie bisher – in einer Größenordnung von 100 Gigabyte für ein einziges Experiment.

Abbildung 1: Die neurologische Messsonde vom Typ Neuropixels aus Silizium mit fast 1000 Aufzeichnungspunkten. Bild mit freundlicher Genehmigung von M. Barbic, HHMI Janelia.

Abbildung 1: Die neurologische Messsonde vom Typ Neuropixels aus Silizium mit fast 1000 Aufzeichnungspunkten. Bild mit freundlicher Genehmigung von M. Barbic, HHMI Janelia.

Einer der frühen Anwender, der Neurowissenschaftler Dr. Marius Pachitariu, erkannte, dass für den Umgang mit diesen großen Datenmengen zwei wichtige Fortschritte notwendig waren: eine stärkere Automatisierung und die Beschleunigung mit GPUs. Dr. Pachitariu und seine Kollegen am University College London (UCL) haben daraufhin Kilosort entwickelt, eine auf MATLAB® basierende Open-Source-Anwendung für die Implementierung halbautomatisierter, durch NVIDIA®-GPUs beschleunigter Datenverarbeitungs-Pipelines.

Analysen werden innerhalb von Stunden statt Wochen ausgewertet

Mit MATLAB entwickelte Dr. Pachitariu einen neuen Algorithmus, der die Verarbeitung gegenüber früheren Ansätzen um einen Faktor 25 beschleunigte. Dann setzte er handelsübliche NVIDIA-GPUs ein, wie die GeForce GTX 1080 Ti, um wichtige Schritte zu beschleunigen, wie z. B. die Signalvorverarbeitung und die Merkmalsextraktion. Auf einer einzelnen Workstation erreichte er mithilfe der GPU eine weitere Beschleunigung um etwa einen Faktor 40. Insgesamt verringerte sein Prototyp die Verarbeitungszeit für 50 GB (30 Minuten aufgezeichneter Daten von Silizium-Messsonden) von zwei Wochen auf nur 20 Minuten. Dank dieser höheren Analysegeschwindigkeit konnten Forscher innerhalb von Stunden Experimente durchführen, Ergebnisse analysieren, Parameter anpassen, Experimente erneut durchführen und erneut Ergebnisse erzeugen, statt zwischen den einzelnen Iterationen wochenlang warten zu müssen.

Erkennen neuronaler Aktivität

Wenn ein Neuron einen Impuls sendet, wird die entstehende Veränderung eines elektrischen Potenzials als Aktionspotenzial oder Nervenimpuls (Spike) bezeichnet. Dabei handelt es sich um ein kurzes Ereignis, das ungefähr eine Millisekunde dauert. Dieses Aktionspotenzial breitet sich nicht nur vorwärts an andere Neuronen aus, sondern auch rückwärts durch die eingehenden Verästelungen des Neurons (den Dendritenbaum). Daher erzeugen Nervenimpulse, die aus den einzelnen Neuronen stammen, ein jeweils einzigartiges Muster aus Ablenkungen elektrischer Felder, die sich entlang der unterschiedlichen Kanäle der elektrischen Messsonde ausbreiten (Abbildung 2). Durch das Spike Sorting – eine Untersuchung der Nervenimpulse, bei der die Dauer, Amplitude und Form der Signale an jedem Kanal der elektrischen Messsonde betrachtet werden – können Neurowissenschaftler die elektrische Signatur von Nervenimpulsen identifizieren, die von einzelnen Neuronen ausgehen. Daraus können sie die Zeitpunkte dieser Impulse, sowie deren Ursprung ableiten und damit das Feuerverhalten einzelner bzw. weniger Neurone ermitteln.

Abbildung 2: Der Nervenimpuls von einem einzelnen Neuron, aufgezeichnet über 11 unterschiedliche Kanäle.

Abbildung 2: Der Nervenimpuls von einem einzelnen Neuron, aufgezeichnet über 11 unterschiedliche Kanäle.

Vor der Einführung der Neuropixels-Messsonden verwendeten Forscher, die Nervenimpulse von Hunderten von Neuronen aufzeichnen wollten, Techniken der optischen Bildgebung. Diese Techniken melden Nervenimpulse nur indirekt, indem sie eine Erhöhung der Kalziumionen-Konzentration messen, die auftritt, wenn Neuronen feuern. Diese optischen Techniken haben wesentliche Einschränkungen: Sie können weder tiefe Bereiche des Gehirns leicht erreichen noch der zeitlichen Präzision der Aufzeichnungen neurologischer Messsonden gleichkommen, die im Millisekundenbereich liegt. Optische Ansätze bieten immer noch die Aufzeichnungen mit der höchsten Dichte von der größten Anzahl Neuronen (über 1000), aber die Neuropixels-Messsonde kommen dem sehr nahe, indem sie fast 1000 Aufzeichnungspunkte im Abstand von 20 µm bieten.

Warum Geschwindigkeit so wichtig ist

Als die Anzahl der Aufzeichnungspunkte dank der Neuropixels-Messsonde von einigen wenigen auf Hunderte anstieg, zeigte sich mehr und mehr, dass manuelle Methoden nicht länger praktikabel sind. Dr. Pachitariu und sein Team benötigten eine effektivere Spike-Sorting-Methode, die ein Clustering für Tausende von Daten durchführen konnte. 

Er begann, eine neue Methode zu entwickeln, um diese Beschleunigung zu erreichen. Dabei verfolgte er drei Ideen: die Entwicklung von Algorithmen, die NVIDIA-GPUs nutzten, die Vereinfachung von Algorithmen, um mögliche systematische Fehler zu vermeiden, und die Minimierung der Anzahl von Entwurfsiterationen. Das Team konnte mehrere GPU-Operationen direkt in MATLAB implementieren. Dazu verwendete es gpuArray, ein High-Level-Konstrukt in der Parallel Computing Toolbox™. Kilosort erforderte zusätzliche benutzerdefinierte GPU-Operationen. Diese implementierten die Forscher mithilfe benutzerdefinierter CUDA-Kernels und riefen sie direkt aus MATLAB auf.

Beschleunigung des Spike Sorting um fast einen Faktor 1000

Kilosort wurde entwickelt, um elektrophysiologische Aufzeichnungen zu verarbeiten, die in vivo von Hunderten von Elektrodenkanälen erfasst werden, meist mit einer Abtastrate von 25 kHz. Ein einzelnes Aktionspotenzial (Nervenimpuls) zeigt sich als gleichzeitige Signale auf mehreren Elektroden. Eine Möglichkeit, diese Daten zu visualisieren, besteht darin, die Kanäle im Zeitverlauf darzustellen. Dabei stellt jede Ablenkung im Diagramm Signalspitzen dar, die aus dem Aktionspotenzial eines Neurons entstehen (Abbildung 3).

Abbildung 3: Darstellung der Kanäle im Zeitverlauf.

Abbildung 3: Darstellung der Kanäle im Zeitverlauf.

Kilosort führt eine Vorverarbeitung der aufgezeichneten Daten mithilfe eines Hochpass-Butterworth-Filters durch. Danach wird ein iterativer Clustering-Algorithmus angewendet, der wiederholt einen zweischrittigen Prozess durchführt, und zwar die Identifizierung eines Musters von Signalformen gefolgt von der Suche nach Instanzen dieser Muster in den Rohdaten (Abbildung 4). Der zweite Teil der Schleife – in dem ermittelt wird, zu welchen Zeitpunkten jedes identifizierbare Signalmuster in den Daten auftritt – wird auf einer NVIDIA-GPU mit 3584 Kernen durchgeführt. Dabei werden benutzerdefinierte CUDA-Kernels verwendet, die in MATLAB integriert sind. Der Algorithmus optimiert seine Vorlagen so lange, bis die ursprünglich aufgezeichnete Datenmenge genau rekonstruiert werden kann, indem diese einzelnen Signalmuster zu den erkannten Nervenimpuls-Zeitpunkten zusammengefügt werden. Mit Kilosort kann der Anwender falsch positive Ergebnisse entfernen.

Abbildung 4: Darstellungen von 18 einzelnen Nervenimpuls-Formen, die von 11 unterschiedlichen Kanälen erfasst werden.

Abbildung 4: Darstellungen von 18 einzelnen Nervenimpuls-Formen, die von 11 unterschiedlichen Kanälen erfasst werden.

Das Team benötigte nur zwei Wochen, um den Kernalgorithmus für Kilosort in MATLAB zu entwickeln. Als es feststellte, dass der Algorithmus Ergebnisse fast 1000-mal schneller erzeugte als bisherige Spike-Sorting-Software und dabei die gleiche Genauigkeit erreichte, investierte es noch mehrere Wochen, um den Algorithmus anhand unterschiedlicher Datenmengen zu validieren und ihn für andere Forscher benutzerfreundlicher zu gestalten.

Zukünftige Entwicklungen

Neuropixels-Messsonden wurden vor der Jahreskonferenz 2018 der Society for Neuroscience öffentlich vorgestellt und schon jetzt übersteigt die Nachfrage durch Forscher das Angebot. Neurowissenschaftler weltweit werden in Kürze beginnen, die Funktion vieler unterschiedlicher neuronaler Netze mithilfe elektrophysiologischer Messungen in diesem nie zuvor möglichen Umfang abzubilden. Um ihre umfangreichen Datenmengen zu analysieren, können sie Kilosort nutzen. 

Dr. Pachitariu und seine Mitarbeiter arbeiten zurzeit an einem Algorithmus für eine automatisierte Driftkorrektur. Diese soll die Genauigkeit erhöhen, wenn der Proband einer Tätigkeit wie etwa dem Laufen nachgeht, bei der sich die Messsonde meist bewegt. Auch dieser neue Algorithmus ist GPU-beschleunigt. Er löst sequenziell Tausende kleiner Clustering-Probleme für jeden zwei-sekündigen Datenbatch, um zu ermitteln, in welcher Tiefe der Batch aufgezeichnet wurde. Eine genaue Driftkorrektur ist der nächste wesentliche Schritt in Richtung eines vollständig automatisierten Spike Sortings. Sie wird in die bevorstehende Kilosort2-Software aufgenommen.

Veröffentlicht 2018

Artikel für verwandte Branchen anzeigen