Skip to content

Commit

Permalink
doc: fix warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
skim0119 committed Jul 5, 2022
1 parent 0e4bbac commit 2e4f897
Show file tree
Hide file tree
Showing 9 changed files with 81 additions and 96 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
miv.visualization.causality.spike\_triggered\_average\_plot
===========================================================

.. currentmodule:: miv.visualization.causality

.. autofunction:: spike_triggered_average_plot

This file was deleted.

15 changes: 1 addition & 14 deletions docs/api/visualization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ Causality Analysis
:toctree: _toctree/VisualizationAPI

pairwise_causality_plot
spike_triggered_average_plot

Burst Analysis
------------------
Expand All @@ -59,20 +60,6 @@ Burst Analysis

plot_burst

Spike Triggered Average
-----------------------

.. currentmodule:: miv.visualization

.. automodule:: miv.visualization.spike_triggered_avg

.. autosummary::
:nosignatures:
:toctree: _toctree/VisualizationAPI

spike_triggered_avg



Useful External Packages
========================
Expand Down
File renamed without changes.
1 change: 0 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ If you are interested in contributing to this project, we prepared contribution
:caption: Examples

examples/sample_datasets
.. examples/spike_detection

.. toctree::
:maxdepth: 2
Expand Down
1 change: 0 additions & 1 deletion miv/visualization/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from miv.visualization.causality import *
from miv.visualization.event import *
from miv.visualization.fft_domain import *
from miv.visualization.spike_triggered_avg import *
from miv.visualization.waveform import *
77 changes: 72 additions & 5 deletions miv/visualization/causality.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Pairwise Granger Causality Plot
__all__ = ["pairwise_causality_plot", "spike_triggered_average_plot"]

import os

Expand All @@ -8,7 +8,8 @@
from viziphant.spike_train_correlation import plot_corrcoef

from miv.statistics import pairwise_causality
from miv.typing import SignalType
from miv.statistics.spiketrain_statistics import binned_spiketrain
from miv.typing import SignalType, SpikestampsType


def pairwise_causality_plot(signal: SignalType, start: float, end: float):
Expand All @@ -20,9 +21,9 @@ def pairwise_causality_plot(signal: SignalType, start: float, end: float):
signal : SignalType
Input signal
start : float
starting point from signal
Starting point of the signal
end : float
End point from signal
End point of the signal
Returns
-------
Expand All @@ -31,7 +32,8 @@ def pairwise_causality_plot(signal: SignalType, start: float, end: float):
instantaneous causality between X,Y, and total causality. X and Y
represents electrodes
axes : matplotlib.axes
Figure axes
axes parameters for plot modification
"""

# Causality
Expand Down Expand Up @@ -60,3 +62,68 @@ def pairwise_causality_plot(signal: SignalType, start: float, end: float):
axes[1, 1].set_title("Total interdependence of X,Y")

return fig, axes


def spike_triggered_average_plot(
signal: SignalType,
channel_x: int,
spiketrains: SpikestampsType,
channel_y: int,
sampling_freq: float,
window_length: float,
):
"""
Plots the spike-triggered average of Local Field Potential (LFP) from channel X
corresponding to spiketrain from channel Y. The spiketrain from channel Y
can be replaced with stimulation signal to understand stimulus dependent
LFP on channel X, but take care in providing stimualtion as SpikestampsType.
Parameters
----------
signal : SignalType
LFP signal recorded from the electrodes
channel_x : float
Channel to consider for LFP data
spiketrains : SpikestampsType
Single spike-stamps
channel_y : float
Channel to consider for spiketrain data
sampling_freq : float
sampling frequency for LFP recordings
window_length : float
window length to consider before and after spike
Returns
-------
figure : matplotlib.pyplot.Figure
matplot figure plotting spike triggered average of channel X in the provided window
axes : matplotlib.axes.Axes
axes parameters for plot modification
"""

# Spike Triggered Average
dt = 1 / sampling_freq
n = np.shape(signal[:, channel_x])[0] / sampling_freq
assert (
window_length < np.shape(signal[:, channel_x])[0] / 2
), "Window cannot be longer than signal length"
spike = binned_spiketrain(spiketrains, channel_x, 0, n, dt)
lfp = signal[:, channel_x]
spike_times = np.where(spike == 1)[0]
spike_len = np.shape(spike_times)[0]
sta = np.zeros([2 * window_length + 1])

for i in np.arange(spike_len):
sta += lfp[spike_times[i] - window_length : spike_times[i] + window_length + 1]

spike_triggered_average = sta / spike_len
lags = np.arange(-window_length, window_length + 1) * dt * 1000

# Plotting
fig, ax = plt.subplots()
plt.plot(lags, spike_triggered_average)
ax.set_xlabel("Time (ms)")
ax.set_ylabel("Voltage (\u03bcV)")

return fig, ax
66 changes: 0 additions & 66 deletions miv/visualization/spike_triggered_avg.py

This file was deleted.

5 changes: 2 additions & 3 deletions tests/visualization/test_spike_triggered_average.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@
import pytest
from neo.core import AnalogSignal, Segment, SpikeTrain

from miv.visualization import spike_triggered_avg


def test_spike_triggered_avg_output():
from miv.statistics import burst
from miv.visualization import spike_triggered_average_plot

# Initialize the spiketrain as below
seg = Segment(index=1)
Expand All @@ -20,5 +19,5 @@ def test_spike_triggered_avg_output():
seg.spiketrains.append(train0)

with np.testing.assert_raises(AssertionError):
spike_triggered_avg(signal, 0, seg.spiketrains, 0, 2000, 10000000)
spike_triggered_average_plot(signal, 0, seg.spiketrains, 0, 2000, 10000000)
# The function above should throw an error since the window is greater than signal length

0 comments on commit 2e4f897

Please sign in to comment.