Figure 2. An example configuration file. To visualize experimental data with neurotic, datasets must be listed and described within human-readable plain text YAML configuration files. Multiple configurations for the same or different datasets may be listed within one file and are separated into blocks using blank lines and indentation. This example shows one configuration that is similar to that used to create Figures 1, 3. Each set of parameters shown is optional. A, Each configuration is given a unique name, e.g., “feeding experiment.” Details associated with the configuration are indented beneath the name. A brief description of the dataset may be provided. The names and descriptions of datasets are displayed when a YAML file is loaded, giving the user the option to select the dataset to view (Fig. 1B). B, Paths to related files found locally on the computer, e.g., signals and video from a single experiment, may be located within a single directory specified by data_dir (such a file tree structure is convenient but not necessary as neurotic can accept relative or absolute paths). A file containing signal data that is readable by the Python package Neo (Garcia et al., 2014) is specified using data_file. Neo supports many file types (see list: https://neo.readthedocs.io/en/latest/io.html#module-neo.io). Signals are read from the data file, processed according to other, optional configuration settings, and plotted. For example, in this figure, sections D, E, G affect plotting. C, A video file may be associated with the signal data. Synchronization parameters can be given for controlling the video and signal data alignment. For example, in this case, video capture began 2.51 s before signal data acquisition, so −2.51 is provided for video_offset to shift the video start time. Parameters for correcting for frame rate inaccuracies or clipping the video are also available. D, All signals or a subset of signals will be plotted according to the parameters given under plots, which control plot range and labeling (Fig. 1A, top left panel). E, Signals may be filtered before plotting. F, An optional epoch encoder GUI panel (Fig. 1D) creates annotations that may be saved to a spreadsheet (CSV) file. The epoch encoder allows user-defined labels to be attached to time periods. G, Peaks may be identified in the signals using amplitude thresholds. Each amplitude discriminator is applied to the specified signal channel and may be constrained to periods marked with a particular epoch label. This creates one spike train for each amplitude discriminator, plotted both as points on the signals and as a raster plot (Fig. 1C). See Figure 3 for algorithm details. H, Bursts of activity in spike trains may be detected using initiation and termination firing frequencies.