63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
|
|
from Baseline import get_baseline_class
|
|
from CellData import CellData, icelldata_of_dir
|
|
from models.LIFACnoise import LifacNoiseModel
|
|
from Baseline import BaselineCellData, BaselineModel
|
|
from os import listdir
|
|
import numpy as np
|
|
from IPython import embed
|
|
import pyrelacs.DataLoader as Dl
|
|
from ModelFit import ModelFit, get_best_fit
|
|
from FiCurve import FICurveModel, FICurveCellData
|
|
import os
|
|
import matplotlib.pyplot as plt
|
|
import functions as fu
|
|
from scipy.optimize import curve_fit
|
|
from scipy.signal import find_peaks
|
|
from thunderfish.eventdetection import threshold_crossing_times, threshold_crossings, detect_peaks
|
|
import helperFunctions as hF
|
|
import models.smallModels as sM
|
|
from stimuli.SinusoidalStepStimulus import SinusoidalStepStimulus
|
|
from matplotlib import gridspec
|
|
from plottools.axes import labelaxes_params
|
|
|
|
|
|
|
|
|
|
|
|
# sp = self.spikes(index)
|
|
# binary = np.zeros(t.shape)
|
|
# spike_indices = ((sp - t[0]) / dt).astype(int)
|
|
# binary[spike_indices[(spike_indices >= 0) & (spike_indices < len(binary))]] = 1
|
|
# g = gaussian_kernel(kernel_width, dt)
|
|
# rate = np.convolve(binary, g, mode='same')
|
|
|
|
fit = ModelFit("results/final_2/2012-07-12-ag-invivo-1/start_parameter_4_err_6.11/")
|
|
model = fit.get_model()
|
|
|
|
base_stim = SinusoidalStepStimulus(fit.get_cell_data().get_eod_frequency(), 0, 0)
|
|
time_list = []
|
|
freq_list = []
|
|
con_freq_list = []
|
|
duration = 10
|
|
step = model.get_sampling_interval()
|
|
g = gaussian_kernel(0.005, step)
|
|
for i in range(20):
|
|
print(i)
|
|
v1, spikes = model.simulate(base_stim, duration)
|
|
|
|
binary = np.zeros(int(np.rint(duration / step)))
|
|
for s in spikes:
|
|
binary[int(np.rint(s/step))] = 1
|
|
rate = np.convolve(binary, g, mode='same')
|
|
con_freq_list.append(rate)
|
|
|
|
time, freq = hF.calculate_time_and_frequency_trace(spikes, model.get_sampling_interval())
|
|
time_list.append(time)
|
|
freq_list.append(freq)
|
|
rates = np.array(con_freq_list)
|
|
mean_rate = np.mean(rates, axis=0)
|
|
mean_time, mean_freq = hF.calculate_mean_of_frequency_traces(time_list, freq_list, model.get_sampling_interval())
|
|
plt.plot(np.arange(0, 10, step), mean_rate, alpha=0.5)
|
|
plt.plot(mean_time, mean_freq, alpha=0.5)
|
|
plt.show() |