How are the different electrophysiological features (used in the clustering analysis) extracted and arranged for a given cell?

Hi everyone,

I am trying to reproduce the electrophysiological clustering you did in Gouwens, et al 2019, on our database of electrophysiological recordings, starting from the raw stimulus-membrane voltage traces, and I have some questions about the features and how they are extracted and organized in order to be used in the clustering.
Here are my questions:

  • About the Action potential waveform (and its derivative): For a given cell, does the waveform come from the first sweep with at least 5 AP, or is it averaged over all sweeps with AP?
  • About the Instantaneous Firing Rate (and all the other features that are ‘Binned , using steps from rheobase to rheobase+100pA’ ) : The feature corresponds to an array of binned-value, but how are they arranged between the different sweeps? Are they concatenated to each other or averaged across all sweeps?
  • Also, am I right to suppose that each feature is stored as an array, and that all these arrays are stored in a json file for a specific cell, that will then be used in the clustering analysis?

Thank you for any help you can give me,

Best wishes,


In Gouwens et al. 2019, we use three action potential waveforms - one from the short square stimulus (3 ms current step), one from the long square stimulus (1 s current step), and one from the ramp stimulus. For the long square action potential, we use the first action potential elicited by the rheobase sweep (so there is no minimum number of APs required), and we don’t average it.

Those binned long-square features from sweeps with different amplitudes are concatenated together, not averaged. You can see an example of the concatenated, binned AP threshold values in Figure 2c in Gouwens et al. 2019.

The features are stored as cell by feature 2D arrays and saved as either a set of NumPy files (one for each array) or a single HDF5 file (now the default, with different datasets in the file containing the different arrays) by the IPFX package.