make all_mean_freq_trace more robust
This commit is contained in:
parent
a71193f0c9
commit
74c9fa55fa
@ -55,14 +55,15 @@ def merge_intensities_similar_to_index(intensities, spiketimes, trans_amplitudes
|
|||||||
return intensities, spiketimes, trans_amplitudes
|
return intensities, spiketimes, trans_amplitudes
|
||||||
|
|
||||||
|
|
||||||
def all_calculate_mean_isi_frequency_traces(spiketimes, sampling_interval, time_in_ms=True):
|
def all_calculate_mean_isi_frequency_traces(spiketimes, sampling_interval, stimulus_start=0, time_in_ms=False):
|
||||||
"""
|
"""
|
||||||
Expects spiketimes to be a 3dim list with the first dimension being the trial
|
Expects spiketimes to be a 3dim list with the first dimension being the trial
|
||||||
the second the count of runs of spikes and the last the individual spikes_times:
|
the second the count of runs of spikes and the last the individual spikes_times:
|
||||||
[[[trial1-run1-spike1, trial1-run1-spike2, ...],[trial1-run2-spike1, ...]],[[trial2-run1-spike1, ...], [..]]]
|
[[[trial1-run1-spike1, trial1-run1-spike2, ...],[trial1-run2-spike1, ...]],[[trial2-run1-spike1, ...], [..]]]
|
||||||
:param spiketimes:
|
:param stimulus_start: the time point at which the actual stimulus starts
|
||||||
:param sampling_interval:
|
:param spiketimes: time points of action potentials
|
||||||
:param time_in_ms:
|
:param sampling_interval: the sampling interval used / will also be used for the frequency trace
|
||||||
|
:param time_in_ms: whether the time is in ms or seconds
|
||||||
:return: the mean frequency trace for each trial and its time trace
|
:return: the mean frequency trace for each trial and its time trace
|
||||||
"""
|
"""
|
||||||
times = []
|
times = []
|
||||||
@ -73,6 +74,10 @@ def all_calculate_mean_isi_frequency_traces(spiketimes, sampling_interval, time_
|
|||||||
trial_freq_trace = []
|
trial_freq_trace = []
|
||||||
for j in range(len(spiketimes[i])):
|
for j in range(len(spiketimes[i])):
|
||||||
time, isi_freq = calculate_time_and_frequency_trace(spiketimes[i][j], sampling_interval, time_in_ms)
|
time, isi_freq = calculate_time_and_frequency_trace(spiketimes[i][j], sampling_interval, time_in_ms)
|
||||||
|
|
||||||
|
if time[0] > stimulus_start:
|
||||||
|
print("Trial not used as its frequency trace started after the stimulus start!")
|
||||||
|
continue
|
||||||
trial_freq_trace.append(isi_freq)
|
trial_freq_trace.append(isi_freq)
|
||||||
trial_time_trace.append(time)
|
trial_time_trace.append(time)
|
||||||
|
|
||||||
@ -141,12 +146,12 @@ def calculate_mean_of_frequency_traces(trial_time_traces, trial_frequency_traces
|
|||||||
latest_start = max(starts)
|
latest_start = max(starts)
|
||||||
earliest_end = min(ends)
|
earliest_end = min(ends)
|
||||||
|
|
||||||
shortened_time = np.arange(latest_start, earliest_end+sampling_interval, sampling_interval)
|
shortened_time = np.arange(latest_start, earliest_end, sampling_interval)
|
||||||
|
|
||||||
shortened_freqs = []
|
shortened_freqs = []
|
||||||
for i in range(len(trial_frequency_traces)):
|
for i in range(len(trial_frequency_traces)):
|
||||||
start_idx = int((latest_start - trial_time_traces[i][0]) / sampling_interval)
|
start_idx = int(round((latest_start - trial_time_traces[i][0]) / sampling_interval))
|
||||||
end_idx = int((earliest_end - trial_time_traces[i][0]) / sampling_interval)
|
end_idx = int(round((earliest_end - trial_time_traces[i][0]) / sampling_interval))
|
||||||
|
|
||||||
shortened_freqs.append(trial_frequency_traces[i][start_idx:end_idx])
|
shortened_freqs.append(trial_frequency_traces[i][start_idx:end_idx])
|
||||||
|
|
||||||
@ -158,6 +163,7 @@ def calculate_mean_of_frequency_traces(trial_time_traces, trial_frequency_traces
|
|||||||
def mean_freq_of_spiketimes_after_time_x(spiketimes, time_x, time_in_ms=False):
|
def mean_freq_of_spiketimes_after_time_x(spiketimes, time_x, time_in_ms=False):
|
||||||
""" Calculates the mean frequency of the portion of spiketimes that is after last_x_time """
|
""" Calculates the mean frequency of the portion of spiketimes that is after last_x_time """
|
||||||
|
|
||||||
|
spiketimes = np.array(spiketimes)
|
||||||
if len(spiketimes) <= 1:
|
if len(spiketimes) <= 1:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user