Something that came up at the Edinburgh workshop which caught my interest – the possibility of creating a simulated ground truth simulation on the basis of a real recording. That is, rather than trying to set simulation parameters in a way that will match closely a real experiment, perhaps we can just input the real experiment.
One possibility for how this could be done:
Step 1. Start with a real recording as input. Subtract off large spikes in the input recording leaving background signal only (noise and signal from distant neurons). One way to do this de-spiking is to detect spikes and for each subtract off something like the average of K nearest neighbor spike waveforms.
Step 2. Insert spikes at random times (hybrid approach). One could use avg waveforms obtained in step 1… but we’d need to be very careful not to use a particular spike sorting approach here. Something more primitive. Because it’s important not to make the simulation biased toward a particular sorting method.
The second step would require specifying things like number of true units and firing rates.
In the end I’d love to just do something like
recording_sim, sorting_true_sim = create_synth_recording_based_on(real_recording, ... some_params)
(utilizing SpikeExtractors of course)