add fit_(function)(x,y) type functions

This commit is contained in:
AlexanderOtt 2020-04-02 10:05:22 +02:00
parent 6ae9781cec
commit 6562e2cff8

View File

@ -1,6 +1,30 @@
import numpy as np
from warnings import warn
from thunderfish.eventdetection import detect_peaks, threshold_crossing_times, threshold_crossings
from scipy.optimize import curve_fit
import functions as fu
def fit_clipped_line(x, y):
popt, pcov = curve_fit(fu.clipped_line, x, y)
return popt
def fit_boltzmann(x, y):
max_f0 = float(max(y))
min_f0 = 0.1 # float(min(self.f_zeros))
mean_int = float(np.mean(x))
total_increase = max_f0 - min_f0
total_change_int = max(x) - min(x)
start_k = float((total_increase / total_change_int * 4) / max_f0)
popt, pcov = curve_fit(fu.full_boltzmann, x, y,
p0=(max_f0, min_f0, start_k, mean_int),
maxfev=10000, bounds=([0, 0, -np.inf, -np.inf], [np.inf, np.inf, np.inf, np.inf]))
return popt
def merge_similar_intensities(intensities, spiketimes, trans_amplitudes):
@ -437,7 +461,6 @@ def detect_f_infinity_in_freq_trace(time, frequency, stimulus_start, stimulus_du
start_idx = int((stimulus_end_time - length - buffer) / sampling_interval)
end_idx = int((stimulus_end_time - buffer) / sampling_interval)
return np.mean(frequency[start_idx:end_idx])