README.md 4.8 KB

NatComm2020

Graphene active sensor arrays for long-term and wireless mapping of wide frequency band epicortical brain activity

Abstract: Graphene active sensors have demonstrated promising capabilities for the detection of electrophysiological signals in the brain. Their functional properties, together with their flexibility as well as their expected stability and biocompatibility have raised them as a promising building block for large-scale sensing neural interfaces. However, in order to provide reliable tools for neuroscience and biomedical engineering applications, the maturity of this technology must be thoroughly studied. Here, we evaluate the performance of 64-channel graphene sensor arrays in terms of homogeneity, sensitivity and stability using a wireless, quasi-commercial headstage and demonstrate the biocompatibility of epicortical graphene chronic implants. Furthermore, to illustrate the potential of the technology to detect cortical signals from infra-slow to high-gamma frequency bands, we perform proof-of-concept long-term wireless recording in a freely behaving rodent. Our work demonstrates the maturity of the graphene-based technology, which represents a promising candidate for chronic, wide frequency band neural sensing interfaces.

The described code is written in Python 2.7 and Matlab 2016b. The Python code has been tested on Windows 10 using Python environment Spyder 3.3.3. Loading of the large data sets included requires the use of a large RAM (tested with 32GB RAM, although 8GB should be sufficient to test all scripts except "CalibrationRec2_ExportDatFile.py").

After installing the Python environment, install the required packages using "pip install" command followed by the package name in the system console. Required packages are:

Two separate folders contain multiple scripts; for the analysis of in-vitro characterizations (folder "in-vitro") and for the analysis of signals in-vivo (folder "in-vivo") using probe labeled as B12784O18-T3.

For the in-vitro data, the demo includes a python dictionary exported as a .h5 file (named "GmIrmsUrmsIds10Probe_2.h5"), which includes the summary data from the characterization of all ECoG arrays. The script which generates and exports this dictionary has also been included ("CalcGM_Noise_LMU_multipleFiles.py"). The script "PlotStatistics.py" produces the graphs in Fig.2 of the present article. A simplified version of "CalcGM_Noise_LMU_multipleFiles.py" named "CalcGM_Noise_LMU.py", can be found which does the same calculations for only 1 characterization. This script has been used to generate the Urms maps presented in Fig. 2. The bandwidth of noise integration was changed to produce the different graphs for (1-10 Hz and 20-200 Hz). A 1mVpk 10 Hz signal was applied at the gate in order to characterize the transconductance (Gm) of the g-SGFETs. In order to calculate the Urms map in the 0.05-0.5Hz band shown in Fig.2, a long recording at the optimal bias was taken, which is analyzed by the script "LongRec.py" to produce the plots in Fig. 2. Expect a runing time in the order of 10 minutes.

For the in-vivo device characterization. Script "LongitudinalAssessment.py" in folder "in-vivo" loads and plots the I-V curves and Gm/Irms/Urms evolution shown in Fig.3. An example of the bipolar stimulation response is provided by the script "PlotBode.py" in the "Day1-2/Analysis scripts" folder, which takes the precomputed data from a dictionary containing the frequency response from all g-SGFETs. This precomputed data can be found in "Day1-2/Analyzed data" folder. The precomputed PSD data can be found in the folder "in-vivo/PSD-charact". The computation of the PSD and Bode response from the raw data is done by the script "Overview_BodeInVivo_AllChannels_current_MAP.py" which can also be found in "Day1-2/Analysis scripts" folder.

An example of raw drain-to-source signal in Amperes is included in "Raw Data" folder. The calibration scripts can be found in the "Day1-2/calibration scripts" folder. "CalcUd0.py" compares IV curves extracted before implantation and after implantation in order to correct the CNP drifts and compute a calibration file which is saved as python a dictionary in "Day1-2/Cal Data" folder. The electrophysiological signals are then calibrated using this file. Run "CalibrationRec2_ExportDatFile.py" to load, calibrate and export the signals to .dat format (this computation is very demanding in terms of RAM >16GB and can take >20min). Finally, "PhaseAmplitude_Rec2.py" in "Day1-2/analysis scripts" computes the phase-amplitude coupling for two DC channels (plot in Fig.3). This scripts takes few minutes to compute the analysis.