Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Proposal: `ConcatenateSortingAnalyzer`

Aperta
#4,878 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
data

Direzione di ricerca

Start by reading the existing SortingAnalyzer and analyzer extension APIs to understand how extensions expose data. Then identify how child analyzers, matching unit maps, and shared recording channels should be represented; the proposal does not name specific files or tests. Done means a read-only concatenated analyzer can expose compatible extension data across its constituent analyzers and save a minimal JSON representation.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

chronic discussion

For very long recordings, or recordings made at different times over many days, you might not want a single SortingAnalyzer. For example, it might be helpful to consider metrics as time varying measures of unit quality: if your firing rate is consistent for 3 days, then drops significantly, this might be a sign that your recoridng device can no longer record the unit. More practically, on many systems it is difficult to parallelize a post-processing computation on a 300 hour analyzer. Whereas making 300 one hour computations might be much easier. For unit matching, you almost certaintly want to sort and postprocess each session seperately, but might want a framework to compare sortings.

After discussions with Alessio, I propose to add a ConcatenateSortingAnalyzer class along these lines. Some of these we discussed, some are mine:

  • ConcatenateSortingAnalyzer does not inherit from SortingAnalyzer (there are too many methods we don't need), but mimics the extension structure.
  • ConcatenateAnalyzerExtensions inherits from AnalyzerExtenions
  • We do not touch the SortingAnalyzer class
  • It is primarily a data reader of many analyzers => you cannot compute/modify the constituent analyzers
  • The input is a dict(?) of analyzers
  • Demand that recording channels are the same
  • Demand that parameters (e.g. peak_sign), extensions and extension parameters are the same. Many properties are then just equal to the property of any child analyzer.
  • Keep complexity of data wrangling in the get_data method of each extension, which can now accept an analyzer_index (or analyzer_key) argument. Keep in mind that in the future, we might want to slice the concatenated analyzers.
  • The sparsity of the concatenated analyzer's units is the intersection of sparsities of each individual unit
  • The user can provide maps to match units. Keep in mind that in the future, we might want to algoithmically generate these.
  • It's ok that main_channel_indices can vary between analyzers. These are used primarily for computation of the sparsity and computation of metrics.
  • save just saves a minimal json representation of the underlying analyzers

What do people think? Thought/suggestions welcome!

Lingua principale
Python
Stelle
866
Fork
285
Merge medio
2g 13h
PR unite (30g)
49

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di SpikeInterface/spikeinterface

Tutte le issue di SpikeInterface/spikeinterface

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.