""" Test the ccstim generator. Usage: python test_ccstim.py This script runs ccstim for each of it's potential inputs, and plots the resulting waveforms. """ import sys import numpy as np from cnmodel.util import ccstim import pyqtgraph as pg pulsetypes = ["square", "hyp", "timedSpikes", "exp"] def test_cc_stim(): """ stim: a dictionary with keys [required] delay (delay to start of pulse train, msec [all] duration: duration of pulses in train, msec [all] Sfreq: stimulus train frequency (Hz) [timedSpikes] PT: post-train test delay [all] NP: number of pulses in the train [timedSpikes, exp] amp: amplitude of the pulses in the train [all] hypamp: amplitude of prehyperpolarizing pulse [hyp] hypdur: duration of prehyperpolarizing pulse [hyp] spikeTimes" times of spikes [timedSpikes] """ stim = { "square": { "delay": 10, "duration": 100, "Sfreq": 10, "PT": 0, "NP": 1, "amp": 100.0, }, "hyp": { "delay": 10, "duration": 100, "Sfreq": 10, "PT": 0, "NP": 1, "amp": 100.0, "hypamp": -50, "hypdur": 50, }, "timedSpikes": { "delay": 10, "duration": 1, "PT": 0, "amp": 100.0, "spikeTimes": [10.0, 20, 30, 40.0, 50.0], }, "exp": { "delay": 10, "duration": 3, "Sfreq": 20, "PT": 0, "NP": 4, "amp": 100.0, }, } dt = 0.1 for p in pulsetypes: (w, tmax, ts) = ccstim.ccstim(stim[p], dt, pulsetype=p) tb = np.arange(0, w.shape[0] * dt, dt) pg.plot(tb, w, title=p) if __name__ == "__main__": test_cc_stim() if sys.flags.interactive == 0: pg.QtGui.QApplication.exec_()