------- Version ------- SpikeGLX Release v20200309-phase20. Imec API at v2.11. Current release highlights -------------------------- - Multidisk Run Splitting: You can now opt to distribute your run data across several disks. That is, you can use one or several data directories. Critical release notes ---------------------- - This is a beta testing release supporting Neuropixels 2.0 (often shortened to NP 20). - Using SpikeGLX will be very familiar if you used NP 1.0 (any prior version). The main difference here is that each HS has two probe docks. Dock 1 is on the side of the HS with two large capacitors and the Omnetics connector. Dock 2 is on the label side (flatter contour). You can use either dock or both. Be aware that the module (BS card) is the same hardware but needs to have been programmed with 2.0 firmware. - In future, one copy of SpikeGLX will support both NP 20 and 3B2 parts together, but that is not the case yet. For now, this version of SpikeGLX is NP 20 ONLY. It can not run 3B2 hardware at all. - Previously we had said it was alright to run NP 20 and NP 1.0 copies of SpikeGLX concurrently. However, we know that 1.0 interferes with data from 2.0 when runs are stopped or started and we don't know if there is interference at other times, so we advise against this now. - The Imec API is incomplete in several respects, but is functional enough to evaluate probe performance issues. Of special note: - The BIST (probe health tests) do not function yet. - The HST (HS health tests) do not function yet. - As always, you should calibrate your HS sample clock rates. These are stored in SpikeGLX using the HS serial number as the key because this a measurement about that particular part. However, imec did not include an EEPROM chip on these HS so the HS does not know its own serial number. SpikeGLX will require you to type the serial number into a dialog when you click Detect. You need to have read that from the label on the HS. This will be corrected by imec later. - There are single-shank (SS) and multishank (4-shank) (MS) probes in NP 20. Each has its own probe type (SS=21, MS=24) recorded in the metadata. Each gets its own IMRO (imec readout) table format. - The IMRO editor dialogs will eventually get a good tool set for selecting which electrodes to connect and which references to use. However, for now we load preset table files. - A set of useful table files is included, as well as MATLAB code to let you make others. This is in folder 'IMRO_Tables' at the top level of the release. If You've Already Used Imec Probes... ------------------------------------- This release supports Imec Neuropix phase20 probes (and NOT phase3A or phase3B probes). The look and feel of the software and hardware for all phases are quite similar, making it all the more important to recognize that there are key differences: - Please read the Imec online manual: . - DO NOT INTERMIX PARTS BETWEEN PHASE3A, PHASE3B1, PHASE3B2, PHASE20. The probes and HS are different between 20 and 3B. << BEWARE!! >> The ZIF connector on the 3B and 20 headstage (HS) works oppositely from 3A: - In 3A you gently closed the black ZIF tab by pressing down toward the probe. - In 3B and 20, insert the probe and press the black tab back toward the headstage. [ Calibration Files ] Unlike phase3A probes, the phase3B probes do not contain ADC and gain calibration tables in their EEPROM chips. Rather, for each probe, you need to find its matching folder of calibration data an copy it into your 'SpikeGLX/_Calibration' folder. A calibration folder is named with the serial number of its probe (as printed on the probe flex cable). These folders are available from whoever shipped you the probes. ------------------------- Deployment / Installation ------------------------- Basically, download a zip file and extract the whole folder 'Release_vXXX' to the C:\ drive. However, we recommend that you manually create a folder on the C:\ drive -- 'C:\SpikeGLX\' as a master SpikeGLX folder that will hold one or more downloaded software versions. As many versions as desired can live side by side in the folder. Manually create a desktop shortcut pointing just to the version you currently like (usually the latest). The rationale for this is you can readily revert to an older version (just by changing the shortcut) should the latest one have a bug or an incompatibility with your current experiment setup. So, your drive should resemble: C:\SpikeGLX Release_v20200309-phase20 Release_v20191001-phase20 Release_v20190413-phase3B1 ... --------------- Getting Started --------------- You are urged to read the included 'UserManual.html' to familiarize yourself with some important concepts. The other '.html' documents at the top level of the Release folder add specialized discussion. How-To videos are coming to my downloads page: . ----------------- Launching the App ----------------- Double-click the SpikeGLX.exe (or SpikeGLX_NISIM.exe) icon... Your package includes two application versions: - SpikeGLX.exe: This is the fully functional version. It can acquire data from imec and from nidq hardware. However, you have to install National Instruments NI-DAQmx driver software to run it. Otherwise, when you try to launch you'll get messages about one or more missing niXXX.dll components. This version is appropriate for the lab computer where you run experiments. - SpikeGLX_NISIM.exe: This is the 'simulated nidq' version. It can acquire real imec data, but it cannot talk to nidq hardware (nor is NI software needed). Rather, if you enable nidq data acquisition (using the Devices Tab of the Config dialog) it will generate simple sine waves on all of the analog channels in the nidq stream. Use this version if you only care about imec probes. Also use this version to open and review existing runs on a laptop where you likely don't have any hardware. ------- License ------- The Janelia Research Campus Software Copyright 1.2 Copyright (c) 2020, Howard Hughes Medical Institute, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Howard Hughes Medical Institute nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; REASONABLE ROYALTIES; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. QLed components are subject to GNU Library GPL v2.0 terms, which are described here: --------------- Release History --------------- Changes in 20200309-phase20 --------------------------- + Add multidisk run splitting. + Can now select/explore disk top level directory. + MATLAB better handling of Windows path strings. Changes in 20191001-phase20 --------------------------- + "Sample Rates From Run" now updates LF. + CAR filters applied whole-probe, not shank-by-shank. + Fix NI DI and PFI channel counting. + Fix ShankViewer crash if shift or right-click. + Fix linking of exported files in FileViewer. + Remove SY entry from exported snsShankMap. + Graphs Window default now user order. + Improve FileViewer slider tracking. + Improve short timespan graphing. Changes in 20190919-phase20 --------------------------- + API v2.11. + Fix SYNC, now fully functional. + Fix 4-shank tip and internal refs. + Fix calibration run file naming. + Fix select NI for sync if not enabled. + Fix ShankView LFP option. + Trigger context margin now half stream length. Changes in 20190911-phase20 --------------------------- + Invert sign of AP band data. + Fix 'AP + LF' bandpass filter in Graphs window. Changes in 20190724-phase20 --------------------------- + Initial NP 2.0. + BIST tests not implemented. + HST tests not implemented. + HS has no EEPROM to remember its serial number. + IMRO editors load externally made maps. + Right-click-in-graph config editing has 60s delay. + Module SYNC connector is INPUT ONLY. Changes in 20190413-phase3B2 ---------------------------- + Better parsing of file paths. + TTL settings now remember stream correctly. + Fix MATLAB SDK: DemoReadSGLXData.m/ChanGainsIM(). + IMRO: Select block anywhere on shank. + NI supports 653X DIO devices. + Time trigger: negative L overlaps files. + Headstage tester (HST) now supported. Changes in 20190327-phase3B2 ---------------------------- + Fix parsing of filenames with dots. + Fix MATLAB GetImProbeSN command. + Add MATLAB GetImProbeCount command. + Add MATLAB GetImVoltageRange command. + Add MATLAB MapSample command. + Add MATLAB file-writing beeps. + NI Clock Source dialog gets settle time variable. Changes in 20190305-phase3B2 ---------------------------- + Fix negative g-index from Graphs window. + Fix max rate query for some NI devices. + Support up to 32 NI multifunction DI channels. + Time trigger realigns each file. + Optional confirmation on Disable Recording. + Right-click/Refresh Graphs command. + Add MATLAB SetNextFileName command. + Imec SMA always an input unless specifically set as sync output. Changes in 20190214-phase3B2 ---------------------------- + Cleaner stops when disabling recording. + Optional LF-AP save-channel pairing. + Always save sync channel. + Smarter continuation run naming. + Folder per run. + Folder per probe option. Changes in 20180829-phase3B1 ---------------------------- + Fix TTL trigger bug. + NI works with PXI, M, X devices. + Updates to MATLAB API. + Calibrated sample rates stored in _Calibration. + ImecProbeData folder renamed to _Calibration. + configs folder renamed to _Configs. + More accurate disk speed estimates. + Offline binMax stepping is selectable. + More efficient data acquisition. + Log reports caller CPU. + Better show/hide window behavior. + Fix typos in documentation. + Merge practice with 3B2 version. Changes in 20180715-phase3B1 ---------------------------- + Introduce imec probe cal policy. + Fix test for existing run dir. + Fix test for existing run name. + Name NI devices anything you want. + Add MATLAB 'connectionClosed' warningid. + Add MATLAB query for imec probe SN/type. Changes in 20180515-phase3B1 ---------------------------- + Fix FileViewer imec.lf crash. Changes in 20180415-phase3B1 ---------------------------- + Graph Window stream selectors. + Fix FileViewer filter. + Gate/Trigger server gets enable checkbox. + Brighter sweep cursor. + More accurate disk space calculator. + Update Qled components. + Update license notices. Changes in 20180325-phase3B1 ---------------------------- + Fix file writing when gate auto-enabled at run start. + Fix innacurate Acquisition clock. + Fix imro per-channel AP filter (flip sense). + Fix imro gain 3000 setting. + Fix MATLAB SetParams, StartRun, GetRunName. + Fix MATLAB connection timeouts. + Improve graph filters. + FileViewer gets right-click shankMap editing. + Steadier view when changing Graphs:chans_per_page. + Enable Recording button shown by default. Changes in 20180316-phase3B1 ---------------------------- + Fix problem triggering on imec without nidq. + Change imec yielding and error 15 handling. Changes in 20170903-phase3B1 ---------------------------- + FVW fix ~TRG label. + FVW prettier graph resizing. + FVW selected span readout. + Graph labels easier to read. + Audio fix scaling bug. + Audio fix freezing bug. + Improve Par2 Cancel operation. + Config dialog checks ColorTTL settings. + Data fetching more efficient. + Enhanced error handling and logging. + New stream synchronization features. Changes in 20170901-phase3A --------------------------- + Fix Imec FIFO queue filling problem. + Improve nidq dual-device settings logic. Changes in 20170814 ------------------- + Fix new bug configuring only nidq stream. Changes in 20170808 ------------------- + Fix bug in TTL trigger. + Begin hidden multistream work. Changes in 20170724 ------------------- + Improve look and abort function of run startup dialog. + Fix bug in Timmed trigger when gate is closed-reopened. + Fix bug setting audio hipass filter from MATLAB. + Add MATLAB SetMetaData function. Changes in 20170501 ------------------- + Audio output for either stream. + Smoother quitting of runs upon Imec errors. + Menu items to Explore run dir, app dir. + Force gets 'Explore ImecProbeData' button. + Force '11 -> 9' button sets probe option. + FileViewer gets channel submenus. + Add MATLAB GettingStarted.txt. + Improve 'Metadata.html' discussion. Changes in 20170315 ------------------- + Fix FileViewer bug drawing nidq aux channels. + Current file labels added to Graphs window. + Better graph label legibility. + Better BinMax (spike drawing) signal-to-noise. + Include 'Metadata.html' explaining tags. + Include MATLAB code for parsing output files. + Remember screen layout. Changes in 20161201 ------------------- + Prettier dialogs that resize: + Config, IM-Force, IMROTable, ShankMaps, ChanMaps, + CmdServer, RemoteServer, Help, + AO, FVWOptions, BIST, PAR2. + Add shank viewer help text. + Graphs get save and AO indicators. + Right-click graphs to edit sort order. + Right-click graphs to edit saved channels. + Right-click graphs to colorize TTL events. + Sort graphs along shank: forward or reverse order. + User notes field on Config::Save tab. + User notes in metadata and FileViewer. + FileViewer Zoom in/out key commands. + FileViewer Zoom by ctrl-click & drag. + FileViewer Set Export Range now shift-click & drag. + FileViewer gets option to manually update graphs. + Extend TTL triggering to imec and nidq digital lines. + Improved graph time axis accuracy. Changes in 20161101 ------------------- + Increase FVW YScale to 999. + Gray config items if stream disabled. + Improve ShankMap editors. + Add ShankMap viewers. Changes in 20160806 ------------------- + Fix enabled state of "Edit On/Off" R-click item. + Fix filters to obey order: Flt:::BinMax. Changes in 20160805 ------------------- + More predictable file starts in Timed trigger mode. + Rename graphing option "-DC" to "-". + Add - option to online NI stream. + Add default ShankMap backing spatial channel averaging. + Add - option to online streams. + Add - option to offline viewers. + Split Config SNS tab into Map and Save tabs. + Add ShankMap file support. + Add ShankMap editors. + Can order ChanMap according to ShankMap. + Imec internal refs: UI to turn off option 3 chans. + Edit imro or on/off during run with R-click in graphs. + Make sure R-click changes update ShankMap. Changes in 20160703 ------------------- + Imec v4.3. + Fix spelling error. + Update doc texts. + Better ChanMap editor. + FVW can hide all. + FVW can edit ChanMap. + FVW better channel selection. + FVW fix export chanMap. + FVW fix export time span. Changes in 20160701 ------------------- + Clean up imec startup. + Fix AO initialization. + Correct MATLAB docs. + Better default server addresses. + Meta file written before and after. + Meta gets firstCt time stamp. + File viewer opens any stream type. + Better FVW UI for graph and time ranges. + Faster FVW param setters and dragging. + FVW linking. + FVW help text. Changes in 20160601 ------------------- + MATLAB: GetFileStartCount. + Fix TTL trigger bug. Changes in 20160515 ------------------- + Imec v4.2. + Add option to disable LEDs. + Imec diagnostics (BIST) dialog. + Update imec start sequence. + More AO filter options. + Fix AO deadlock. + Render digital channels. + Nicer default values. Changes in 20160511 ------------------- + Add BinMax checkbox. + Fix AO dialog issue. + Split imec data files. + Gate start waits for sample arrival. + Improve stream sync in all triggers. + Add recording time display. + Update help texts. Changes in 20160502 ------------------- + Fix bug in TTL trigger type. + Better handling of "?" button. + Add remote sort order query. Changes in 20160501 ------------------- + Extensive support is added for broken EEPROMs: + Calibrate ADC and gain from imec data files. + Optionally skip any calibrations if data unavailable. + Help text: click 'Help' in Force dialog... + Or read 'Force_Help.html' in release package. + More accurate time displays. Changes in 20160408 ------------------- + Imec support at v4.1 + (ADC calib, optional gain calib, sync input). + Imec setup panel gets force identity button. Changes in 20160404 ------------------- + Imec support remains at v3.5 (ADC calibration). + Reenable spike and TTL triggers. + Recast trigger pause as gate override. + MATLAB: SetTrgEnable -> SetRecordingEnable. Changes in 20160401 ------------------- + Imec support at v3.5 (ADC calibration). + Detect if USB NI device connected. + Multiple SpikeGLX can run but one owns NI. + Errors bring console window to top. + Config dialog gets disk space calculator. Changes in 20160305 ------------------- + Fix timing issue with USB NI-DAQ. + Disable imec ref disconnect functions. + Flesh out SN field of imro table. Changes in 20160304 ------------------- + Imec support at v3.4 (faster startup, improved reference signal routing). + Fix run startup bug. + Fix DC subtraction bug. + Fix NI digital channel issue. + Message if set bank out of range. + Right-click to edit Imec settings. Changes in 20160302 ------------------- + v20160101 removed from site. + Fix bug setting bank 0. + Start including SpikeGLX-MATLAB-SDK in release. + Updated help text/UserManual with discussion of performance topics. Changes in 20160301 ------------------- + SpikeGLX folder requires "libNeuropix_basestation_api.dll". + Configuration dialog gets {Devices, IM Setup} Tabs. + Updated run pause/resume options moved from Triggers Tab to Gates Tab. + Data are processed in two parallel "streams": imec stream, nidq stream. + Each stream generates own datafiles {.imec.bin, .imec.meta} {.nidq.bin, .nidq.meta}. + Some renaming of metadata items to distinguish stream type. + Each stream gets own channel map and own save-channel string. + Each stream gets own Graphs window viewer pane. + All graphing uses pages of stacked traces. + New Graphs window Run Toolbar layout. + NI viewer gets low-pass filter option. + MATLAB API modified to fetch from either imec or nidq stream. + Online help text rewritten. + Includes SpikeGLX.exe: Real Imec and NI-DAQ acquisition. + Includes SpikeGLX_NISIM.exe: Real Imec and simulated NI-DAQ acquisition. Temporarily disabled: - Spike trigger option. - TTL trigger option. - AO for Imec channels. - Offline file viewer for Imec files. - Graphs window save-channel checkboxes. Changes in 20160101 ------------------- - Fix bug: SpikeGLX hangs on remote setTrgEnable command. - Fix bug: Remote setRunName doesn't handle _g_t tags correctly. - Data files now get double extension '.nidq.bin', '.nidq.meta'. - Offline file viewer enabled. Original 20151231 ----------------- - Function set very close to original SpikeGL.