NeuroAnalysis - Neural Signal Analysis

API Reference

Base.rangeMethod

Generates linearly interpolated colors between key colors inclusively.

return an Array of colors.

source
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]
source
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]
source
NeuroAnalysis.checklayer!Method

Check layer boundaries, make sure no gap and overlap between layers. Layers are reversely ordered in layer names in ln, and start boundary is set to the same as the stop boundary of previous layer.

source
NeuroAnalysis.circtuningfeatureMethod

Properties of Circular Tuning

  • Prefered Angle with Peak Response
  • Half Width at Half Peak-to-Trough
  • Selectivity Index
    • version 1: (PeakResponse - OpposingResponse) / PeakResponse
    • version 2: (PeakResponse - OpposingResponse) / (PeakResponse + OpposingResponse)
  1. x: angles in radius
  2. y: responses
  • od: opposing angle distance to prefered angle, e.g. π for DSI, 0.5π for OSI
  • fn: factor name
source
NeuroAnalysis.complexmapMethod

Complex sumation of angles and corresponding image responses

  1. image response for each angle
  2. angles in radius
  • nsd: median ± nsd*sd for clamping
  • rsign: increasing/decreasing(+/-) response
  • mnorm: whether clampscale magnitude map

return complex map, angle map[0,2π) and magnitude map([0,1] if mnorm)

source
NeuroAnalysis.condinMethod

Find unique conditions of condition tests, with number of repeat for each condition and condition test indices for each repeat.

source
NeuroAnalysis.condresponseMethod

Get Mean and SEM of repeated responses for each condition

  1. rs: response of each condition test
  2. ci: condition test indices of repeats for each condition
source
NeuroAnalysis.condresponseMethod

Get Mean and SEM of repeated image responses for each condition

  1. rs: response of each condition test [height, width, ncondtest]
  2. ci: condition test indices of repeats for each condition
source
NeuroAnalysis.correlogramMethod

Normalized(coincidence/spike), condition and trial averaged Cross-Correlogram of two simultaneous binary spike sequences (bins x trials).

  • Correction:

    • (shuffle=true), "all-way" nonsimultaneous trials shuffle(default)

      (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.)

    • (shufflejitter=true, l=25), shuffle jittered spikes across trials in consecutive intervals of length l ms

      (Smith, Matthew A., and Adam Kohn (2008). Spatial and Temporal Scales of Neuronal Correlation in Primary Visual Cortex. J. Neurosci. 28.48 : 12591-12603.)

source
NeuroAnalysis.csdFunction

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

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

  2. method:

  • CSD: finite difference approximation of second spatial derivatives of potentials, C = - ∇⋅σ∇ϕ, σ is conductivity tensor, ϕ is potential. (Nicholson & Freeman, 1975, J Neurophysiol, 38(2): 356-68)

  • iCSD: solve C -> ϕ forward model, then get Ĉ by the inverse transformation matrix, here C is modeled by δ-source, i.e. infinitely thin current source disc of radius r. (Petterson et al., 2006, J Neurosci Methods, 154(1-2):116-33)

  • kCSD: kernal CSD ()

  • h: channel spacing(micrometer)

  • c: conductivity of extracellular medium(siemans/meter)

  • r: radius(micrometer) of δ-source

  • return: CSD(amps/meter^3)

source
NeuroAnalysis.dftMethod

Discrete Fourier Transform at frequencies

\[DFT[k] = \sum_{n=0}^{N-1} x[n] e^{\frac{-i2\pi kn}{N}}, k=0:N-1, N=length(x), fₛ=SamplingFreq(x), fₖ=fₛ/N=FreqResolution(DTFT)\]

  1. x: signal
  2. fs: simpling frequency of signal
  3. f...: at which frequencies DFT are directly evaluated
source
NeuroAnalysis.dirsigtestMethod

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

source
NeuroAnalysis.dropmatdim!Method

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
source
NeuroAnalysis.epochsamplenpMethod

Epochs of Neuropixels data stream (Channels x Samples), optionally gain corrected(voltage), line noise(60,120,180Hz) removed, bandpass filtered and common average referenced

source
NeuroAnalysis.epochspiketrainMethod

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

source
NeuroAnalysis.f1orisfMethod

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

  1. x: 2D powerspectrum
  2. freq1: frequencies of dim 1
  3. freq2: frequencies of dim 2

return:

  • ori: Orientation in radius[0,π), 0 is -, increase counter-clock wise
  • sf: SpatialFreq along the line perpendicular to ori
source
NeuroAnalysis.factorresponseMethod

Get Mean and SEM of repeated responses for each condition in factor space

  1. rs: response of each condition test
  2. fi: condition test indices of repeats for each condition in factor space
source
NeuroAnalysis.factorresponsefeatureMethod

Tuning properties of factor response

  1. fl: factor levels

  2. fr: factor responses for each level

    Angle, 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)
source
NeuroAnalysis.flinMethod

Find unique levels for each factor from condition tests, with number of repeat for each level and condition test indices for each repeat.

source
NeuroAnalysis.frameresponseMethod

Get single frame response from sequence of frames

  1. frames: [Height, Width, nframe]
  2. is: indices of response frames
  3. bis: indices of baseline response frames
source
NeuroAnalysis.gaincorrectnpMethod

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
source
NeuroAnalysis.goodnessoffitMethod

