flatironinstitute / spikeforest

Spike sorting benchmarking system
Apache License 2.0
23 stars 6 forks source link

GT for each Channel #42

Open JasonLee19015 opened 5 months ago

JasonLee19015 commented 5 months ago

The hybrid_janelia data set contains 16 channels, so the GT is supposed to contain spike timestamp and units for each channel. But when i use the GT = R.get_sorting_true_extractor() GT_data = readmda(GT._kwargs['file_path'])to get the GT, i can't find any information about difference between channels in GT_data. it will be grateful if anyone can help me.

JasonLee19015 commented 5 months ago

the size of GT_data is (3,num_spikes), the first raw is a list of a same number like [0]*num_spikes; the second raw contains timestamps; the third raw is the units of each spike. The channel number of each spike in still unknown

magland commented 5 months ago

Hi @JasonLee19015 Only the spike times are included in the ground truth sorting, not the channel IDs. To get the peak channel, you would need to compute the average waveforms, for example using spikeinterface.

JasonLee19015 commented 5 months ago

Thank you very much for you replay. Do you mean to average the waveforms of 16 channels and then detect spike?

JasonLee19015 commented 5 months ago

Do you mean that you detected and sorted spikes for each channel but put all the timestamp in one list? I think that is a space saveing way . There is no need to know the channel ID for each spike but the unit ID

magland commented 5 months ago

You would compute the average waveform across all channels for each unit. Then, for each unit, you determine which channel has the peak signal for that average waveform. That will be the peak channel for that unit.