NeuroAnalysis - Neural Signal Analysis

NeuroAnalysis - Neural Signal Analysis

API Reference

Predefined ColorMaps

NeuroAnalysis.CondDChConstant.

Default digital input channels

Time Unit set to millisecond by default.

Masking alpha channel of an image, match the implementation in Experica shaders.

Try to locate cell layer.

  1. y coordinate of cell postion
  2. layer definition
NeuroAnalysis.casMethod.

2D cas function defined as $cas(x+y) = cos(x+y) + sin(x+y)$

  • kx: Frequency in cycle/unit_x
  • ky: Frequency in cycle/unit_y
  • phase: Phase of a cycle in [0, 1] scale
  • isnorm: scale cas in [-√2, √2] to [-1, 1]
NeuroAnalysis.casMethod.

cas function defined as $cas(x) = cos(x) + sin(x)$

  • f: Frequency in cycle/unit_x
  • phase: Phase of a cycle in [0, 1] scale
  • isnorm: scale cas in [-√2, √2] to [-1, 1]

2D cas to 2D sin gratingf

cas phase to sin phase, phase is in [0, 1] scale

Note

$cas(x) = √2 sin(x + π/4)$

Logical mask for Neuropixels channels in probe shape

Transforms p-axial data to a common scale α: sample of angles in radians p: number of modes

Mean direction for circular data with axial

Mean for circular data

NeuroAnalysis.circrFunction.

Mean Resultant Vector Length for circular data α: sample of angles in radians w: number of incidences in case of binned angle data d: spacing of bin centers for binned data, if supplied correction factor is used to correct for bias

Properties of Circular Tuning: - Prefered Direction/Orientation - Selectivity Index - version 1: (ResponsePrefered - ResponseOpposing)/ResponsePrefered - version 2: (ResponsePrefered - ResponseOpposing)/(ResponsePrefered + ResponseOpposing) - Full Width at Half Maximum

  1. x: angles in radius
  2. y: responses
  • od: opposing angle distance, π for DSI, 0.5π for OSI
  • fn: factor name
NeuroAnalysis.circvarFunction.

Circular Variance

clamp value to min and max, and linearly map range [min, max] to [0, 1]

Get factors of conditions

In Condition Tests, find each unique condition, number of repeats and its indices

Group repeats of Conditions, get Mean and SEM of responses

  1. rs: responses of each trial
  2. ci: trial indices of repeats for each condition

Print Condition in String

Get CondTest DataFrame

Get CondTestCond DataFrame

Shift(shuffle) corrected, normalized(coincidence/spike), condition/trial-averaged Cross-Correlogram of binary spike trains. (Bair, W., Zohary, E., and Newsome, W.T. (2001). Correlated Firing in Macaque Visual Area MT: Time Scales and Relationship to Behavior. J. Neurosci. 21, 1676–1697.)

NeuroAnalysis.csdMethod.

1D Current Source Density for a set of voltage traces from a linear array of electrodes.

  1. data: ch x sample or ch x sample x epoch(volts)
  • method:

CSD: finite difference method of second spatial derivatives of potentials, I = - ∇σ⋅∇ϕ, σ is conductivities, ϕ is potentials, on the continuous assumption when spacing is around 20-100 um. (Nicholson & Freeman, 1975, J Neurophysiol, 38(2): 356-68)

iCSD: solve I -> ϕ forward problem, then get the inverse transformation matrix. (Petterson et al., 2006, J Neurosci Methods, 154(1-2):116-33)

  iCSDdelta: δ method where infinitely thin current source discs of radius r.
  iCSDspline: cubic spline method where current source between electrode be modeled by smooth spline

kCSD: kernal CSD ()

  • h: channel spacing(micrometers)

  • c: conductivity of the extracellular medium in siemans/meter

  • r: radius(micrometers) of the model current source/sink in reverse method

  • return: CSD(amps/meters^3)

cubic spline inverse CSD

contact_positions: contact positions data: measured potentials Fcs: cubic spline transformation matrix corresponding to the given contact positions E0,E1,E2,E3: matrixes containing the "recursive rules"

Get CondTest and CondTestCond DataFrame

Parse bit event time and value.

Get digital channel time and value.

Direction tuning significance using dot product with empirical orientation preference This function calculates the probability that the "true" direction tuning vector of a neuron has non-zero length. It performs this by empirically determing the unit orientation vector, and then computing the dot product of the direction vector for each trial onto the overall orientation vector, and then looking to see if the average is non-zero.

Inputs: ANGLES is a vector of direction angles at which the response has been measured. RATES is the response of the neuron in to each angle; each row should contain responses from a different trial. Output: P the probability that the "true" direction tuning vector is non-zero.

See: Mazurek, Kagan, Van Hooser 2014; Frontiers in Neural Circuits

NeuroAnalysis.dogfMethod.

Difference of Gaussians function