Goodness of Fit Metrics:

  • r: Pearson Correlation Coefficient
  • mae: Mean Absolute Error
  • rmse: Root Mean Squared Error
  • rae: Relative Absolute Error
  • rse: Relative Squared Error
  • r2: R Squared
  • adjr2: Adjusted-R²
  • s: Residual Standard Error
  • aic: Akaike Information Criterion
  • bic: Bayesian Information Criterion
  1. y: responses
  2. ŷ: model predictions
  • n: sample size
  • e: errors(y - ŷ)
  • k: number of model parameters
  • df: degree of freedom(n - k)
source
NeuroAnalysis.gratingMethod

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]
source
NeuroAnalysis.gratingfMethod

2D sin grating function

  • μ₁: x offset
  • μ₂: y offset
  • θ: Orientation in radius, 0 is -, increase counter-clock wise
  • f: Frequency in cycle/unit_distance orthogonal to orientation
  • phase: Phase of a cycle in [0, 1] scale
source
NeuroAnalysis.gvmfMethod

Generalized von Mises function [1]

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

[1]

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

source
NeuroAnalysis.halfwidthMethod

left and right half width at v around y[ci], -Inf/Inf when no v is found.

  • ci: index of y at which the center of the width locates
  • v: value on y where width is cut
  • circ: whether y is defined on circular domain and thus width can wrap around
  • x: domain of y, return width when x provided, otherwise return indices
source
NeuroAnalysis.hartleyMethod

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]

source
NeuroAnalysis.hartleysubspaceMethod

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.

source
NeuroAnalysis.hotellingt2testFunction

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.

source
NeuroAnalysis.isresponsiveMethod

Check if fun of a spatial-temporal kernal within response time window significently higher than that of the baseline time window

source
NeuroAnalysis.meanseMethod

Mean and SEM of an Array along dims, optionally apply sfun on each slice along dims before and mfun on mean after.

source
NeuroAnalysis.pairtestMethod

Hypothesis test for pair of samples

  1. rs1: sample 1 [Height, Width, nsample1]
  2. rs2: sample 2 [Height, Width, nsample2]
source
NeuroAnalysis.pairtestMethod

Hypothesis test for pair of repeated condition responses

  1. rs: condition test responses [Height, Width, ncondtest]
  2. i1: indices of repeated responses for first condition
  3. i2: indices of repeated responses for second condition
source
NeuroAnalysis.readmatMethod

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
source
NeuroAnalysis.ref2syncFunction

Map time between ref and target, according to the timing diff between target and ref of the same sync signal

source
NeuroAnalysis.roccurveMethod

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.

source
NeuroAnalysis.searchclosestMethod

search in vs the index of the value closest to v, -Inf/Inf when no v is found.

  • start: starting index in vs for searching
  • step: index stepping(≠0) for searching
  • circ: whether vs is defined on circular domain and thus searching can wrap around
source
NeuroAnalysis.sftuningfeatureMethod

Properties of Spatial Frequency Tuning

  • Prefered Spatial Frequency with Peak Response
  • Half Width at Half Peak-to-Trough
  • Frequency Passing Type {A:All Pass, H:High Pass, L:Low Pass, B:Band Pass}
  • Bandwidth $log2(H_{cut}/L_{cut})$
  • Frequency Passwidth at Half Peak-to-Trough constrained by low/high frequency limits
  1. x: sf in cycle/degree
  2. y: responses
source
NeuroAnalysis.shufflejitterMethod

The probability distribution of the jitter-resampled spike sequences.

(Xiaoxuan Jia, et.al. (2022). Multi-regional module-based signal transmission in mouse visual cortex)

(Matthew T. Harrison, Stuart Geman (2009). A Rate and History-Preserving Resampling Algorithm for Neural Spike Trains. Neural Comput. 21 (5): 1244-1258.)

(Smith, Matthew A., Adam Kohn (2008). Spatial and Temporal Scales of Neuronal Correlation in Primary Visual Cortex. J. Neurosci. 28.48 : 12591-12603.)

source
NeuroAnalysis.shufflejitterMethod

Shuffle spikes of bined(1ms) spike trains bst(nbin x ntrial) between trials in fixed jitter windows of length l(>0ms)

(Smith, Matthew A., and Adam Kohn (2008). Spatial and Temporal Scales of Neuronal Correlation in Primary Visual Cortex. J. Neurosci. 28.48 : 12591-12603.)

source
NeuroAnalysis.spikejitterMethod

Independently and uniformly jitters the spike times in st over jitter windows of length l(>0). This is repeated n times with the kth jittered spike train stored in jst[:,k].

  • win:
    • :center - the jitter window for st[k] is st[k] + [-l/2, l/2]
    • :fix - the jitter window for st[k] is floor(st[k]/l)*l + [0, l]
  • sort: if sorting jittered spike trains
source
NeuroAnalysis.staMethod

Spike Triggered Average of Images based on linear model of response,

\[yᵢ = KᵀXᵢ + ϵᵢ, ϵᵢ ~ N(0, σ²)\]

then the maximum likelihood estimator and least square estimator have the same analytical form.

\[K̂ₘₗ = argmax[P(Y|X,K)] = (XᵀX)⁻¹XᵀY = K̂ₗₛ\]

  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.
source
NeuroAnalysis.vmfMethod

von Mises function [1]

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

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

[1]

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

source

Index