Customizing layout and settings

You can create your own custom layout by specifying which views you’d like to see, and where they go. The basic window layout supports eight “zones”, which are laid out as follows:

+---------------+--------------+
| zone1   zone2 | zone3  zone4 |
+               +              +
| zone5   zone6 | zone7  zone8 |
+---------------+--------------+

If a zone has free space below it or to the right of it, it will try to use it. Stretching downwards takes precedence over stretching rightwards. E.g. suppose your layout is only non-empty in zones 1, 4, 5, 6 and 7:

+---------------+--------------+
| zone1         |        zone4 |
+               +              +
| zone5   zone6 | zone7        |
+---------------+--------------+

Then zone1 will stretch right-wards to make a two-zone view. Zone4 will stretch downwards to make a long two-zone view.

To specify your own layout, put the specification in a .json file. This should be a list of zones, and which views should appear in which zones. An example:

my_layout.json

{
    "zone1": ["unitlist", "spikelist"],
    "zone2": ["spikeamplitude"],
    "zone3": ["waveform", "waveformheatmap"],
    "zone4": ["similarity"],
    "zone5": ["spikedepth"],
    "zone6": [],
    "zone7": [],
    "zone8": ["correlogram"]
}

When you open spikeinterface-gui, you can then point to the my_layout.json using the --layout_file flag:

sigui --layout_file=path/to/my_layout.json path/to/sorting_analyzer

Find a list of available views in this file.

You can also edit the initial settings for each view. There are two ways to do this. First, you can open the gui, edit the settings of any or all views, then press the “Save as default settings” button in the mainsettings view. This will save a settings.json file in your spikeinterface-gui config (saved in ~/.config/spikeinterface_gui/). The saved settings will automatically load next time you start the gui.

If you want more direct control, you can pass your own setting json file to the settings-file flag (or by passing a user_settings dict to run_mainwindow). The settings file should contain a settings dict for each view. The view names are the same as used in the layout file, and each setting name can be seen in the settings tab of each view. Below is an example settings file:

my_settings.json

{
    "probe": {
        "show_channel_id": true
    },
    "waveform": {
        "overlap": false,
        "plot_std": false
    },
    "spikeamplitude": {
        "max_spikes_per_unit": 1000,
        "alpha": 0.2
    }
}

You can then use this file by running e.g.

sigui --settings_file=path/to/my_settings.json path/to/sorting_analyzer