Skip to content

Neuronal Data Analyzer Lab v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:41

Added

  • Laser speckle flowmetry (launcher → Blood flow → Laser speckle,
    apps/LSCIAnalysisApp.m, core/LaserSpeckle.m): blood-flow maps from
    laser speckle images. Loads raw speckle images from the camera, speckle
    contrast images, or the perfusion / flux images a commercial system
    exports (.mat, multi-frame TIFF or video; the type is judged from the
    images when the file does not say). Spatial (N × N window) or temporal
    (N frames) speckle contrast after the camera dark level, a flow index
    (1/K², or 1/τc from the exposure model with β), the flow of each ROI
    over time (K² averaged over the ROI before conversion), trials around
    each stimulus (from the stimulus trace in the file or a regular
    protocol) as % change from each trial's baseline, the average response
    (mean ± SD, with the mean change in a response window) and a response
    map. A Checks tab says in plain words what to look at: saturated
    pixels, a missing dark level, a small window, an unusual contrast,
    trials left out, too few trials. Export as .csv / .mat; Save trials
    writes the LDF trial format, so LDF Average and Response features open
    it. Sessions, report and methods text (citing Briers & Webster 1996,
    Boas & Dunn 2010, Bandyopadhyay et al. 2005, Cheng et al. 2003) as in
    every window. New demo demo_lsci.mat (core/demo/demoLSCI.m): raw
    speckle with known contrast in cortex, a vessel and static tissue, and
    a +25% flow response of an activated area after four stimuli; new Help
    topic Laser Speckle with the answers.
  • Blood-flow recordings from the common acquisition systems
    (core/io/SignalSource.m, readSignalText.m, readBiopacACQ.m,
    writeBiopacACQ.m): LabChart .mat exports with several blocks, channel
    rates, units and comments; LabChart and AcqKnowledge text exports;
    BIOPAC AcqKnowledge .acq files (3.x to 5.x, Windows and Mac, compressed
    or not, with event markers; checked against the 32 sample files of the
    bioread project); AcqKnowledge and Spike2 .mat exports; any delimited
    table (PeriSoft, moorVMS-PC, spreadsheets: decimal comma, clock times,
    units rows). The flow and stimulus channels are found from their names,
    and comments / markers can be the stimulus. New demo files
    (core/demo/demoLDFFormats.m): the LDF demo as a LabChart text export,
    an AcqKnowledge .acq, a PeriSoft-style table, a Spike2 export and a table
    without a time column.
  • core/io/readImageStack.m: one reader for image stacks over time
    (.mat, multi-page TIFF with the ImageJ frame interval, channels and
    pixel size, and video).
  • Perimed PeriCam PSI recordings (core/io/readPerimedDat.m,
    perimedPerfusion.m, writePerimedDat.m): PIMSoft .dat files (file
    versions 1 to 3) open in the Laser speckle window as speckle contrast
    images (β · SD / intensity from the variance and intensity images),
    with the frame rate and pixel size of the header; PIMSoft's perfusion
    (gain × (1/C − 1), 0–3000 PU) is available as well. Other laser speckle
    systems (moorFLPI, RWD, SIM, Omegawave) keep their undocumented files:
    open their TIFF, video or MATLAB exports.
  • TIFF metadata (core/io/tiffMeta.m, unitScale.m): one reading of
    what microscope and slide software writes into TIFFs, used by Histology,
    ROI analysis and Laser speckle: ImageJ hyperstacks (channels, slices,
    frames, frame interval, z spacing), OME-TIFF (DimensionOrder, sizes,
    physical pixel size with units, time increment, plane times, channel
    names), ScanImage (saved channels, frame rate, field of view in µm,
    slices with flyback frames, frame timestamps) and Aperio .svs (MPP,
    magnification). Multi-channel TIFFs open on one channel and the first
    slice.
  • Imaging files from microscope software (core/io/readImagingFolder.m,
    writeImagingFormat.m), in ROI analysis and every reader of image
    stacks: Inscopix .isxd movies (uint16, float32, uint8; frame rate and
    pixel size from the JSON footer), ThorImageLS folders (Experiment.xml +
    .raw, channels, averaging, fast z), Bruker Prairie View T-series and
    Z-series (PVScan .xml, one TIFF per frame, frame times, microns per
    pixel) and UCLA Miniscope folders (numbered videos, timeStamps.csv /
    timestamp.dat, metaData.json). ROI analysis now also reads the frame
    interval of TIFFs.
  • Histology: Import regions (core/io/readRegions.m,
    writeImageJRoi.m): regions drawn in ImageJ / Fiji (.roi and the ROI
    Manager's RoiSet.zip: polygon, freehand, traced, rectangle and oval, with
    their names) or QuPath (GeoJSON annotations, Polygon and MultiPolygon,
    names or classifications) become Histology regions.
  • Electrophysiology recordings from eight more systems (Extract Ephys
    → Source; core/io/readSpikeGLX.m, readBlackrock.m,
    readNeuralynx.m, readPlexon.m, readMCS.m, readIntanRHS.m,
    readOpenEphysLegacy.m, readABF.m): SpikeGLX (Neuropixels 1.0 / 2.0
    imec and nidq, sync and digital bits), Blackrock NSx 2.1-3.0 with the
    NEV digital input, Neuralynx .ncs folders with Events.nev TTLs, Plexon
    .plx (continuous channels placed by time stamp, AI and event channels,
    sorted spike times), Multi Channel Systems HDF5 (electrode, auxiliary
    and digital streams, events; MATLAB only), Intan .rhs (digital and
    analog inputs, stimulation current), Open Ephys legacy .continuous
    folders and Axon ABF 2 (gap-free or episodic). The format is also
    recognized from the file's extension, folder contents or first bytes;
    Try demo data writes the demo in each one, and the methods text names
    it. Each reader was checked during development against python-neo (and
    pyABF) on files from its synthetic writer (write*.m, used by the tests
    and the demo); for Multi Channel Systems, the file layout was checked
    with McsPyDataTools.
  • EDF, EDF+ and BDF files (core/io/readEDF.m, writeEDF.m): the
    European Data Format that LabChart, clinical systems and many others
    export, with EDF+ annotations (onset, duration, text), discontinuous
    EDF+D recordings (records placed at their times) and BioSemi's 24-bit
    BDF with its Status trigger word. Extract LDF opens them again (the
    annotations can be the stimulus), and EEG analysis reads them as
    continuous EEG (the channels in volts, annotations and BioSemi trigger
    codes as events); the LDF demo and the rodent EEG demo are also written
    as EDF+ (and BDF).
  • EGI .mff (core/io/readMFF.m, writeMFF.m): Net Station
    recordings (the .mff folder or its info.xml): float32 blocks,
    channel gains, pauses placed at their times, events, sensor positions
    and the vertex reference. mffpy and MNE-Python read the files written
    here with the same values, gains, pause and events, and readMFF reads
    mffpy's files. The rodent EEG demo is also written as .mff.
  • XDF (core/io/readXDF.m, writeXDF.m): LabRecorder files (Lab
    Streaming Layer): every stream with its time stamps (full or deduced)
    and clock offsets; EEG analysis reads the EEG stream and takes the
    marker streams as events. pyxdf reads the files written here with the
    same values, time stamps and markers. The rodent EEG demo is also
    written as XDF.
  • EEG-BIDS (core/io/readEEGBIDS.m, writeEEGBIDS.m): EEG analysis
    opens the sub-…_eeg file of a BIDS dataset (OpenNeuro) with its
    sidecar files: only the EEG channels of channels.tsv (bad channels
    noted), the events of events.tsv, the positions of electrodes.tsv
    with coordsystem.json, and the reference and line frequency of
    eeg.json. The rodent demo is also written as a BIDS dataset. Checked
    during development both ways with MNE-BIDS.
    Values and annotations were checked during development against pyedflib
    and MNE-Python.

Changed

  • Extract LDF opens every recording above, not only the LabChart .mat
    export. Step 1 now has LDF, Stimulus and Block choices, guessed from
    the channel names (the old convention, stimulus on channel 6 and LDF on
    channel 8, stays for LabChart files with 8 or more unnamed channels);
    the stimulus can also be the comments / event markers of the file, or
    none. The plots are titled with the channel names, the file label shows
    the format, rate, duration and channels, and a table without a time
    column asks for its sampling rate. The cropped .mat also keeps
    flowName, flowUnits and stimName; sessions store the format and
    the channel choice (older sessions still open), and the methods text
    names the acquisition software and the channels.
  • Launcher: Laser speckle joins LDF under Blood flow, so the tiles
    now take four rows at the default width (Blood flow and EEG, then
    Electrophysiology, Imaging and Across techniques).

Fixed

  • README: the version badge said 0.5.1 in the 0.5.2 release.
  • Histology: the pixel size of ImageJ TIFFs saved with the unit µm was not
    read (ImageJ writes it as \u00B5m); the Greek mu is accepted too, and
    an unknown unit falls back to the TIFF resolution tags.

Install: download the source ZIP below, unzip it, open MATLAB in that folder and run NeuroAnalyzerLab. See the README for details.