Drop array dims according to MATLAB convention.

  • scalar: scalar instead of 1x1 array
  • rvector: vector instead of 1xN array
  • cvector: vector instead of Nx1 array

Computes the E0, E1, E2 and E3 matrixes used in the cubic spline iCSD method. These matrixes contains the recursive formulas for finding the F matrix

Convert epochs in time to sample index

Epochs of Channel Sample.

Epochs of Neuropixels Channel Sample x, optionally gain corrected(voltage), line noise(60,120,180Hz) removed and bandpass filtered

Epochs of a Spike Train in between binedges

Epoch of a Spike Train x, where min <= x[i] < max.

kwargs isminzero, ismaxzero and shift set epoch zero value to min+shift or max+shift.

return:

  • y: epoch of the Spike Train
  • n: number of elements in the epoch, or divided by duration(max-min) of the epoch, based on kwargs israte
  • w: epoch window(min,max)
  • i: indices of epoch elements in the original Spike Train, such that y = x[i]

See also: epochspiketrains, epochspiketrainresponse

Response of each epoch of a Spike Train, could be mean firing rate or number of spikes based on kwarg israte.

See also: epochspiketrainresponse_ono

Response of each epoch of a Spike Train, could be mean firing rate or number of spikes based on kwarg israte.

Note

This is a faster(~500x) version compared to epochspiketrainresponse, but only works when x, mins and maxs are ascendingly ordered, and each maxs-mins range are none-overlapping.

Epochs for each Spike Trains

Logical mask for Neuropixels excluded channels in probe shape

Regular Expression to match Experica data file name

Estimate the F1 Ori and SpatialFreq of an image from its 2D powerspectrum.

  1. x: 2D powerspectrum
  2. freqd1: frequencies of dim 1
  3. freqd2: frequencies of dim 2

return:

  • ori: Orientation in radius, 0 is -, increase counter-clock wise
  • sf: SpatialFreq along the line perpendicular to ori

F and E matrix of the cubic spline inverse CSD

Condition Response in Factor Space

Tuning properties of factor response

  1. fl: factor levels

  2. fr: factor responses

    HueAngle, Orientation and Direction follow the same convention such that 0 is -/→, then increase counter-clock wise.

    For cases where Orientation and Direction are interlocked(drifting grating): - when Orientation is -(0), then Direction is ↑(90) - when Direction is →(0), then Orientation is |(-90)

Get Final factors of conditions

find the index i in thetas that thetas[i] is closest to a, all in radius

Fit model to data

Flat Spike Trains to SpikeTimes and Trials, optionally sort trial based on sv

NeuroAnalysis.flinMethod.

Find levels for each factor and indices, repetition for each level

Gabor function

Convert raw Neuropixels data to gain-corrected voltages. The saved-channel id subset in data will be used to get corresponding gain.

The full conversion with gain is:

$dataVolts = dataInt * fi2v / gain$

Note that each channel may have its own gain.

  1. y: the saved data stream, excluding the last Sync channel.
  2. meta: corresponding meta for y

Gaussian function

Get matched file names in path

Get matched Experica files in directory

Get Optical Imaging VDAQ matched files in directory

Generate Grating Image, match the implementation in Experica grating shader.

  • θ: Orientation (radius), 0 is -, increase counter-clock wise
  • sf: SpatialFreq (cycle/deg)
  • tf: TemporalFreq (cycle/sec)
  • t: Time (second)
  • phase: Phase of a cycle in [0, 1] scale
  • size: Tuple of image size in degree
  • ppd: pixel per degree
  • isnorm: return image in [0, 1] or [-1, 1]

2D sin grating function

  • θ: Orientation in radius, 0 is -, increase counter-clock wise
  • f: Frequency in cycle/unit_x/y
  • phase: Phase of a cycle in [0, 1] scale

sin grating function

  • f: Frequency in cycle/unit_x
  • phase: Phase of a cycle in [0, 1] scale
NeuroAnalysis.gvmfMethod.

Generalized von Mises function [1]

\[f(α) = βe^{κ₁(cos(α - μ₁) - 1) + κ₂(cos2(α - μ₂) - 1)}\]

[1]

Gatto, R., and Jammalamadaka, S.R. (2007). The generalized von Mises distribution. Statistical Methodology 4, 341–353.

Generate gratings in Hartley space (PL)

  • kx, ky: wavenumber along x, y axis
  • bw: black and white (phase) flip
  • stisize: stimulus size in visual angle (degree); note that sz[1]=sz[2]

if norm=true,Return image in [0,1], otherwise return image in [-1,1]

Generate Hartley Subspace, where k is frequency in cycle/unit_x/y. [1]

  • kbegin: k >= kbegin
  • kend: k <= kend
  • dk: Δk, step on k axis
  • phase: phase in [0, 1] scale, default 0.
  • shape: :square or :circle shape subspace
  • addhalfcycle: add half cycle shifted hartleys
  • blank: the element of hartley as blank, default uniform gray.
  • nblank: number of blanks to add

