Skip to content
generated from fastai/pypi_template

Lightweight package for computing the kernel LFP approximation from Teleńczuk et al., 2020

License

Notifications You must be signed in to change notification settings

siplab-gt/tklfp

Repository files navigation

tklfp - Teleńczuk Kernel LFP

DOI

This is a lightweight package for computing the kernel LFP approximation from Teleńczuk et al., 2020. This method approximates LFP from spikes alone, without the need for more expensive simulations of spatially extended neurons. See the original authors' demo code here.

This package was developed by Kyle Johnsen under the direction of Chris Rozell at Georgia Institute of Technology.

How to install:

Simply install from pypi:

pip install tklfp

How to use:

Initialization

First you must initialize a TKLFP object which computes and caches the per-spike contribution of each neuron to the total LFP. You will need X, Y, and Z coordinates of the neurons, their cell types (excitatory/inhibitory, represented as a boolean), and the coordinates of the electrode(s):

from tklfp import TKFLP
tklfp = TKLFP(xs_mm, ys_mm, zs_mm, is_excitatory, elec_coords_mm)

The first four arguments must all have the same length N_n, the total number of neurons. elec_coords_mm must an N_e by 3 array-like object, where N_e is the number of recording sites.

Computing LFP

LFP can then be computed with the neuron indices and times of spikes (indices must be between 0 and N_n - 1, corresponding to the parameters given on initialization), as well as the timepoints to evaluate at (must be an iterable):

lfp = tklfp.compute(i_n, t_ms, t_eval_ms)

A complete example, reworking the demo from the original paper, can be found here. Basic usage information is also accessible in docstrings.

Cortical orientation

The TKLFP constructor can also take an orientation argument which represents which direction is "up," that is, towards the surface of the cortex or parallel to the apical dendrites of pyramidal cells. The default is [0, 0, 1], indicating that the positive z axis is "up." In the case your population isn't a sheet of neurons with uniform orientation (for a curved cortical area, for example), you can pass an N_n by 3 array containing the individual orientation vectors for all the neurons.

Future development

The package uses parameters from the original 2020 paper by default. This can be changed by passing in an alternate parameter dictionary on initialization:

tklfp = TKLFP(..., params=new_params)

The new params must have the same content as the default tklfp.params2020. The A0_by_depth params are scipy interpolation objects, but could theoretically be any callable that will return A0 (in μV) for an arbitrary depth (in mm).

Citation

Please cite the publication for the Cleo simulator if you use this software in your research. You may also cite the Zenodo DOI for this repository.