Added my functions
This commit is contained in:
parent
23db938fdf
commit
cf42fbb156
@ -123,6 +123,42 @@ def extract_stim_data(stimulus):
|
|||||||
amp_mod, ny_freq = AM(eodf, stim_freq)
|
amp_mod, ny_freq = AM(eodf, stim_freq)
|
||||||
return amplitude, df, eodf, stim_freq, amp_mod, ny_freq
|
return amplitude, df, eodf, stim_freq, amp_mod, ny_freq
|
||||||
|
|
||||||
|
def find_exceeding_points(frequency, power, points, delta, threshold):
|
||||||
|
"""
|
||||||
|
Find the points where the integral exceeds the local mean by a given threshold.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
frequency : np.array
|
||||||
|
An array of frequencies corresponding to the power values.
|
||||||
|
power : np.array
|
||||||
|
An array of power spectral density values.
|
||||||
|
points : list
|
||||||
|
A list of harmonic frequencies to evaluate.
|
||||||
|
delta : float
|
||||||
|
Half-width of the range for integration around the point.
|
||||||
|
threshold : float
|
||||||
|
Threshold value to compare integrals with local mean.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
exceeding_points : list
|
||||||
|
A list of points where the integral exceeds the local mean by the threshold.
|
||||||
|
"""
|
||||||
|
exceeding_points = []
|
||||||
|
|
||||||
|
for point in points:
|
||||||
|
# Calculate the integral and local mean for the current point
|
||||||
|
integral, local_mean = calculate_integral(frequency, power, point, delta)
|
||||||
|
|
||||||
|
# Check if the integral exceeds the threshold
|
||||||
|
valid, message = valid_integrals(integral, local_mean, threshold, point)
|
||||||
|
|
||||||
|
if valid:
|
||||||
|
exceeding_points.append(point)
|
||||||
|
|
||||||
|
return exceeding_points
|
||||||
|
|
||||||
def firing_rate(binary_spikes, dt = 0.000025, box_width = 0.01):
|
def firing_rate(binary_spikes, dt = 0.000025, box_width = 0.01):
|
||||||
'''
|
'''
|
||||||
Calculates the firing rate from binary spikes
|
Calculates the firing rate from binary spikes
|
||||||
@ -173,6 +209,39 @@ def power_spectrum(stimulus):
|
|||||||
freq, power = welch(rate, fs = 1/dt, nperseg = 2**16, noverlap = 2**15)
|
freq, power = welch(rate, fs = 1/dt, nperseg = 2**16, noverlap = 2**15)
|
||||||
return freq, power
|
return freq, power
|
||||||
|
|
||||||
|
def prepare_harmonics(frequencies, categories, num_harmonics, colors):
|
||||||
|
"""
|
||||||
|
Prepare harmonic frequencies and assign colors based on categories.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
frequencies : list
|
||||||
|
Base frequencies to generate harmonics.
|
||||||
|
categories : list
|
||||||
|
Corresponding categories for the base frequencies.
|
||||||
|
num_harmonics : list
|
||||||
|
Number of harmonics for each base frequency.
|
||||||
|
colors : list
|
||||||
|
List of colors corresponding to the categories.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
points : list
|
||||||
|
A flat list of harmonic frequencies.
|
||||||
|
color_mapping : dict
|
||||||
|
A dictionary mapping each category to its corresponding color.
|
||||||
|
points_categories : dict
|
||||||
|
A mapping of categories to their harmonic frequencies.
|
||||||
|
"""
|
||||||
|
points_categories = {}
|
||||||
|
for idx, (freq, category) in enumerate(zip(frequencies, categories)):
|
||||||
|
points_categories[category] = [freq * (i + 1) for i in range(num_harmonics[idx])]
|
||||||
|
|
||||||
|
points = [p for harmonics in points_categories.values() for p in harmonics]
|
||||||
|
color_mapping = {category: colors[idx] for idx, category in enumerate(categories)}
|
||||||
|
|
||||||
|
return points, color_mapping, points_categories
|
||||||
|
|
||||||
def remove_poor(files):
|
def remove_poor(files):
|
||||||
"""
|
"""
|
||||||
Removes poor datasets from the set of files for analysis
|
Removes poor datasets from the set of files for analysis
|
||||||
|
Loading…
Reference in New Issue
Block a user