Skip to content

XSort 0.1.4

Pre-release
Pre-release

Choose a tag to compare

@sruffner sruffner released this 09 Jul 19:32
· 44 commits to master since this release

Version 0.1.4 (02/08/2024)

  • Finished implementation of the Help view, which offers a small user guide for XSort. The guide is divided into
    five chapters. A dropdown combo box selects the chapter displayed in the read-only text browser. The chapter contents
    are maintained in Markdown files in the assets folder.
  • Minor changes to CorrelogramView: Added a horizontal line at zero correlation and a translucent white vertical band
    spanning the time range -1.5 to +1.5 milliseconds in each ACG or CCG plot. A checkbox at the bottom of the view lets
    the user toggle the visibility of the zero correlation lines.
  • The TemplateView now includes a slider to set the voltage range (Y-axis) for the templates, between +/-30 and +/-250
    microvolts. The voltage span is a user preference that is saved at application exit and restored on startup.
  • The ChannelView now includes a slider to set the vertical separation between channel traces, between +/-50 and
    +/-150 microvolts. This parameter is NOT saved as a user preference and defaults to 100 microvolts at startup.
  • Modified how user selects units for display in the neural units table. Clicking on any row in the table selects the
    corresponding unit for display while clearing any previous selection (single-selection behavior). To select multiple
    units for display (up to three), you must hold down the Control key (Command key on MacOS) while clicking on each
    table row to select.
  • Implemented File | Open Recent menu with up to 5 most recently visited working directories.
  • Implemented File | Save menu command. This will save the current list of neural units to a Python pickle file at a
    location specified by the user. The content is a List[Dict[str, Any]], with the following key-value pairs:
    1. "uid": The UID assigned to the unit in XSort (str).
    2. "spikes": A 1D Numpy array holding the unit's spike timestamps in chronological order, in seconds.
    3. "primary": The integer index identifying the primary channel on which the best signal-to-noise ratio was observed
      for the unit.
    4. "snr": The signal-to-noise observed on the unit's primary channel (float).
    5. "template": A 1D Numpy array holding the unit's mean spike waveform as recorded on the primary channel. The
      waveform spans 10-ms and is in microvolts.
  • Updated setup.cfg to use ">=" rather than "==" in the install_requires section. This is needed for Numpy, in
    particular, as pip won't install Numpy <= 1.25 if the Python version is 3.12, as changes made in the 3.12 elease were
    incompatible with Numpy versions prior to 1.26.
  • Introduced support for an alternative working directory configuration. Instead of the Omniplex PL2 file, a flat
    binary file (extensions .bin or .dat) can serve as the analog source file. This file contains the analog channel
    streams as raw 16-bit signed integer samples. The streams may be stored one after the other or interleaved, and the
    raw data may be prefiltered or not. In addition, XSort now handles situations in which the specified working directory
    contains multiple Python pickle files and multiple .pl2/.bin/.dat files. Whenever the identity of the neural unit
    and analog channel data source files is ambiguous, or the analog source requires additional configuration from the
    user, XSort raises a modal dialog to request this information from the user.
  • Note that, if the analog source is a pre-filtered flat binary file, there is no need to generate the individual
    internal analog channel cache files.

Installation Instructions

See README.