adding stuff

This commit is contained in:
wendtalexander 2023-01-26 10:02:58 +01:00
parent 7b74a7c024
commit c28c227291
7 changed files with 76 additions and 74 deletions

View File

@ -4,42 +4,29 @@ import matplotlib.pyplot as plt
from thunderfish import fakefish from thunderfish import fakefish
from modules.filters import bandpass_filter from modules.filters import bandpass_filter
from chirpdetection import instantaneos_frequency from modules.datahandling import instantaneous_frequency
from modules.simulations import create_chirp from modules.simulations import create_chirp
# create chirp
"""
time, signal, ampl, freq = create_chirp(
chirptimes=[0.05, 0.2501, 0.38734, 0.48332, 0.73434, 0.823424], )
# filter signal with bandpass_filter
signal = bandpass_filter(signal, 1/0.00001, 495, 505)
fig, axs = plt.subplots(2, 1, figsize=(10, 10))
axs[0].plot(np.arange(len(ampl)), ampl)
# plot instatneous frequency
baseline_freq_time, baseline_freq = instantaneos_frequency(signal, 1/0.00001)
axs[1].plot(baseline_freq_time[1:], baseline_freq[1:])
plt.close()
"""
# trying thunderfish fakefish chirp simulation --------------------------------- # trying thunderfish fakefish chirp simulation ---------------------------------
samplerate = 44100 samplerate = 44100
freq, ampl = fakefish.chirps(eodf=500, chirp_contrast=0.2) freq, ampl = fakefish.chirps(eodf=500, chirp_contrast=0.2)
data = fakefish.wavefish_eods(fish='Alepto', frequency=freq, phase0=3) data = fakefish.wavefish_eods(fish='Alepto', frequency=freq, phase0=3, samplerate=samplerate)
# filter signal with bandpass_filter # filter signal with bandpass_filter
data_filterd = bandpass_filter(data*ampl+1, samplerate, 0.01, 1.99) data_filterd = bandpass_filter(data*ampl+1, samplerate, 0.01, 1.99)
data_freq_time, data_freq, true_zero = instantaneos_frequency(data*ampl, samplerate) embed()
data_freq_time, data_freq = instantaneous_frequency(data, samplerate, 5)
fig, ax = plt.subplots(4, 1, figsize=(20 / 2.54, 12 / 2.54), sharex=True) fig, ax = plt.subplots(4, 1, figsize=(20 / 2.54, 12 / 2.54), sharex=True)
ax[0].plot(np.arange(len(data))/samplerate, data*ampl) ax[0].plot(np.arange(len(data))/samplerate, data*ampl)
ax[0].scatter(true_zero, np.zeros_like(true_zero), color='red') #ax[0].scatter(true_zero, np.zeros_like(true_zero), color='red')
ax[1].plot(np.arange(len(data_filterd))/samplerate, data_filterd) ax[1].plot(np.arange(len(data_filterd))/samplerate, data_filterd)
ax[2].plot(np.arange(len(freq))/samplerate, freq) ax[2].plot(np.arange(len(freq))/samplerate, freq)
ax[3].plot(data_freq_time[1:], data_freq[1:]) ax[3].plot(data_freq_time, data_freq)
plt.show() plt.show()

View File

