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 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()

View File

@ -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()

View File

@ -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()

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}
\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}{