diff --git a/code/chirp_sim.py b/code/chirp_sim.py index cc30fd8..5433b36 100644 --- a/code/chirp_sim.py +++ b/code/chirp_sim.py @@ -4,42 +4,29 @@ import matplotlib.pyplot as plt from thunderfish import fakefish from modules.filters import bandpass_filter -from chirpdetection import instantaneos_frequency +from modules.datahandling import instantaneous_frequency 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 --------------------------------- samplerate = 44100 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 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) 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[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() diff --git a/code/plot_chirp_size.py b/code/plot_chirp_size.py index bcd36f4..7b875e1 100644 --- a/code/plot_chirp_size.py +++ b/code/plot_chirp_size.py @@ -133,41 +133,45 @@ def get_chirp_freq(folder_name, Behavior, order_meta_df): Behavior.freq[Behavior.ident == fish2_freq]) if winner == fish1: - if chirp_freq_fish1 > chirp_freq_fish2: - freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2 - freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1 - - elif chirp_freq_fish1 < chirp_freq_fish2: - freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2 - freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1 - else: - freq_diff_higher = np.nan - freq_diff_lower = np.nan - winner_fish_id = np.nan - loser_fish_id = np.nan + # if chirp_freq_fish1 > chirp_freq_fish2: + # freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2 + # freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1 + + # elif chirp_freq_fish1 < chirp_freq_fish2: + # freq_diff_higher = chirp_freq_fish1 - chirp_freq_fish2 + # freq_diff_lower = chirp_freq_fish2 - chirp_freq_fish1 + # else: + # freq_diff_higher = np.nan + # freq_diff_lower = np.nan + # winner_fish_id = np.nan + # loser_fish_id = np.nan 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_freq = chirp_freq_fish2 elif winner == fish2: - if chirp_freq_fish2 > chirp_freq_fish1: - freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1 - freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2 - - elif chirp_freq_fish2 < chirp_freq_fish1: - freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1 - freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2 - else: - freq_diff_higher = np.nan - freq_diff_lower = np.nan - winner_fish_id = np.nan - loser_fish_id = np.nan + # if chirp_freq_fish2 > chirp_freq_fish1: + # freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1 + # freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2 + + # elif chirp_freq_fish2 < chirp_freq_fish1: + # freq_diff_higher = chirp_freq_fish2 - chirp_freq_fish1 + # freq_diff_lower = chirp_freq_fish1 - chirp_freq_fish2 + # else: + # freq_diff_higher = np.nan + # freq_diff_lower = np.nan + # winner_fish_id = np.nan + # loser_fish_id = np.nan 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_freq = chirp_freq_fish1 else: - freq_diff_higher = np.nan - freq_diff_lower = np.nan + winner_fish_freq = np.nan + loser_fish_freq = np.nan winner_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( 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): @@ -229,11 +233,11 @@ def main(datapath: str): size_diff_bigger, chirp_winner, size_diff_smaller, chirp_loser = get_chirp_size( 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) - freq_diffs_higher.append(freq_diff_higher) - freq_diffs_lower.append(freq_diff_lower) + freq_diffs_higher.append(freq_winner) + freq_diffs_lower.append(freq_loser) freq_chirps_winner.append(chirp_freq_winner) 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_loser_pearsonr = pearsonr(size_diffs_loser, size_chirps_loser) - fig, (ax1, ax2) = plt.subplots(1, 2, figsize=( - 13*ps.cm, 10*ps.cm), sharey=True) - plt.subplots_adjust(left=0.098, right=0.945, top=0.94, wspace=0.343) + fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=( + 21*ps.cm, 10*ps.cm), width_ratios=[1, 0.8, 0.8], sharey=True) + plt.subplots_adjust(left=0.11, right=0.948, top=0.905, wspace=0.343, bottom=0.145) scatterwinner = 1.15 scatterloser = 1.85 chirps_winner = np.asarray(chirps_winner)[~np.isnan(chirps_winner)] chirps_loser = np.asarray(chirps_loser)[~np.isnan(chirps_loser)] - stat = wilcoxon(chirps_winner, chirps_loser) + stat = wilcoxon(chirps_winner, chirps_loser) print(stat) bplot1 = ax1.boxplot(chirps_winner, positions=[ @@ -268,14 +272,15 @@ def main(datapath: str): ax1.scatter(np.ones(len(chirps_loser)) * scatterloser, chirps_loser, color=ps.orange) 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): ax1.plot([scatterwinner, scatterloser], [w, l], color=ps.white, alpha=1, linewidth=0.5) - ax1.set_ylabel('chirps [n]', color=ps.white) - ax1.set_xlabel('outcome', color=ps.white) + ax1.set_ylabel('chirpcount', color=ps.white) + ax1.set_xlabel('outcome', color=ps.white) colors1 = ps.red ps.set_boxplot_color(bplot1, colors1) @@ -283,17 +288,24 @@ def main(datapath: str): ps.set_boxplot_color(bplot2, colors1) 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, 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_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() 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 plt.savefig('../poster/figs/chirps_winner_loser.pdf') plt.show() diff --git a/code/plot_chirps_in_chasing.py b/code/plot_chirps_in_chasing.py index 98894d8..9121583 100644 --- a/code/plot_chirps_in_chasing.py +++ b/code/plot_chirps_in_chasing.py @@ -57,7 +57,7 @@ def main(datapath: str): time_chasing_percent = (time_chasing/(3*60*60))*100 chirps_chasing = np.asarray(flatten(chirps_in_chasings)) 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) chirps_percents.append(chirps_percent) @@ -69,6 +69,9 @@ def main(datapath: str): ax.set_ylabel('Percent') 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) + 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.show() diff --git a/poster/figs/chirps_in_chasing.pdf b/poster/figs/chirps_in_chasing.pdf index 836ca8e..9cc23de 100644 Binary files a/poster/figs/chirps_in_chasing.pdf and b/poster/figs/chirps_in_chasing.pdf differ diff --git a/poster/figs/chirps_winner_loser.pdf b/poster/figs/chirps_winner_loser.pdf index 5650732..6fe8f31 100644 Binary files a/poster/figs/chirps_winner_loser.pdf and b/poster/figs/chirps_winner_loser.pdf differ diff --git a/poster/main.pdf b/poster/main.pdf index 0ec415f..a2a57f0 100644 Binary files a/poster/main.pdf and b/poster/main.pdf differ diff --git a/poster/main.tex b/poster/main.tex index c4f1818..dd7e0e1 100644 --- a/poster/main.tex +++ b/poster/main.tex @@ -54,19 +54,19 @@ blockverticalspace=2mm, colspace=20mm, subcolspace=0mm]{tikzposter} %Default val \end{itemize} \noindent - \begin{minipage}[c]{0.7\linewidth} - \begin{tikzfigure}[] - \label{fig:example_b} - \includegraphics[width=\linewidth]{figs/chirps_winner_loser.pdf} - \end{tikzfigure} - \end{minipage} % no space if you would like to put them side by side - \begin{minipage}[c]{0.2\linewidth} - \begin{itemize} - \setlength\itemsep{0.5em} - \item Fish who won the competition chirped more often than the fish who lost. - \item - \end{itemize} - \end{minipage} + + \begin{tikzfigure}[] + \label{fig:example_b} + \includegraphics[width=\linewidth]{figs/chirps_winner_loser.pdf} + \end{tikzfigure} + + + \begin{itemize} + \setlength\itemsep{0.5em} + \item Fish who won the competition chirped more often than the fish who lost. + \item + \end{itemize} + } \myblock[TranspBlock]{Interactions at modulations}{