[1]

Ringach, D.L., Sapiro, G., and Shapley, R. (1997). A subspace reverse-correlation technique for the study of visual neurons. Vision Research 37, 2455–2464.

High pass and low pass filtering

Hotelling's T-Squared test for one multivariate sample.

Performs Hotelling's T^2 test on multivariate samples X to determine if the data have mean MU. X should be a NxP matrix with N observations of P-dimensional data, and the mean MU to be tested should be 1xP. the significance level α is 0.05 by default.

H is 1 if the null hypothesis (that the mean of X is equal to MU) can be rejected at significance level α. P is the actual P value.

The code is based on HotellingT2.m by A. Trujillo-Ortiz and R. Hernandez-Walls.

Check if any factors and their interactions significently modulate response using ANOVA

Check if any sub group of response is significently different from baseline by Wilcoxon Signed Rank Test

Check if response is significently different from baseline by Wilcoxon Signed Rank Test

Load images in directory

local RMS contrast of each image, highlighting local structure regions

Map time to data timeline, optionally add latency.

Get matched file names in directory, optionally join directory to get file path

convert Matlab struct of array to DataFrame

Normalize values of an array to be between -1 and 1

original sign of the array values is maintained.

Regular Expression to match Optical Imaging VDAQ block file name

Get digital rising and falling edges in a analog stream return di: edges index dv: edges active/inactive state

Plot Mean and SEM of responses for each condition

plot hartley subspace

scatter plot of spike trains

Generate a Poisson Spike Train

Multi-Taper power spectrum estimation

2D powerspectrum of an image.

Read and Prepare Dataset in MATLAB MAT File

Prepare Experica Experiment Data

Prepare Optical Imaging Block Data

Prepare Ripple Data

PSTH of Spike Trains

Read variables of a MATLAB MAT file into a Dictionary

  1. f: MAT file path
  2. vars: variable names in the varset to read
  • varset: variable names to select in vars
  • scalar: scalar instead of 1x1 matrix
  • rvector: vector instead of 1xN matrix
  • cvector: vector instead of Nx1 matrix

Read DataExport Metadata MAT File

Logical mask for Neuropixels reference channels in probe shape

reshape data stream in the same shape of chmask, where masked channels are replaced with local average

Remove line noise and its harmonics by notch filter

This function calculates the ROC curve, which represents the 1-specificity and sensitivity of two classes of data, (i.e., class1 and class2).

The function also returns all the needed quantitative parameters: threshold position, distance to the optimum point, sensitivity, specificity, accuracy, area under curve (AROC), positive and negative predicted values (PPV, NPV), false negative and positive rates (FNR, FPR), false discovery rate (FDR), false omission rate (FOR), F1 score, Matthews correlation coefficient (MCC), Informedness (BM) and Markedness; as well as the number of true positives (TP), true negatives (TN), false positives (FP), and false negatives (FN).

Rewrite from Víctor Martínez-Cagigal (2020). ROC Curve, MATLAB Central File Exchange. Retrieved February 11, 2020.

sample index to time

Find the extreme value

Peichao:

Join the results from differernt Hartleys after hartleyFourier analysis

peak ROI region and its delay

fit responsive sta to each type of models

2D sin gratingf to 2D cas

sin phase to cas phase, phase is in [0, 1] scale

Note

$cas(x) = √2 sin(x + π/4)$

NeuroAnalysis.staMethod.

Spike Triggered Average of Images

  1. x: Matrix where each row is one image
  2. y: Vector of image response
  • norm: normalization factor, default no normalization. it could be $sum(y)$ if y is number of spike or spike rate, then STA would be spiking probability.
  • whiten: whiten factor, default no whiten. it could be $(xᵀx)⁻¹$ or inverse of covariance matrix, that decorrelate STA.

Extract state time of condtest

Spatial and Temporal filter of data stream

time to sample index

Organize each spiking unit info from Kilosort result.

Regular expression to match VLab data file names

Vertical Mean and SEM of a matrix

NeuroAnalysis.vmfMethod.

von Mises function [1]

\[f(α) = βe^{κ(cos(n(α - μ)) - 1)}\]

[1]

Swindale, N.V. (1998). Orientation tuning curves: empirical description and estimation of parameters. Biol Cybern 78, 45–56.

  • β: amplitude at μ
  • μ: angle of peak
  • κ: width parameter
  • n: frequency parameter

Vertical stack same length vectors to matrix

Base.rangeMethod.

Generates linearly interpolated colors between key colors inclusively.

return an Array of colors.

PlotUtils.cgradMethod.

Generates linearly interpolated ColorGradient

PlotUtils.cgradMethod.

Generates linearly interpolated ColorGradient between key colors.

Index