introduction update figures
This commit is contained in:
parent
9ed748e479
commit
4a4703894c
@ -7,7 +7,7 @@ FIG_SIZE_SMALL = (4, 4)
|
||||
FIG_SIZE_MEDIUM = (6, 6)
|
||||
FIG_SIZE_LARGE = (8, 8)
|
||||
FIG_SIZE_SMALL_WIDE = (6, 4)
|
||||
FIG_SIZE_MEDIUM_WIDE = (8, 5)
|
||||
FIG_SIZE_MEDIUM_WIDE = (8, 6)
|
||||
|
||||
|
||||
|
||||
|
@ -20,63 +20,75 @@ def main():
|
||||
# data_mean_freq_step_stimulus_examples()
|
||||
# data_mean_freq_step_stimulus_with_detections()
|
||||
# data_fi_curve()
|
||||
p_unit_example()
|
||||
fi_point_detection()
|
||||
|
||||
# p_unit_example()
|
||||
# fi_point_detection()
|
||||
|
||||
p_unit_heterogeneity()
|
||||
# test_fi_curve_colors()
|
||||
pass
|
||||
|
||||
|
||||
def test_fi_curve_colors():
|
||||
example_cell_fit = "results/final_2/2012-12-20-ac-invivo-1"
|
||||
cell = EXAMPLE_CELL
|
||||
|
||||
cell_data = CellData(cell)
|
||||
fit = get_best_fit(example_cell_fit)
|
||||
|
||||
fig, axes = plt.subplots(1, 3)
|
||||
|
||||
axes[0].set_title("Cell")
|
||||
fi_curve = FICurveCellData(cell_data, cell_data.get_fi_contrasts(), save_dir=cell_data.get_data_path())
|
||||
contrasts = cell_data.get_fi_contrasts()
|
||||
f_zeros = fi_curve.get_f_zero_frequencies()
|
||||
f_infs = fi_curve.get_f_inf_frequencies()
|
||||
axes[0].plot(contrasts, f_zeros, ',', marker=consts.f0_marker, color=consts.COLOR_DATA_f0)
|
||||
axes[0].plot(contrasts, f_infs, ',', marker=consts.finf_marker, color=consts.COLOR_DATA_finf)
|
||||
def p_unit_heterogeneity():
|
||||
data_dir = "data/final/"
|
||||
strong_bursty_cell = "2014-01-10-ae-invivo-1"
|
||||
bursty_cell = "2014-03-19-ad-invivo-1"
|
||||
non_bursty_cell = "2012-12-21-am-invivo-1"
|
||||
|
||||
x_values = np.arange(min(contrasts), max(contrasts), (max(contrasts) - min(contrasts)) / 1000)
|
||||
f_inf_fit = fi_curve.f_inf_fit
|
||||
f_zero_fit = fi_curve.f_zero_fit
|
||||
f_zero_fit = [fu.full_boltzmann(x, f_zero_fit[0], f_zero_fit[1], f_zero_fit[2], f_zero_fit[3]) for x in x_values]
|
||||
f_inf_fit = [fu.clipped_line(x, f_inf_fit[0], f_inf_fit[1]) for x in x_values]
|
||||
axes[0].plot(x_values, f_zero_fit, color=consts.COLOR_DATA_f0)
|
||||
axes[0].plot(x_values, f_inf_fit, color=consts.COLOR_DATA_finf)
|
||||
cells = [non_bursty_cell, bursty_cell, strong_bursty_cell]
|
||||
|
||||
axes[2].plot(x_values, f_zero_fit, color=consts.COLOR_DATA_f0)
|
||||
axes[2].plot(x_values, f_inf_fit, color=consts.COLOR_DATA_finf)
|
||||
fig = plt.figure(tight_layout=True, figsize=consts.FIG_SIZE_MEDIUM_WIDE)
|
||||
gs = gridspec.GridSpec(3, 2, width_ratios=(3, 1))
|
||||
|
||||
axes[1].set_title("Model")
|
||||
model = fit.get_model()
|
||||
fi_curve = FICurveModel(model, contrasts, eod_frequency=cell_data.get_eod_frequency())
|
||||
# a bit of trace with detected spikes
|
||||
|
||||
f_zeros = fi_curve.get_f_zero_frequencies()
|
||||
f_infs = fi_curve.get_f_inf_frequencies()
|
||||
axes[1].plot(contrasts, f_zeros, ',', marker=consts.f0_marker, color=consts.COLOR_MODEL_f0)
|
||||
axes[1].plot(contrasts, f_infs, ',', marker=consts.finf_marker, color=consts.COLOR_MODEL_finf)
|
||||
for i, cell in enumerate(cells):
|
||||
cell_dir = data_dir + cell + "/"
|
||||
cell_data = CellData(cell_dir)
|
||||
|
||||
step = cell_data.get_sampling_interval()
|
||||
time = cell_data.get_base_traces(cell_data.TIME)[0]
|
||||
v1 = cell_data.get_base_traces(cell_data.V1)[0]
|
||||
spikes = cell_data.get_base_spikes()[0]
|
||||
|
||||
time_offset = 0
|
||||
duration = 0.1
|
||||
|
||||
idx_start = int(np.rint(time_offset / step))
|
||||
idx_end = int(np.rint((time_offset + duration) / step))
|
||||
|
||||
ax = fig.add_subplot(gs[i, 0])
|
||||
ax.plot(np.array(time[idx_start:idx_end]) * 1000, v1[idx_start:idx_end], color=consts.COLOR_DATA)
|
||||
y_lims = ax.get_ylim()
|
||||
event_tick_length = (y_lims[1] - y_lims[0]) / 10
|
||||
ax.eventplot([s * 1000 for s in spikes if time_offset <= s < time_offset+duration],
|
||||
colors="black", lineoffsets=max(v1[idx_start:idx_end])+1.5, linelengths=event_tick_length)
|
||||
ax.set_ylabel("Voltage in mV")
|
||||
ax.set_xlim((0, duration*1000))
|
||||
if i == 2:
|
||||
ax.set_xlabel("Time in ms")
|
||||
ax.set_yticks([-5, 5, 15])
|
||||
|
||||
for i, cell in enumerate(cells):
|
||||
cell_dir = data_dir + cell + "/"
|
||||
cell_data = CellData(cell_dir)
|
||||
eodf = cell_data.get_eod_frequency()
|
||||
|
||||
cell_isi = BaselineCellData(cell_data).get_interspike_intervals() * eodf
|
||||
bins = np.arange(0, 0.025, 0.0001) * eodf
|
||||
ax = fig.add_subplot(gs[i, 1])
|
||||
ax.hist(cell_isi, bins=bins, density=True, color=consts.COLOR_DATA)
|
||||
ax.set_ylabel("Density")
|
||||
ax.set_yticklabels(["{:.1f}".format(t) for t in ax.get_yticks()])
|
||||
if i == 2:
|
||||
ax.set_xlabel("ISI in EOD periods")
|
||||
|
||||
x_values = np.arange(min(contrasts), max(contrasts), (max(contrasts) - min(contrasts)) / 1000)
|
||||
f_inf_fit = fi_curve.f_inf_fit
|
||||
f_zero_fit = fi_curve.f_zero_fit
|
||||
f_zero_fit = [fu.full_boltzmann(x, f_zero_fit[0], f_zero_fit[1], f_zero_fit[2], f_zero_fit[3]) for x in x_values]
|
||||
f_inf_fit = [fu.clipped_line(x, f_inf_fit[0], f_inf_fit[1]) for x in x_values]
|
||||
axes[1].plot(x_values, f_zero_fit, color=consts.COLOR_MODEL_f0)
|
||||
axes[1].plot(x_values, f_inf_fit, color=consts.COLOR_MODEL_finf)
|
||||
plt.tight_layout()
|
||||
fig.align_ylabels()
|
||||
consts.set_figure_labels(xoffset=-2.5)
|
||||
|
||||
axes[2].plot(contrasts, f_zeros, ",", marker=consts.f0_marker, color=consts.COLOR_MODEL_f0)
|
||||
axes[2].plot(contrasts, f_infs, ",", marker=consts.finf_marker, color=consts.COLOR_MODEL_finf)
|
||||
fig.label_axes()
|
||||
|
||||
plt.show()
|
||||
plt.savefig(consts.SAVE_FOLDER + "isi_hist_heterogeneity.png", transparent=True)
|
||||
plt.close()
|
||||
|
||||
|
||||
@ -161,7 +173,6 @@ def p_unit_example():
|
||||
ax.set_ylabel("Frequency in Hz")
|
||||
ax.set_title("Step Response")
|
||||
|
||||
|
||||
# FI-Curve
|
||||
ax = fig.add_subplot(gs[2, 1])
|
||||
|
||||
@ -253,13 +264,13 @@ def fi_point_detection():
|
||||
axes[1].set_title("f-I Curve")
|
||||
axes[1].set_ylim((0, ylimits[1]))
|
||||
|
||||
|
||||
plt.tight_layout()
|
||||
consts.set_figure_labels(xoffset=-2.5)
|
||||
fig.label_axes()
|
||||
plt.savefig("thesis/figures/f_point_detection.png", transparent=True)
|
||||
plt.close()
|
||||
|
||||
|
||||
def data_fi_curve():
|
||||
cell = "data/final/2013-04-17-ac-invivo-1/"
|
||||
cell_data = CellData(cell)
|
||||
@ -279,7 +290,7 @@ def data_mean_freq_step_stimulus_with_detections():
|
||||
f_inf = fi.f_inf_frequencies[idx]
|
||||
f_zero = fi.f_zero_frequencies[idx]
|
||||
|
||||
plt.plot(time, freq, color=DATA_COLOR)
|
||||
plt.plot(time, freq, color=consts.COLOR_DATA)
|
||||
plt.plot(time[freq == f_zero][0], f_zero, "o", color="black")
|
||||
f_inf_time = time[(0.2 < time) & (time < 0.4)]
|
||||
plt.plot(f_inf_time, [f_inf for _ in f_inf_time], color="black")
|
||||
@ -304,7 +315,7 @@ def data_mean_freq_step_stimulus_examples():
|
||||
# for j in range(len(time_traces[i])):
|
||||
# axes[i].plot(time_traces[i][j], freq_traces[i][j], color="gray", alpha=0.5)
|
||||
|
||||
axes[ax_idx].plot(mean_times[idx], mean_freqs[idx], color=DATA_COLOR)
|
||||
axes[ax_idx].plot(mean_times[idx], mean_freqs[idx], color=consts.COLOR_DATA)
|
||||
# plt.plot(mean_times[i], mean_freqs[i], color="black")
|
||||
|
||||
axes[ax_idx].set_ylabel("Frequency [Hz]")
|
||||
@ -317,7 +328,7 @@ def data_mean_freq_step_stimulus_examples():
|
||||
def data_isi_histogram(recalculate=True):
|
||||
# if isis loadable - load
|
||||
name = "isi_cell_data.npy"
|
||||
path = os.path.join(DATA_SAVE_PATH, name)
|
||||
path = os.path.join(consts.SAVE_FOLDER, name)
|
||||
if os.path.exists(path) and not recalculate:
|
||||
isis = np.load(path)
|
||||
print("loaded")
|
||||
@ -338,7 +349,7 @@ def data_isi_histogram(recalculate=True):
|
||||
isis = isis * 1000
|
||||
# plot histogram
|
||||
bins = np.arange(0, 30.1, 0.1)
|
||||
plt.hist(isis, bins=bins, color=DATA_COLOR)
|
||||
plt.hist(isis, bins=bins, color=consts.COLOR_DATA)
|
||||
plt.xlabel("Inter spike intervals [ms]")
|
||||
plt.ylabel("Count")
|
||||
plt.tight_layout()
|
||||
@ -346,5 +357,58 @@ def data_isi_histogram(recalculate=True):
|
||||
plt.show()
|
||||
|
||||
|
||||
def test_fi_curve_colors():
|
||||
example_cell_fit = "results/final_2/2012-12-20-ac-invivo-1"
|
||||
cell = EXAMPLE_CELL
|
||||
|
||||
cell_data = CellData(cell)
|
||||
fit = get_best_fit(example_cell_fit)
|
||||
|
||||
fig, axes = plt.subplots(1, 3)
|
||||
|
||||
axes[0].set_title("Cell")
|
||||
fi_curve = FICurveCellData(cell_data, cell_data.get_fi_contrasts(), save_dir=cell_data.get_data_path())
|
||||
contrasts = cell_data.get_fi_contrasts()
|
||||
f_zeros = fi_curve.get_f_zero_frequencies()
|
||||
f_infs = fi_curve.get_f_inf_frequencies()
|
||||
axes[0].plot(contrasts, f_zeros, ',', marker=consts.f0_marker, color=consts.COLOR_DATA_f0)
|
||||
axes[0].plot(contrasts, f_infs, ',', marker=consts.finf_marker, color=consts.COLOR_DATA_finf)
|
||||
|
||||
x_values = np.arange(min(contrasts), max(contrasts), (max(contrasts) - min(contrasts)) / 1000)
|
||||
f_inf_fit = fi_curve.f_inf_fit
|
||||
f_zero_fit = fi_curve.f_zero_fit
|
||||
f_zero_fit = [fu.full_boltzmann(x, f_zero_fit[0], f_zero_fit[1], f_zero_fit[2], f_zero_fit[3]) for x in x_values]
|
||||
f_inf_fit = [fu.clipped_line(x, f_inf_fit[0], f_inf_fit[1]) for x in x_values]
|
||||
axes[0].plot(x_values, f_zero_fit, color=consts.COLOR_DATA_f0)
|
||||
axes[0].plot(x_values, f_inf_fit, color=consts.COLOR_DATA_finf)
|
||||
|
||||
axes[2].plot(x_values, f_zero_fit, color=consts.COLOR_DATA_f0)
|
||||
axes[2].plot(x_values, f_inf_fit, color=consts.COLOR_DATA_finf)
|
||||
|
||||
axes[1].set_title("Model")
|
||||
model = fit.get_model()
|
||||
fi_curve = FICurveModel(model, contrasts, eod_frequency=cell_data.get_eod_frequency())
|
||||
|
||||
f_zeros = fi_curve.get_f_zero_frequencies()
|
||||
f_infs = fi_curve.get_f_inf_frequencies()
|
||||
axes[1].plot(contrasts, f_zeros, ',', marker=consts.f0_marker, color=consts.COLOR_MODEL_f0)
|
||||
axes[1].plot(contrasts, f_infs, ',', marker=consts.finf_marker, color=consts.COLOR_MODEL_finf)
|
||||
|
||||
x_values = np.arange(min(contrasts), max(contrasts), (max(contrasts) - min(contrasts)) / 1000)
|
||||
f_inf_fit = fi_curve.f_inf_fit
|
||||
f_zero_fit = fi_curve.f_zero_fit
|
||||
f_zero_fit = [fu.full_boltzmann(x, f_zero_fit[0], f_zero_fit[1], f_zero_fit[2], f_zero_fit[3]) for x in x_values]
|
||||
f_inf_fit = [fu.clipped_line(x, f_inf_fit[0], f_inf_fit[1]) for x in x_values]
|
||||
axes[1].plot(x_values, f_zero_fit, color=consts.COLOR_MODEL_f0)
|
||||
axes[1].plot(x_values, f_inf_fit, color=consts.COLOR_MODEL_finf)
|
||||
|
||||
axes[2].plot(contrasts, f_zeros, ",", marker=consts.f0_marker, color=consts.COLOR_MODEL_f0)
|
||||
axes[2].plot(contrasts, f_infs, ",", marker=consts.finf_marker, color=consts.COLOR_MODEL_finf)
|
||||
|
||||
plt.show()
|
||||
plt.close()
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@ -1,5 +1,10 @@
|
||||
\begin{thebibliography}{}
|
||||
|
||||
\bibitem[Babineau et~al., 2007]{babineau2007spatial}
|
||||
Babineau, D., Lewis, J.~E., and Longtin, A. (2007).
|
||||
\newblock Spatial acuity and prey detection in weakly electric fish.
|
||||
\newblock {\em PLoS Computational Biology}, 3(3):e38.
|
||||
|
||||
\bibitem[Benda et~al., 2005]{benda2005spike}
|
||||
Benda, J., Longtin, A., and Maler, L. (2005).
|
||||
\newblock Spike-frequency adaptation separates transient communication signals
|
||||
@ -18,6 +23,24 @@ Gao, F. and Han, L. (2012).
|
||||
parameters.
|
||||
\newblock {\em Computational Optimization and Applications}, 51(1):259--277.
|
||||
|
||||
\bibitem[Gussin et~al., 2007]{gussin2007limits}
|
||||
Gussin, D., Benda, J., and Maler, L. (2007).
|
||||
\newblock Limits of linear rate coding of dynamic stimuli by electroreceptor
|
||||
afferents.
|
||||
\newblock {\em Journal of neurophysiology}, 97(4):2917--2929.
|
||||
|
||||
\bibitem[Maciver et~al., 2001]{maciver2001prey}
|
||||
Maciver, M.~A., Sharabash, N.~M., and Nelson, M.~E. (2001).
|
||||
\newblock Prey-capture behavior in gymnotid electric fish: motion analysis and
|
||||
effects of water conductivity.
|
||||
\newblock {\em Journal of experimental biology}, 204(3):543--557.
|
||||
|
||||
\bibitem[Scheich et~al., 1973]{scheich1973coding}
|
||||
Scheich, H., Bullock, T.~H., and Hamstra~Jr, R. (1973).
|
||||
\newblock Coding properties of two classes of afferent nerve fibers:
|
||||
high-frequency electroreceptors in the electric fish, eigenmannia.
|
||||
\newblock {\em Journal of Neurophysiology}, 36(1):39--60.
|
||||
|
||||
\bibitem[Todd and Andrews, 1999]{todd1999identification}
|
||||
Todd, B.~S. and Andrews, D.~C. (1999).
|
||||
\newblock The identification of peaks in physiological signals.
|
||||
@ -35,4 +58,10 @@ Walz, H., Grewe, J., and Benda, J. (2014).
|
||||
evoked by transient communication signals.
|
||||
\newblock {\em Journal of Neurophysiology}, 112(4):752--765.
|
||||
|
||||
\bibitem[Zupanc et~al., 2006]{zupanc2006electric}
|
||||
Zupanc, G., S{\^\i}rbulescu, R., Nichols, A., and Ilies, I. (2006).
|
||||
\newblock Electric interactions through chirping behavior in the weakly
|
||||
electric fish, apteronotus leptorhynchus.
|
||||
\newblock {\em Journal of Comparative Physiology A}, 192(2):159--173.
|
||||
|
||||
\end{thebibliography}
|
||||
|
@ -1,46 +1,46 @@
|
||||
This is BibTeX, Version 0.99d (TeX Live 2017/Debian)
|
||||
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009
|
||||
This is BibTeX, Version 0.99d (TeX Live 2015/Debian)
|
||||
Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
|
||||
The top-level auxiliary file: Masterthesis.aux
|
||||
The style file: apalike.bst
|
||||
Database file #1: citations.bib
|
||||
You've used 6 entries,
|
||||
You've used 11 entries,
|
||||
1935 wiz_defined-function locations,
|
||||
517 strings with 4845 characters,
|
||||
and the built_in function-call counts, 2415 in all, are:
|
||||
= -- 244
|
||||
> -- 87
|
||||
552 strings with 5925 characters,
|
||||
and the built_in function-call counts, 4542 in all, are:
|
||||
= -- 453
|
||||
> -- 182
|
||||
< -- 3
|
||||
+ -- 30
|
||||
- -- 28
|
||||
* -- 219
|
||||
:= -- 422
|
||||
add.period$ -- 18
|
||||
call.type$ -- 6
|
||||
change.case$ -- 43
|
||||
chr.to.int$ -- 6
|
||||
cite$ -- 6
|
||||
duplicate$ -- 82
|
||||
empty$ -- 172
|
||||
format.name$ -- 38
|
||||
if$ -- 461
|
||||
+ -- 62
|
||||
- -- 60
|
||||
* -- 423
|
||||
:= -- 793
|
||||
add.period$ -- 33
|
||||
call.type$ -- 11
|
||||
change.case$ -- 84
|
||||
chr.to.int$ -- 11
|
||||
cite$ -- 11
|
||||
duplicate$ -- 152
|
||||
empty$ -- 318
|
||||
format.name$ -- 75
|
||||
if$ -- 866
|
||||
int.to.chr$ -- 1
|
||||
int.to.str$ -- 0
|
||||
missing$ -- 5
|
||||
newline$ -- 33
|
||||
num.names$ -- 18
|
||||
pop$ -- 30
|
||||
missing$ -- 10
|
||||
newline$ -- 58
|
||||
num.names$ -- 33
|
||||
pop$ -- 61
|
||||
preamble$ -- 1
|
||||
purify$ -- 44
|
||||
purify$ -- 85
|
||||
quote$ -- 0
|
||||
skip$ -- 63
|
||||
skip$ -- 113
|
||||
stack$ -- 0
|
||||
substring$ -- 211
|
||||
swap$ -- 6
|
||||
substring$ -- 380
|
||||
swap$ -- 11
|
||||
text.length$ -- 0
|
||||
text.prefix$ -- 0
|
||||
top$ -- 0
|
||||
type$ -- 36
|
||||
type$ -- 66
|
||||
warning$ -- 0
|
||||
while$ -- 22
|
||||
while$ -- 41
|
||||
width$ -- 0
|
||||
write$ -- 80
|
||||
write$ -- 145
|
||||
|
Binary file not shown.
@ -17,9 +17,9 @@
|
||||
|
||||
\newcommand{\todo}[1]{{\color{red}(TODO: #1)}}
|
||||
|
||||
\newcommand{\AptLepto}{{\textit{Apteronotus leptorhynchus \:}}}
|
||||
\newcommand{\AptLepto}{{\textit{Apteronotus leptorhynchus\:}}}
|
||||
|
||||
\newcommand{\lepto}{{\textit{A. leptorhynchus}}}
|
||||
\newcommand{\lepto}{{\textit{A. leptorhynchus\:}}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Ab hier beginnt der eigentliche Text:
|
||||
@ -127,7 +127,7 @@ Außerdem erkläre ich, dass die eingereichte Arbeit weder vollständig noch in
|
||||
\end{enumerate}
|
||||
\item sensory perception
|
||||
\begin{enumerate}
|
||||
\item receptor $\rightarrow$ heterogenic population EXAMPLE!
|
||||
\item receptor $\rightarrow$ heterogenic population
|
||||
\item further analysis limited by what receptors code for - P-Units encoding
|
||||
\item p-type neurons code AMs
|
||||
\end{enumerate}
|
||||
@ -140,16 +140,13 @@ Außerdem erkläre ich, dass die eingereichte Arbeit weder vollständig noch in
|
||||
\end{enumerate}
|
||||
\newpage
|
||||
|
||||
The environment of an organism holds important information that it needs to survive. Information about predators to avoid, food to find and potential mates. That means that the ability to sense and process this information is of vital importance for any organism. At the same time the environment also contains a lot of information that is irrelevant to an organism, as such the sensory systems of an organism need to be specialized to extract the information it needs while filtering out the noise and irrelevant information \todo{ref}.
|
||||
|
||||
The electric fish \AptLepto (Brown ghost knife fish) generate a sinusoidal electric field with the electric organ in their tail enabling them to use active electroreception which they use to find prey, orient themself and communicate with each other \todo{ref}. The different use cases of this electric organ discharge (EOD) come with the necessity to detect a wide range of different amplitude modulations (AMs). Electrolocation of object in the surrounding water like small prey or rocks cause small low frequency AMs \todo{ref}. At the same time other electric fish can cause stronger and higher frequency AMs through interference between the electric fields and their communication signals like chirps, short increases in their EOD frequency \todo{ref}. This means that the electroreceptors need to be able to encode a wide range of changes in EOD amplitude, in speed as well as strength.
|
||||
The EOD and its AMs are encoded by electroreceptor organs in the skin. \lepto have two anatomically different kinds of tuberous electrosensory organs: the T and P type units \todo{ref, Zakon 1993}. The T units (time coder) are strongly phase locked to the EOD and fire regularly once every EOD period. They encode the phase of the EOD in their spike timing \todo{ref}. The P units (probability coders) on the other hand do not fire every EOD period. Instead they fire irregularly with a certain probability that depends on the EOD amplitude \todo{ref}. That way they encode information about the EOD amplitude in their firing probability \todo{ref}. An example of the firing behavior of a P unit is shown in figure~\ref{fig:p_unit_example}.
|
||||
When the fish's EOD is unperturbed P units, it fires every few EOD periods but has a certain variability in its firing (fig. \ref{fig:p_unit_example} B) and show negative correlation between successive interspike intervals (ISIs). When presented with a step change in EOD amplitude P units show strong adaption behavior. After a strong increase in firing rate reacting to the onset of the step, the firing rate quickly decays back to a steady state (fig. \ref{fig:p_unit_example} D).
|
||||
|
||||
|
||||
|
||||
The environment of an organism holds important information that it needs to survive. Information about predators to avoid, food to find and potential mates. That means that the ability to sense and process this information is of vital importance for any organism. At the same time the environment also contains a lot of information that is irrelevant to an organism. \todo{ref} suggested already that the sensory systems of an organism should be specialized to extract the information it needs while filtering out the noise and irrelevant information, to efficiently use the limited coding capacity of the sensory systems.
|
||||
|
||||
\todo{path to electric fish}
|
||||
|
||||
The electric fish \AptLepto (Brown ghost knife fish) generate a sinusoidal electric field with the electric organ in their tail enabling them to use active electroreception which they use to find prey and communicate with each other (\cite{maciver2001prey}, \cite{zupanc2006electric}). The different use cases of this electric organ discharge (EOD) come with the necessity to detect a wide range of different amplitude modulations (AMs). Electrolocation of object in the surrounding water like small prey or rocks cause small low frequency AMs \citep{babineau2007spatial}. At the same time other electric fish can cause stronger and higher frequency AMs through interference between the electric fields and their communication signals like chirps, short increases in their EOD frequency \citep{zupanc2006electric}. This means that the electroreceptors need to be able to encode a wide range of changes in EOD amplitude, in speed as well as strength.
|
||||
The EOD and its AMs are encoded by electroreceptor organs in the skin. \lepto have two kinds of tuberous electrosensory organs: the T and P type units \citep{scheich1973coding}. The T units (time coder) are strongly phase locked to the EOD and fire regularly once every EOD period. They encode the phase of the EOD in their spike timing. The P units (probability coders) on the other hand do not fire every EOD period. Instead they fire irregularly with a certain probability that depends on the EOD amplitude. That way they encode information about the EOD amplitude in their firing probability \citep{scheich1973coding}. An example of the firing behavior of a P unit is shown in figure~\ref{fig:p_unit_example}.
|
||||
When the fish's EOD is unperturbed P units fire every few EOD periods but they have a certain variability in their firing (fig. \ref{fig:p_unit_example} B) and show negative correlation between successive interspike intervals (ISIs)(fig. \ref{fig:p_unit_example} C). When presented with a step increase in EOD amplitude P units show strong adaption behavior. After a strong increase in firing rate reacting to the onset of the step, the firing rate quickly decays back to a steady state (fig. \ref{fig:p_unit_example} D). When using different sizes of steps both the onset and the steady state response scale with its size and direction of the step (fig. \ref{fig:p_unit_example} E).
|
||||
|
||||
|
||||
%
|
||||
@ -160,8 +157,16 @@ When the fish's EOD is unperturbed P units, it fires every few EOD periods but h
|
||||
\end{figure}
|
||||
\newpage
|
||||
|
||||
\todo{fig: example of ISI differences}
|
||||
|
||||
|
||||
\begin{figure}[H]
|
||||
{\caption{\label{fig:heterogeneity_isi_hist} \textbf{A--C} 100\,ms of cell membrane voltage and \textbf{D--F} interspike interval histograms, each for three different cells. Showing the variability between cells of spiking behavior of P units in baseline conditions. \textbf{A} and \textbf{D}: A non bursting cell with a baseline firing rate of 133\,Hz (EODf: 806\,Hz), \textbf{B} and \textbf{E}: A cell with some bursts and a baseline firing rate of 235\,Hz (EODf: 682\,Hz) and \textbf{C} and \textbf{F}: A strongly bursting cell with longer breaks between bursts. Baseline rate of 153\,Hz and EODf of 670\,Hz }}
|
||||
{\includegraphics[width=1\textwidth]{figures/isi_hist_heterogeneity.png}}
|
||||
\end{figure}
|
||||
|
||||
\todo{heterogeneity}
|
||||
|
||||
Furthermore show P units a pronounced heterogeneity in their spiking behavior (fig.~\ref{fig:heterogeneity_isi_hist}, \cite{gussin2007limits}).
|
||||
\todo{population coding}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Methoden
|
||||
@ -182,7 +187,7 @@ When the fish's EOD is unperturbed P units, it fires every few EOD periods but h
|
||||
% EOD-freq: min 601.09, mean 753.09, max 928.45, std 82.30
|
||||
% Sizes: min 11.00, mean 15.78, max 25.00, std 3.48
|
||||
|
||||
The cell recordings for this master thesis were collected as part of other previous studies (\cite{walz2013Phd}, \citep{walz2014static})\todo{ref other studies} and the recording procedure is described there but will also be repeated below. The recordings of altogether 457 p-units were inspected. Of those 88 fulfilled basic necessary requirements: including a measurement of at least 30 seconds of baseline behavior and containing at least 7 different contrasts with each at least 7 trials for the f-I curve (see below \todo{ref fi-curve? }). After pre-analysis of those cells an additional 15 cells were excluded because of spike detection difficulties.
|
||||
The cell recordings for this master thesis were collected as part of other previous studies (\cite{walz2013Phd}, \citep{walz2014static})\todo{ref other studies} and the recording procedure is described there but will also be repeated below. The recordings of altogether 457 p-units were inspected. Of those 88 fulfilled basic necessary requirements: including a measurement of at least 30 seconds of baseline behavior and containing at least 7 different contrasts with each at least 7 trials for the f-I curve (see below fig. \ref{fig:f_point_detection} B). After pre-analysis of those cells an additional 15 cells were excluded because of spike detection difficulties.
|
||||
|
||||
The 73 used cells came from 32 \AptLepto (brown ghost knifefish). The fish were between 11--25\,cm long (15.8 $\pm$ 3.5\,cm) and their electric organ discharge (EOD) frequencies ranged between 601 and 928\,Hz (753 $\pm$ 82\,Hz). The sex of the fish was not determined.
|
||||
|
||||
|
@ -213,3 +213,56 @@
|
||||
publisher={Springer}
|
||||
}
|
||||
|
||||
@article{adrian1932mechanism,
|
||||
title={The Mechanism of Nervous Action, Electrical Studies of the Neurone.},
|
||||
author={Adrian, Edgar Douglas and others},
|
||||
journal={The Mechanism of Nervous Action, Electrical Studies of the Neurone.},
|
||||
year={1932},
|
||||
publisher={London: Humphrey Milford, and Philadelphia: University of Pennsylvania Press.}
|
||||
}
|
||||
|
||||
@article{zupanc2006electric,
|
||||
title={Electric interactions through chirping behavior in the weakly electric fish, Apteronotus leptorhynchus},
|
||||
author={Zupanc, GKH and S{\^\i}rbulescu, RF and Nichols, A and Ilies, I},
|
||||
journal={Journal of Comparative Physiology A},
|
||||
volume={192},
|
||||
number={2},
|
||||
pages={159--173},
|
||||
year={2006},
|
||||
publisher={Springer}
|
||||
}
|
||||
|
||||
@article{babineau2007spatial,
|
||||
title={Spatial acuity and prey detection in weakly electric fish},
|
||||
author={Babineau, David and Lewis, John E and Longtin, Andr{\'e}},
|
||||
journal={PLoS Computational Biology},
|
||||
volume={3},
|
||||
number={3},
|
||||
pages={e38},
|
||||
year={2007},
|
||||
publisher={Public Library of Science}
|
||||
}
|
||||
|
||||
@article{maciver2001prey,
|
||||
title={Prey-capture behavior in gymnotid electric fish: motion analysis and effects of water conductivity},
|
||||
author={Maciver, Malcolm A and Sharabash, Noura M and Nelson, Mark E},
|
||||
journal={Journal of experimental biology},
|
||||
volume={204},
|
||||
number={3},
|
||||
pages={543--557},
|
||||
year={2001},
|
||||
publisher={The Company of Biologists Ltd}
|
||||
}
|
||||
|
||||
@article{scheich1973coding,
|
||||
title={Coding properties of two classes of afferent nerve fibers: high-frequency electroreceptors in the electric fish, Eigenmannia.},
|
||||
author={Scheich, H and Bullock, Th H and Hamstra Jr, RH},
|
||||
journal={Journal of Neurophysiology},
|
||||
volume={36},
|
||||
number={1},
|
||||
pages={39--60},
|
||||
year={1973}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
BIN
thesis/figures/isi_hist_heterogeneity.png
Normal file
BIN
thesis/figures/isi_hist_heterogeneity.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
BIN
thesis/sources/Babineau2007_SpatialAcuityandPreyDetection.PDF
Normal file
BIN
thesis/sources/Babineau2007_SpatialAcuityandPreyDetection.PDF
Normal file
Binary file not shown.
BIN
thesis/sources/Maciver2001_PreyCaptureBehaviour.pdf
Normal file
BIN
thesis/sources/Maciver2001_PreyCaptureBehaviour.pdf
Normal file
Binary file not shown.
BIN
thesis/sources/Nelson1999_preyCapture.pdf
Normal file
BIN
thesis/sources/Nelson1999_preyCapture.pdf
Normal file
Binary file not shown.
19974
thesis/sources/Scheich1973_CodingPropertiesofPandTunits.pdf
Normal file
19974
thesis/sources/Scheich1973_CodingPropertiesofPandTunits.pdf
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user