emodelrunner.synplas_analysis¶
Analysis tools for synapse plasticity.
Functions
|
Returns slope between points at [0.3, 0.75] * peak of given trace. |
|
Extract EPSPs at time spikes from voltage trace v. |
Classes
|
A full STDP induction experiment. |
- class emodelrunner.synplas_analysis.Experiment(data, c01duration=40.0, c02duration=40.0, period=10.0, c01period=None, c02period=None)[source]¶
Bases:
object
A full STDP induction experiment.
The experiment consists of two connectivity tests (C01 and C02), separed by the induction protocol.
- t¶
Time vector (ms)
- Type:
numpy.ndarray
- v¶
Soma voltage trace (ms)
- Type:
numpy.ndarray
- spikes¶
Pre-synaptic spike times (ms)
- Type:
numpy.ndarray
- duration¶
Duration of C01 and C02 phases (ms)
- Type:
dict
- period¶
The Cx period (ms)
- Type:
float
- c01period¶
The C01 period (ms)
- Type:
float
- c02period¶
The C02 period (ms)
- Type:
float
- epspwindow¶
Size of EPS detection window (ms)
- Type:
float
- cxs¶
Names of the Cx tests. These names are used as keys in the dictionaries (cxspikes, duration, epsp, cxtrace)
- Type:
list
- cxspikes¶
Pre-synaptic spikes times (ms) occuring during each test (C01 & C02)
- Type:
dict
- compute_epsp_interval(interval)[source]¶
Compute mean EPSP amplitude at regular intervals.
- Parameters:
interval (float) – The interval in minutes.
- Returns:
A dictionary of interval statistics for each Cx in Experiment.
- Return type:
dict
- compute_epsp_ratio(n, method='amplitude', full=False)[source]¶
Compute mean EPSP change.
- Parameters:
n (int) – Number of sweeps in Cx to be considered for mean EPSP calculation
method (str) – Method used to compute EPSP ratio (amplitude or slope)
full (bool) – whether to return the mean value and std of epsp before and after cell stimulus in addition to the epsp ratio
- Returns:
if full is False, returns
ratio_epsp (float): Mean EPSP change
if full is True, returns a tuple containing
epsp_before (float): mean value of EPSP or slope of mean EPSP trace in test C01
epsp_after (float): mean value of EPSP or slope of mean EPSP trace in test C02
ratio_epsp (float): Mean EPSP change
epsp_before_std (float): std of EPSP in test C01 if method is amplitude, else 0
epsp_after_std (float): std of EPSP in test C02 if method is amplitude, else 0
- Raises:
ValueError – if method is neither ‘amplitude’ nor ‘slope’
- property cxtrace¶
Returns time and interpolated trace of each EPSP as dict.
- property epsp¶
Returns dict containing EPSP vectors for each test (mV).
- emodelrunner.synplas_analysis.epsp_slope(vtrace)[source]¶
Returns slope between points at [0.3, 0.75] * peak of given trace.
Attention! This function expects that the trace is sampled (or interpolated) at a single timestep, since time is not taken into account during calculations.
- Parameters:
vtrace (numpy.ndarray) – interpolated voltage trace of one EPSP (mV)
- Returns:
slope of the EPSP (mV)
- Return type:
float
- emodelrunner.synplas_analysis.get_epsp_vector(t, v, spikes, window)[source]¶
Extract EPSPs at time spikes from voltage trace v.
- Parameters:
t (numpy.ndarray) – Time vector (ms).
v (numpy.ndarray) – Soma voltage trace. Must have the same size of t (mV).
spikes (numpy.ndarray) – Time of presynaptic spikes. Every value in spikes must be in the interval [min(t), max(t)] (ms).
window (float) – Size of EPS detection window in ms.
- Returns:
Vector of EPSPs (mV).
- Return type:
numpy.ndarray
- Raises:
RuntimeError – if a postsynaptic cell spike is found during a connectivity test
RuntimeError – if the detection window can have multiple EPSPs in it