EEG channels with low-cost PiEEG device

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • spike_sorting

    Python implementation of signal processing techniques and K-means clustering to sort spikes.

  • It's worth noting that if each electrode is thin enough to be placed in extracellular medium getting signals from several neurons around it, you can do some fairly simple signal processing to separate the signals of individual neurons. This is called spike sorting [0] (a "spike" is an impulse transmitted by a single neuron).

    So, continuing with the microphone analogy, with the right setup, recording a few voices is almost as good as recording each voice separately. It's not perfect because sometimes people talk over each other, and people distant from the mic may have muffed voices, and stuff like that. But generally speaking, we can roughly understand each individual people in a recording, because each people speak in a different way (and just like that, neurons spike in a different way).

    Here's some academic code that does this [1] (it has accompanying articles [2] [3]) (Random article found in Google, no affiliation).

    The first thing it does is removing the low frequency component of the signal (the LFP [4], that doesn't originate from any specific neuron), then it stores an individual spike waveform as a time series (a vector of N dimensions, where each dimension is the value of the signal at a moment in time), and then just does some k-means clustering to separate spikes in clusters, then assign each cluster to an individual neuron (by hypothesizing that each neuron likes to spike in a specific way which depends on its characteristics). This is all very vanilla / undergraduate stuff, and it's been done for more than 10 years [5] or perhaps even 20 years or more.

    Trouble is, with EEG all you have is essentially an average of the LFP over a large area; you don't get single-neuron spikes. So EEG fundamentally can't listen to each neuron individually. However it isn't right to simply throw away LFP information, and you can still do stuff with it.

    [0] http://www.scholarpedia.org/article/Spike_sorting

    [1] https://github.com/akcarsten/spike_sorting

    [2] https://towardsdatascience.com/using-signal-processing-to-ex...

    [3] https://towardsdatascience.com/whos-talking-using-k-means-cl...

    [4] https://en.wikipedia.org/wiki/Local_field_potential

    [5] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3657693/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Quick tip: Write numpy arrays directly to the SingleStore VECTOR data type

    1 project | dev.to | 1 May 2024
  • Kolmogorov-Arnold Networks

    3 projects | news.ycombinator.com | 30 Apr 2024
  • Navigating the Risky Waters of Loan Defaults: A Predictive Beacon

    1 project | dev.to | 30 Apr 2024
  • Alternative Chunking Methods

    1 project | news.ycombinator.com | 30 Apr 2024
  • MinSH: Near-linear time global string alignment in a few lines of Python

    1 project | news.ycombinator.com | 29 Apr 2024