@ -133,41 +133,45 @@ def get_chirp_freq(folder_name, Behavior, order_meta_df):
Behavior.freq[Behavior.ident == fish2_freq]) Behavior.freq[Behavior.ident == fish2_freq])
if winner == fish1: if winner == fish1:
if chirp_freq_fish1 > chirp_freq_fish2: # if chirp_freq_fish1 > chirp_freq_fish2:
freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2 # freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2
freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1 # freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1
elif chirp_freq_fish1 < chirp_freq_fish2: # elif chirp_freq_fish1 < chirp_freq_fish2:
freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2 # freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2
freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1 # freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1
else: # else:
freq_diff_higher = np.nan # freq_diff_higher = np.nan
freq_diff_lower = np.nan # freq_diff_lower = np.nan
winner_fish_id = np.nan # winner_fish_id = np.nan
loser_fish_id = np.nan # loser_fish_id = np.nan
winner_fish_id = folder_row['rec_id1'].values[0] winner_fish_id = folder_row['rec_id1'].values[0]
winner_fish_freq = chirp_freq_fish1
loser_fish_id = folder_row['rec_id2'].values[0] loser_fish_id = folder_row['rec_id2'].values[0]
loser_fish_freq = chirp_freq_fish2
elif winner == fish2: elif winner == fish2:
if chirp_freq_fish2 > chirp_freq_fish1: # if chirp_freq_fish2 > chirp_freq_fish1:
freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1 # freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1
freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2 # freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2
elif chirp_freq_fish2 < chirp_freq_fish1: # elif chirp_freq_fish2 < chirp_freq_fish1:
freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1 # freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1
freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2 # freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2
else: # else:
freq_diff_higher = np.nan # freq_diff_higher = np.nan
freq_diff_lower = np.nan # freq_diff_lower = np.nan
winner_fish_id = np.nan # winner_fish_id = np.nan
loser_fish_id = np.nan # loser_fish_id = np.nan
winner_fish_id = folder_row['rec_id2'].values[0] winner_fish_id = folder_row['rec_id2'].values[0]
winner_fish_freq = chirp_freq_fish2
loser_fish_id = folder_row['rec_id1'].values[0] loser_fish_id = folder_row['rec_id1'].values[0]
loser_fish_freq = chirp_freq_fish1
else: else:
freq_diff_higher = np.nan winner_fish_freq = np.nan
freq_diff_lower = np.nan loser_fish_freq = np.nan
winner_fish_id = np.nan winner_fish_id = np.nan
loser_fish_id = np.nan loser_fish_id = np.nan
@ -176,7 +180,7 @@ def get_chirp_freq(folder_name, Behavior, order_meta_df):
chirp_loser = len( chirp_loser = len(
Behavior.chirps[Behavior.chirps_ids == loser_fish_id]) Behavior.chirps[Behavior.chirps_ids == loser_fish_id])
return freq_diff_higher, chirp_winner, freq_diff_lower, chirp_loser return winner_fish_freq, chirp_winner, loser_fish_freq, chirp_loser
def main(datapath: str): def main(datapath: str):
@ -229,11 +233,11 @@ def main(datapath: str):
size_diff_bigger, chirp_winner, size_diff_smaller, chirp_loser = get_chirp_size( size_diff_bigger, chirp_winner, size_diff_smaller, chirp_loser = get_chirp_size(
foldername, bh, order_meta_df, id_meta_df) foldername, bh, order_meta_df, id_meta_df)
freq_diff_higher, chirp_freq_winner, freq_diff_lower, chirp_freq_loser = get_chirp_freq( freq_winner, chirp_freq_winner, freq_loser, chirp_freq_loser = get_chirp_freq(
foldername, bh, order_meta_df) foldername, bh, order_meta_df)
freq_diffs_higher.append(freq_diff_higher) freq_diffs_higher.append(freq_winner)
freq_diffs_lower.append(freq_diff_lower) freq_diffs_lower.append(freq_loser)
freq_chirps_winner.append(chirp_freq_winner) freq_chirps_winner.append(chirp_freq_winner)
freq_chirps_loser.append(chirp_freq_loser) freq_chirps_loser.append(chirp_freq_loser)
@ -247,15 +251,15 @@ def main(datapath: str):
size_winner_pearsonr = pearsonr(size_diffs_winner, size_chirps_winner) size_winner_pearsonr = pearsonr(size_diffs_winner, size_chirps_winner)
size_loser_pearsonr = pearsonr(size_diffs_loser, size_chirps_loser) size_loser_pearsonr = pearsonr(size_diffs_loser, size_chirps_loser)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=( fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(
13*ps.cm, 10*ps.cm), sharey=True) 21*ps.cm, 10*ps.cm), width_ratios=[1, 0.8, 0.8], sharey=True)
plt.subplots_adjust(left=0.098, right=0.945, top=0.94, wspace=0.343) plt.subplots_adjust(left=0.11, right=0.948, top=0.905, wspace=0.343, bottom=0.145)
scatterwinner = 1.15 scatterwinner = 1.15
scatterloser = 1.85 scatterloser = 1.85
chirps_winner = np.asarray(chirps_winner)[~np.isnan(chirps_winner)] chirps_winner = np.asarray(chirps_winner)[~np.isnan(chirps_winner)]
chirps_loser = np.asarray(chirps_loser)[~np.isnan(chirps_loser)] chirps_loser = np.asarray(chirps_loser)[~np.isnan(chirps_loser)]
stat = wilcoxon(chirps_winner, chirps_loser) stat = wilcoxon(chirps_winner, chirps_loser)
print(stat) print(stat)
bplot1 = ax1.boxplot(chirps_winner, positions=[ bplot1 = ax1.boxplot(chirps_winner, positions=[
@ -268,14 +272,15 @@ def main(datapath: str):
ax1.scatter(np.ones(len(chirps_loser)) * ax1.scatter(np.ones(len(chirps_loser)) *
scatterloser, chirps_loser, color=ps.orange) scatterloser, chirps_loser, color=ps.orange)
ax1.set_xticklabels(['winner', 'loser']) ax1.set_xticklabels(['winner', 'loser'])
ax1.text(0.1, 0.9, f'n = {len(chirps_winner)}',
transform=ax1.transAxes, color=ps.white) ax1.text(1, 2000, f'{len(chirps_winner)}', color='gray')
ax1.text(1.8, 2000, f'{len(chirps_loser)}', color='gray')
for w, l in zip(chirps_winner, chirps_loser): for w, l in zip(chirps_winner, chirps_loser):
ax1.plot([scatterwinner, scatterloser], [w, l], ax1.plot([scatterwinner, scatterloser], [w, l],
color=ps.white, alpha=1, linewidth=0.5) color=ps.white, alpha=1, linewidth=0.5)
ax1.set_ylabel('chirps [n]', color=ps.white) ax1.set_ylabel('chirpcount', color=ps.white)
ax1.set_xlabel('outcome', color=ps.white) ax1.set_xlabel('outcome', color=ps.white)
colors1 = ps.red colors1 = ps.red
ps.set_boxplot_color(bplot1, colors1) ps.set_boxplot_color(bplot1, colors1)
@ -283,17 +288,24 @@ def main(datapath: str):
ps.set_boxplot_color(bplot2, colors1) ps.set_boxplot_color(bplot2, colors1)
ax2.scatter(size_diffs_winner, size_chirps_winner, ax2.scatter(size_diffs_winner, size_chirps_winner,
color=ps.red, label='winner') color=ps.red, label=f'winner')
ax2.scatter(size_diffs_loser, size_chirps_loser, ax2.scatter(size_diffs_loser, size_chirps_loser,
color=ps.orange, label='loser') color=ps.orange, label='loser')
ax2.text(-1, 2000, f'{len(size_chirps_winner)}', color= 'gray')
ax2.text(1, 2000, f'{len(size_chirps_loser)}', color= 'gray')
ax2.set_xlabel('size difference [cm]') ax2.set_xlabel('size difference [cm]')
# ax2.set_xticks(np.arange(-10, 10.1, 2)) # ax2.set_xticks(np.arange(-10, 10.1, 2))
ax3.scatter(freq_diffs_higher, freq_chirps_winner, color=ps.red)
ax3.scatter(freq_diffs_lower, freq_chirps_loser, color=ps.orange)
ax3.text(600, 2000, f'n = {len(freq_chirps_winner)}', color='gray')
ax3.text(650, 2000, f'{len(freq_chirps_loser)}', color='gray')
ax3.set_xlabel('absolut frequency [Hz]')
handles, labels = ax2.get_legend_handles_labels() handles, labels = ax2.get_legend_handles_labels()
fig.legend(handles, labels, loc='upper center', ncol=2) fig.legend(handles, labels, loc='upper center', ncol=2)
plt.subplots_adjust(left=0.162, right=0.97, top=0.85, bottom=0.176)
# pearson r # pearson r
plt.savefig('../poster/figs/chirps_winner_loser.pdf') plt.savefig('../poster/figs/chirps_winner_loser.pdf')
plt.show() plt.show()

View File

@ -57,7 +57,7 @@ def main(datapath: str):
time_chasing_percent = (time_chasing/(3*60*60))*100 time_chasing_percent = (time_chasing/(3*60*60))*100
chirps_chasing = np.asarray(flatten(chirps_in_chasings)) chirps_chasing = np.asarray(flatten(chirps_in_chasings))
chirps_chasing_new = chirps_chasing[chirps_chasing<3*60*60] chirps_chasing_new = chirps_chasing[chirps_chasing<3*60*60]
chirps_percent = (len(chirps_chasing_new)/len(bh.chirps))*100 chirps_percent = (len(chirps_chasing_new)/len(bh.chirps[bh.chirps<3*60*60]))*100
time_precents.append(time_chasing_percent) time_precents.append(time_chasing_percent)
chirps_percents.append(chirps_percent) chirps_percents.append(chirps_percent)
@ -69,6 +69,9 @@ def main(datapath: str):
ax.set_ylabel('Percent') ax.set_ylabel('Percent')
ax.scatter(np.ones(len(time_precents))*1.25, time_precents, color=ps.white) ax.scatter(np.ones(len(time_precents))*1.25, time_precents, color=ps.white)
ax.scatter(np.ones(len(chirps_percents))*1.75, chirps_percents, color=ps.white) ax.scatter(np.ones(len(chirps_percents))*1.75, chirps_percents, color=ps.white)
for i in range(len(time_precents)):
ax.plot([1.25, 1.75], [time_precents[i], chirps_percents[i]], color=ps.white)
ax.text(0.99, 0.99, f'{len(time_precents)} fish', transform=ax.transAxes)
plt.savefig('../poster/figs/chirps_in_chasing.pdf') plt.savefig('../poster/figs/chirps_in_chasing.pdf')
plt.show() plt.show()

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -54,19 +54,19 @@ blockverticalspace=2mm, colspace=20mm, subcolspace=0mm]{tikzposter} %Default val
\end{itemize} \end{itemize}
\noindent \noindent
\begin{minipage}[c]{0.7\linewidth}
\begin{tikzfigure}[] \begin{tikzfigure}[]
\label{fig:example_b} \label{fig:example_b}
\includegraphics[width=\linewidth]{figs/chirps_winner_loser.pdf} \includegraphics[width=\linewidth]{figs/chirps_winner_loser.pdf}
\end{tikzfigure} \end{tikzfigure}
\end{minipage} % no space if you would like to put them side by side
\begin{minipage}[c]{0.2\linewidth}
\begin{itemize} \begin{itemize}
\setlength\itemsep{0.5em} \setlength\itemsep{0.5em}
\item Fish who won the competition chirped more often than the fish who lost. \item Fish who won the competition chirped more often than the fish who lost.
\item \item
\end{itemize} \end{itemize}
\end{minipage}
} }
\myblock[TranspBlock]{Interactions at modulations}{ \myblock[TranspBlock]{Interactions at modulations}{