???
This commit is contained in:
parent
bbff7fd80c
commit
1de3e944c5
@ -18,47 +18,62 @@ logger = makeLogger(__name__)
|
|||||||
ps = PlotStyle()
|
ps = PlotStyle()
|
||||||
|
|
||||||
|
|
||||||
def jackknife(data, nresamples, subsetsize, kde_time, kernel_width):
|
def bootstrap(data, nresamples, kde_time, kernel_width, event_times, time_before, time_after):
|
||||||
|
|
||||||
if len(data) == 0:
|
bootstrapped_kdes = []
|
||||||
return []
|
data = data[data <= 3*60*60] # only night time
|
||||||
|
|
||||||
jackknifed_kdes = []
|
# diff_data = np.diff(np.sort(data), prepend=0)
|
||||||
data = np.sort(data)
|
# if len(data) != 0:
|
||||||
subsetsize = int(np.round(len(data)*subsetsize))
|
# mean_chirprate = (len(data) - 1) / (data[-1] - data[0])
|
||||||
|
|
||||||
for n in range(nresamples):
|
for i in tqdm(range(nresamples)):
|
||||||
|
|
||||||
subset = np.random.choice(data, subsetsize, replace=False)
|
# np.random.shuffle(diff_data)
|
||||||
subset_kde = acausal_kde1d(subset, time=kde_time, width=kernel_width)
|
|
||||||
jackknifed_kdes.append(subset_kde)
|
|
||||||
|
|
||||||
return jackknifed_kdes
|
# bootstrapped_data = np.cumsum(diff_data)
|
||||||
|
bootstrapped_data = data + np.random.randn(len(data)) * 10
|
||||||
|
|
||||||
|
bootstrap_data_centered = center_chirps(
|
||||||
|
bootstrapped_data, event_times, time_before, time_after)
|
||||||
|
|
||||||
def bootstrap(data, nresamples, kde_time, kernel_width, event_times, time_before, time_after):
|
bootstrapped_kde = acausal_kde1d(
|
||||||
|
bootstrap_data_centered, time=kde_time, width=kernel_width)
|
||||||
|
|
||||||
bootstrapped_kdes = []
|
# bootstrapped_kdes = list(np.asarray(
|
||||||
data = data[data <= 3*60*60] # only night time
|
# bootstrapped_kdes) / len(event_times))
|
||||||
|
|
||||||
|
bootstrapped_kdes.append(bootstrapped_kde)
|
||||||
|
|
||||||
|
return bootstrapped_kdes
|
||||||
|
|
||||||
if len(data) == 0:
|
|
||||||
logger.info('No data for bootstrap, added zeros')
|
|
||||||
return [np.zeros_like(kde_time) for i in range(nresamples)]
|
|
||||||
|
|
||||||
diff_data = np.diff(np.sort(data), prepend=np.sort(data)[0])
|
def jackknife(data, nresamples, subsetsize, kde_time, kernel_width, event_times, time_before, time_after):
|
||||||
|
|
||||||
|
jackknife_kdes = []
|
||||||
|
data = data[data <= 3*60*60] # only night time
|
||||||
|
subsetsize = int(len(data) * subsetsize)
|
||||||
|
|
||||||
|
diff_data = np.diff(np.sort(data), prepend=0)
|
||||||
|
|
||||||
for i in tqdm(range(nresamples)):
|
for i in tqdm(range(nresamples)):
|
||||||
|
|
||||||
np.random.shuffle(diff_data)
|
bootstrapped_data = np.random.sample(data, subsetsize, replace=False)
|
||||||
|
|
||||||
bootstrapped_data = np.cumsum(diff_data)
|
bootstrapped_data = np.cumsum(diff_data)
|
||||||
|
|
||||||
bootstrap_data_centered = center_chirps(
|
bootstrap_data_centered = center_chirps(
|
||||||
bootstrapped_data, event_times, time_before, time_after)
|
bootstrapped_data, event_times, time_before, time_after)
|
||||||
|
|
||||||
bootstrapped_kde = acausal_kde1d(
|
bootstrapped_kde = acausal_kde1d(
|
||||||
bootstrap_data_centered, time=kde_time, width=kernel_width)
|
bootstrap_data_centered, time=kde_time, width=kernel_width)
|
||||||
|
|
||||||
bootstrapped_kdes.append(bootstrapped_kde)
|
# bootstrapped_kdes = list(np.asarray(
|
||||||
|
# bootstrapped_kdes) / len(event_times))
|
||||||
|
|
||||||
return bootstrapped_kdes
|
jackknife_kdes.append(bootstrapped_kde)
|
||||||
|
|
||||||
|
return jackknife_kdes
|
||||||
|
|
||||||
|
|
||||||
def get_chirp_winner_loser(folder_name, Behavior, order_meta_df):
|
def get_chirp_winner_loser(folder_name, Behavior, order_meta_df):
|
||||||
@ -88,7 +103,7 @@ def get_chirp_winner_loser(folder_name, Behavior, order_meta_df):
|
|||||||
def main(dataroot):
|
def main(dataroot):
|
||||||
|
|
||||||
foldernames, _ = get_valid_datasets(dataroot)
|
foldernames, _ = get_valid_datasets(dataroot)
|
||||||
plot_all = False
|
plot_all = True
|
||||||
time_before = 60
|
time_before = 60
|
||||||
time_after = 60
|
time_after = 60
|
||||||
dt = 0.001
|
dt = 0.001
|
||||||
@ -134,6 +149,9 @@ def main(dataroot):
|
|||||||
bh = Behavior(folder)
|
bh = Behavior(folder)
|
||||||
category, timestamps = correct_chasing_events(bh.behavior, bh.start_s)
|
category, timestamps = correct_chasing_events(bh.behavior, bh.start_s)
|
||||||
|
|
||||||
|
category = category[timestamps < 3*60*60] # only night time
|
||||||
|
timestamps = timestamps[timestamps < 3*60*60] # only night time
|
||||||
|
|
||||||
winner, loser = get_chirp_winner_loser(folder, bh, meta)
|
winner, loser = get_chirp_winner_loser(folder, bh, meta)
|
||||||
|
|
||||||
if winner is None:
|
if winner is None:
|
||||||
@ -162,6 +180,8 @@ def main(dataroot):
|
|||||||
loser, physicals, time_before, time_after))
|
loser, physicals, time_before, time_after))
|
||||||
|
|
||||||
# bootstrap
|
# bootstrap
|
||||||
|
# chirps = [winner, winner, winner, loser, loser, loser]
|
||||||
|
|
||||||
winner_onsets_boot.append(bootstrap(
|
winner_onsets_boot.append(bootstrap(
|
||||||
winner,
|
winner,
|
||||||
nresamples=nbootstraps,
|
nresamples=nbootstraps,
|
||||||
@ -240,80 +260,80 @@ def main(dataroot):
|
|||||||
ax[1, 2].plot(kde_time, loser_physicals_conv/len(physicals))
|
ax[1, 2].plot(kde_time, loser_physicals_conv/len(physicals))
|
||||||
|
|
||||||
# # plot bootstrap lines
|
# # plot bootstrap lines
|
||||||
# for kde in winner_onsets_boot[-1]:
|
for kde in winner_onsets_boot[-1]:
|
||||||
# ax[0, 0].plot(kde_time, kde/len(offsets),
|
ax[0, 0].plot(kde_time, kde/len(onsets),
|
||||||
# color='gray')
|
color='gray')
|
||||||
# for kde in winner_offsets_boot[-1]:
|
for kde in winner_offsets_boot[-1]:
|
||||||
# ax[0, 1].plot(kde_time, kde/len(offsets),
|
ax[0, 1].plot(kde_time, kde/len(offsets),
|
||||||
# color='gray')
|
color='gray')
|
||||||
# for kde in winner_physicals_boot[-1]:
|
for kde in winner_physicals_boot[-1]:
|
||||||
# ax[0, 2].plot(kde_time, kde/len(offsets),
|
ax[0, 2].plot(kde_time, kde/len(physicals),
|
||||||
# color='gray')
|
color='gray')
|
||||||
# for kde in loser_onsets_boot[-1]:
|
for kde in loser_onsets_boot[-1]:
|
||||||
# ax[1, 0].plot(kde_time, kde/len(offsets),
|
ax[1, 0].plot(kde_time, kde/len(onsets),
|
||||||
# color='gray')
|
color='gray')
|
||||||
# for kde in loser_offsets_boot[-1]:
|
for kde in loser_offsets_boot[-1]:
|
||||||
# ax[1, 1].plot(kde_time, kde/len(offsets),
|
ax[1, 1].plot(kde_time, kde/len(offsets),
|
||||||
# color='gray')
|
color='gray')
|
||||||
# for kde in loser_physicals_boot[-1]:
|
for kde in loser_physicals_boot[-1]:
|
||||||
# ax[1, 2].plot(kde_time, kde/len(offsets),
|
ax[1, 2].plot(kde_time, kde/len(physicals),
|
||||||
# color='gray')
|
color='gray')
|
||||||
|
|
||||||
# plot bootstrap percentiles
|
# plot bootstrap percentiles
|
||||||
ax[0, 0].fill_between(
|
# ax[0, 0].fill_between(
|
||||||
kde_time,
|
# kde_time,
|
||||||
np.percentile(winner_onsets_boot[-1], 5, axis=0)/len(onsets),
|
# np.percentile(winner_onsets_boot[-1], 5, axis=0),
|
||||||
np.percentile(winner_onsets_boot[-1], 95, axis=0)/len(onsets),
|
# np.percentile(winner_onsets_boot[-1], 95, axis=0),
|
||||||
color='gray',
|
# color='gray',
|
||||||
alpha=0.5)
|
# alpha=0.5)
|
||||||
ax[0, 1].fill_between(
|
# ax[0, 1].fill_between(
|
||||||
kde_time,
|
# kde_time,
|
||||||
np.percentile(winner_offsets_boot[-1], 5, axis=0)/len(offsets),
|
# np.percentile(winner_offsets_boot[-1], 5, axis=0),
|
||||||
np.percentile(
|
# np.percentile(
|
||||||
winner_offsets_boot[-1], 95, axis=0)/len(offsets),
|
# winner_offsets_boot[-1], 95, axis=0),
|
||||||
color='gray',
|
# color='gray',
|
||||||
alpha=0.5)
|
# alpha=0.5)
|
||||||
ax[0, 2].fill_between(
|
# ax[0, 2].fill_between(
|
||||||
kde_time,
|
# kde_time,
|
||||||
np.percentile(
|
# np.percentile(
|
||||||
winner_physicals_boot[-1], 5, axis=0)/len(physicals),
|
# winner_physicals_boot[-1], 5, axis=0),
|
||||||
np.percentile(
|
# np.percentile(
|
||||||
winner_physicals_boot[-1], 95, axis=0)/len(physicals),
|
# winner_physicals_boot[-1], 95, axis=0),
|
||||||
color='gray',
|
# color='gray',
|
||||||
alpha=0.5)
|
# alpha=0.5)
|
||||||
ax[1, 0].fill_between(
|
# ax[1, 0].fill_between(
|
||||||
kde_time,
|
# kde_time,
|
||||||
np.percentile(loser_onsets_boot[-1], 5, axis=0)/len(onsets),
|
# np.percentile(loser_onsets_boot[-1], 5, axis=0),
|
||||||
np.percentile(loser_onsets_boot[-1], 95, axis=0)/len(onsets),
|
# np.percentile(loser_onsets_boot[-1], 95, axis=0),
|
||||||
color='gray',
|
# color='gray',
|
||||||
alpha=0.5)
|
# alpha=0.5)
|
||||||
ax[1, 1].fill_between(
|
# ax[1, 1].fill_between(
|
||||||
kde_time,
|
# kde_time,
|
||||||
np.percentile(loser_offsets_boot[-1], 5, axis=0)/len(offsets),
|
# np.percentile(loser_offsets_boot[-1], 5, axis=0),
|
||||||
np.percentile(loser_offsets_boot[-1], 95, axis=0)/len(offsets),
|
# np.percentile(loser_offsets_boot[-1], 95, axis=0),
|
||||||
color='gray',
|
# color='gray',
|
||||||
alpha=0.5)
|
# alpha=0.5)
|
||||||
ax[1, 2].fill_between(
|
# ax[1, 2].fill_between(
|
||||||
kde_time,
|
# kde_time,
|
||||||
np.percentile(
|
# np.percentile(
|
||||||
loser_physicals_boot[-1], 5, axis=0)/len(physicals),
|
# loser_physicals_boot[-1], 5, axis=0),
|
||||||
np.percentile(
|
# np.percentile(
|
||||||
loser_physicals_boot[-1], 95, axis=0)/len(physicals),
|
# loser_physicals_boot[-1], 95, axis=0),
|
||||||
color='gray',
|
# color='gray',
|
||||||
alpha=0.5)
|
# alpha=0.5)
|
||||||
|
|
||||||
ax[0, 0].plot(kde_time, np.median(winner_onsets_boot[-1], axis=0)/len(onsets),
|
# ax[0, 0].plot(kde_time, np.median(winner_onsets_boot[-1], axis=0),
|
||||||
color='black', linewidth=2)
|
# color='black', linewidth=2)
|
||||||
ax[0, 1].plot(kde_time, np.median(winner_offsets_boot[-1], axis=0)/len(offsets),
|
# ax[0, 1].plot(kde_time, np.median(winner_offsets_boot[-1], axis=0),
|
||||||
color='black', linewidth=2)
|
# color='black', linewidth=2)
|
||||||
ax[0, 2].plot(kde_time, np.median(winner_physicals_boot[-1], axis=0)/len(physicals),
|
# ax[0, 2].plot(kde_time, np.median(winner_physicals_boot[-1], axis=0),
|
||||||
color='black', linewidth=2)
|
# color='black', linewidth=2)
|
||||||
ax[1, 0].plot(kde_time, np.median(loser_onsets_boot[-1], axis=0)/len(onsets),
|
# ax[1, 0].plot(kde_time, np.median(loser_onsets_boot[-1], axis=0),
|
||||||
color='black', linewidth=2)
|
# color='black', linewidth=2)
|
||||||
ax[1, 1].plot(kde_time, np.median(loser_offsets_boot[-1], axis=0)/len(offsets),
|
# ax[1, 1].plot(kde_time, np.median(loser_offsets_boot[-1], axis=0),
|
||||||
color='black', linewidth=2)
|
# color='black', linewidth=2)
|
||||||
ax[1, 2].plot(kde_time, np.median(loser_physicals_boot[-1], axis=0)/len(physicals),
|
# ax[1, 2].plot(kde_time, np.median(loser_physicals_boot[-1], axis=0),
|
||||||
color='black', linewidth=2)
|
# color='black', linewidth=2)
|
||||||
|
|
||||||
ax[0, 0].set_xlim(-30, 30)
|
ax[0, 0].set_xlim(-30, 30)
|
||||||
plt.show()
|
plt.show()
|
||||||
@ -345,20 +365,18 @@ def main(dataroot):
|
|||||||
loser_offsets_conv = loser_offsets_conv / offset_count
|
loser_offsets_conv = loser_offsets_conv / offset_count
|
||||||
loser_physicals_conv = loser_physicals_conv / physical_count
|
loser_physicals_conv = loser_physicals_conv / physical_count
|
||||||
|
|
||||||
embed()
|
|
||||||
|
|
||||||
winner_onsets_boot = np.concatenate(
|
winner_onsets_boot = np.concatenate(
|
||||||
winner_onsets_boot) / onset_count
|
winner_onsets_boot)
|
||||||
winner_offsets_boot = np.concatenate(
|
winner_offsets_boot = np.concatenate(
|
||||||
winner_offsets_boot) / offset_count
|
winner_offsets_boot)
|
||||||
winner_physicals_boot = np.concatenate(
|
winner_physicals_boot = np.concatenate(
|
||||||
winner_physicals_boot) / physical_count
|
winner_physicals_boot)
|
||||||
loser_onsets_boot = np.concatenate(
|
loser_onsets_boot = np.concatenate(
|
||||||
loser_onsets_boot) / onset_count
|
loser_onsets_boot)
|
||||||
loser_offsets_boot = np.concatenate(
|
loser_offsets_boot = np.concatenate(
|
||||||
loser_offsets_boot) / offset_count
|
loser_offsets_boot)
|
||||||
loser_physicals_boot = np.concatenate(
|
loser_physicals_boot = np.concatenate(
|
||||||
loser_physicals_boot) / physical_count
|
loser_physicals_boot)
|
||||||
|
|
||||||
percs = [5, 50, 95]
|
percs = [5, 50, 95]
|
||||||
winner_onsets_boot_quarts = np.percentile(
|
winner_onsets_boot_quarts = np.percentile(
|
||||||
@ -378,52 +396,73 @@ def main(dataroot):
|
|||||||
21*ps.cm, 10*ps.cm), sharey=True, sharex=True)
|
21*ps.cm, 10*ps.cm), sharey=True, sharex=True)
|
||||||
|
|
||||||
ax[0, 0].plot(kde_time, winner_onsets_conv)
|
ax[0, 0].plot(kde_time, winner_onsets_conv)
|
||||||
|
ax[0, 1].plot(kde_time, winner_offsets_conv)
|
||||||
|
ax[0, 2].plot(kde_time, winner_physicals_conv)
|
||||||
|
ax[1, 0].plot(kde_time, loser_onsets_conv)
|
||||||
|
ax[1, 1].plot(kde_time, loser_offsets_conv)
|
||||||
|
ax[1, 2].plot(kde_time, loser_physicals_conv)
|
||||||
|
|
||||||
|
ax[0, 0].plot(kde_time, winner_onsets_boot_quarts[1], c=ps.black)
|
||||||
|
ax[0, 1].plot(kde_time, winner_offsets_boot_quarts[1], c=ps.black)
|
||||||
|
ax[0, 2].plot(kde_time, winner_physicals_boot_quarts[1], c=ps.black)
|
||||||
|
ax[1, 0].plot(kde_time, loser_onsets_boot_quarts[1], c=ps.black)
|
||||||
|
ax[1, 1].plot(kde_time, loser_offsets_boot_quarts[1], c=ps.black)
|
||||||
|
ax[1, 2].plot(kde_time, loser_physicals_boot_quarts[1], c=ps.black)
|
||||||
|
|
||||||
|
# for kde in winner_onsets_boot:
|
||||||
|
# ax[0, 0].plot(kde_time, kde,
|
||||||
|
# color='gray')
|
||||||
|
# for kde in winner_offsets_boot:
|
||||||
|
# ax[0, 1].plot(kde_time, kde,
|
||||||
|
# color='gray')
|
||||||
|
# for kde in winner_physicals_boot:
|
||||||
|
# ax[0, 2].plot(kde_time, kde,
|
||||||
|
# color='gray')
|
||||||
|
# for kde in loser_onsets_boot:
|
||||||
|
# ax[1, 0].plot(kde_time, kde,
|
||||||
|
# color='gray')
|
||||||
|
# for kde in loser_offsets_boot:
|
||||||
|
# ax[1, 1].plot(kde_time, kde,
|
||||||
|
# color='gray')
|
||||||
|
# for kde in loser_physicals_boot:
|
||||||
|
# ax[1, 2].plot(kde_time, kde,
|
||||||
|
# color='gray')
|
||||||
|
|
||||||
ax[0, 0].fill_between(kde_time,
|
ax[0, 0].fill_between(kde_time,
|
||||||
winner_onsets_boot_quarts[0],
|
winner_onsets_boot_quarts[0],
|
||||||
winner_onsets_boot_quarts[2],
|
winner_onsets_boot_quarts[2],
|
||||||
color=ps.gray,
|
color=ps.gray,
|
||||||
alpha=0.5)
|
alpha=0.5)
|
||||||
ax[0, 0].plot(kde_time, winner_onsets_boot_quarts[1], c=ps.black)
|
|
||||||
|
|
||||||
ax[0, 1].plot(kde_time, winner_offsets_conv)
|
|
||||||
ax[0, 1].fill_between(kde_time,
|
ax[0, 1].fill_between(kde_time,
|
||||||
winner_offsets_boot_quarts[0],
|
winner_offsets_boot_quarts[0],
|
||||||
winner_offsets_boot_quarts[2],
|
winner_offsets_boot_quarts[2],
|
||||||
color=ps.gray,
|
color=ps.gray,
|
||||||
alpha=0.5)
|
alpha=0.5)
|
||||||
ax[0, 1].plot(kde_time, winner_offsets_boot_quarts[1], c=ps.black)
|
|
||||||
|
|
||||||
ax[0, 2].plot(kde_time, winner_physicals_conv)
|
|
||||||
ax[0, 2].fill_between(kde_time,
|
ax[0, 2].fill_between(kde_time,
|
||||||
loser_physicals_boot_quarts[0],
|
loser_physicals_boot_quarts[0],
|
||||||
loser_physicals_boot_quarts[2],
|
loser_physicals_boot_quarts[2],
|
||||||
color=ps.gray,
|
color=ps.gray,
|
||||||
alpha=0.5)
|
alpha=0.5)
|
||||||
ax[0, 2].plot(kde_time, winner_physicals_boot_quarts[1], c=ps.black)
|
|
||||||
|
|
||||||
ax[1, 0].plot(kde_time, loser_onsets_conv)
|
|
||||||
ax[1, 0].fill_between(kde_time,
|
ax[1, 0].fill_between(kde_time,
|
||||||
loser_onsets_boot_quarts[0],
|
loser_onsets_boot_quarts[0],
|
||||||
loser_onsets_boot_quarts[2],
|
loser_onsets_boot_quarts[2],
|
||||||
color=ps.gray,
|
color=ps.gray,
|
||||||
alpha=0.5)
|
alpha=0.5)
|
||||||
ax[1, 0].plot(kde_time, loser_onsets_boot_quarts[1], c=ps.black)
|
|
||||||
|
|
||||||
ax[1, 1].plot(kde_time, loser_offsets_conv)
|
|
||||||
ax[1, 1].fill_between(kde_time,
|
ax[1, 1].fill_between(kde_time,
|
||||||
loser_offsets_boot_quarts[0],
|
loser_offsets_boot_quarts[0],
|
||||||
loser_offsets_boot_quarts[2],
|
loser_offsets_boot_quarts[2],
|
||||||
color=ps.gray,
|
color=ps.gray,
|
||||||
alpha=0.5)
|
alpha=0.5)
|
||||||
ax[1, 1].plot(kde_time, loser_offsets_boot_quarts[1], c=ps.black)
|
|
||||||
|
|
||||||
ax[1, 2].plot(kde_time, loser_physicals_conv)
|
|
||||||
ax[1, 2].fill_between(kde_time,
|
ax[1, 2].fill_between(kde_time,
|
||||||
loser_physicals_boot_quarts[0],
|
loser_physicals_boot_quarts[0],
|
||||||
loser_physicals_boot_quarts[2],
|
loser_physicals_boot_quarts[2],
|
||||||
color=ps.gray,
|
color=ps.gray,
|
||||||
alpha=0.5)
|
alpha=0.5)
|
||||||
ax[1, 2].plot(kde_time, loser_physicals_boot_quarts[1], c=ps.black)
|
|
||||||
|
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
|
BIN
poster/figs/algorithm1.pdf
Normal file
BIN
poster/figs/algorithm1.pdf
Normal file
Binary file not shown.
BIN
poster/figs/efishlogo.pdf
Normal file
BIN
poster/figs/efishlogo.pdf
Normal file
Binary file not shown.
BIN
poster/main.pdf
BIN
poster/main.pdf
Binary file not shown.
@ -7,7 +7,7 @@ blockverticalspace=2mm, colspace=20mm, subcolspace=0mm]{tikzposter} %Default val
|
|||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\renewcommand{\baselinestretch}{1}
|
\renewcommand{\baselinestretch}{1}
|
||||||
\title{\parbox{1500pt}{Detection of transient communication signals in weakly electric fish}}
|
\title{\parbox{1500pt}{Bypassing time-frequency uncertainty in the detection of transient communication signals in weakly electric fish}}
|
||||||
\author{Sina Prause, Alexander Wendt, and Patrick Weygoldt}
|
\author{Sina Prause, Alexander Wendt, and Patrick Weygoldt}
|
||||||
\institute{Supervised by Till Raab \& Jan Benda, Neuroethology Lab, University of Tuebingen}
|
\institute{Supervised by Till Raab \& Jan Benda, Neuroethology Lab, University of Tuebingen}
|
||||||
\usetitlestyle[]{sampletitle}
|
\usetitlestyle[]{sampletitle}
|
||||||
@ -16,22 +16,25 @@ blockverticalspace=2mm, colspace=20mm, subcolspace=0mm]{tikzposter} %Default val
|
|||||||
|
|
||||||
\begin{columns}
|
\begin{columns}
|
||||||
\column{0.4}
|
\column{0.4}
|
||||||
\myblock[TranspBlock]{Introduction}{
|
\myblock[GrayBlock]{Introduction}{
|
||||||
The time-frequency tradeoff makes reliable signal detecion and simultaneous
|
The time-frequency tradeoff makes reliable signal detecion and simultaneous
|
||||||
sender identification of freely interacting individuals impossible.
|
sender identification by simple Fourier decomposition in freely interacting
|
||||||
This profoundly limits our current understanding of chirps to experiments
|
weakly electric fish impossible. This profoundly limits our current
|
||||||
|
understanding of chirps to experiments
|
||||||
with single - or physically separated - individuals.
|
with single - or physically separated - individuals.
|
||||||
\begin{tikzfigure}[]
|
% \begin{tikzfigure}[]
|
||||||
\label{griddrawing}
|
% \label{griddrawing}
|
||||||
<<<<<<< HEAD
|
% \includegraphics[width=0.8\linewidth]{figs/introplot}
|
||||||
=======
|
% \end{tikzfigure}
|
||||||
\includegraphics[width=0.8\linewidth]{figs/introplot}
|
|
||||||
>>>>>>> cdcf9564df07914cf57225de5a8bdaa642fbad0e
|
|
||||||
\end{tikzfigure}
|
|
||||||
}
|
}
|
||||||
\myblock[TranspBlock]{Chirp detection}{
|
\myblock[TranspBlock]{Chirp detection}{
|
||||||
\begin{tikzfigure}[]
|
\begin{tikzfigure}[]
|
||||||
\label{fig:example_a}
|
\label{fig:alg1}
|
||||||
|
\includegraphics[width=0.9\linewidth]{figs/algorithm1}
|
||||||
|
\end{tikzfigure}
|
||||||
|
\vspace{2cm}
|
||||||
|
\begin{tikzfigure}[]
|
||||||
|
\label{fig:alg2}
|
||||||
\includegraphics[width=1\linewidth]{figs/algorithm}
|
\includegraphics[width=1\linewidth]{figs/algorithm}
|
||||||
\end{tikzfigure}
|
\end{tikzfigure}
|
||||||
\vspace{0cm}
|
\vspace{0cm}
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
\centering
|
\centering
|
||||||
% \vspace{1cm}
|
% \vspace{1cm}
|
||||||
\hspace{-10cm}
|
\hspace{-10cm}
|
||||||
\includegraphics[width=\linewidth]{example-image-a}
|
\includegraphics[width=0.8\linewidth]{figs/efishlogo.pdf}
|
||||||
\end{minipage}}
|
\end{minipage}}
|
||||||
% \begin{minipage}[c]{0.2\paperwidth}
|
% \begin{minipage}[c]{0.2\paperwidth}
|
||||||
% \vspace{1cm}\hspace{1cm}
|
% \vspace{1cm}\hspace{1cm}
|
||||||
|
Loading…
Reference in New Issue
Block a user