Merge branch 'master' of raven:scientificComputing
@ -1,5 +1,5 @@
|
||||
TEXFILES=$(wildcard *.tex)
|
||||
TEXFILES=boolean_logical_indexing.tex control_structures.tex data_structures.tex plotting_spike_trains.tex programming_basics.tex scripts_functions.tex sta_stc.tex variables_datatypes.tex vectors_matrices.tex
|
||||
TEXFILES=boolean_logical_indexing.tex control_structures.tex data_structures.tex plotting.tex programming_basics.tex scripts_functions.tex sta_stc.tex variables_datatypes.tex vectors_matrices.tex
|
||||
|
||||
PDFFILES=$(TEXFILES:.tex=.pdf)
|
||||
|
||||
|
BIN
programming/lectures/images/spike_detection.pdf
Normal file
@ -101,10 +101,9 @@
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Grundlagen der Programmierung}
|
||||
\frametitle{Tagesmen\"u}
|
||||
\frametitle{Inhalt}
|
||||
\begin{enumerate}
|
||||
\item Graphische Darstellung von Daten
|
||||
\item Spiketrain Analyse
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
@ -356,288 +355,4 @@ saveas(fig, 'spike_detection.pdf', 'pdf')
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[plain]
|
||||
\huge{2. Spiketrain Analyse}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Rasterplot}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.375\columnwidth]{images/rasterplot}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Rasterplot}
|
||||
\"Ubung:
|
||||
\begin{enumerate}
|
||||
\item Ladet die Datei: \code{lifoustim.mat} aus dem
|
||||
Ilias Ordner.
|
||||
\item Der Datensatz enth\"alt die Zeiten von Aktionspotentialen.
|
||||
\item Erzeugt einen sch\"onen Rasterplot der Zellantworten, speichert ihn.
|
||||
\item Welche Information liefert er, welche Information ist schwer
|
||||
abzulesen?
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH}
|
||||
|
||||
Darstellung der Feurreate eines Neuron als Funktion der Zeit. Es
|
||||
gibt verschiedene Methoden dieses \textbf{P}eri \textbf{S}timulus
|
||||
\textbf{T}ime \textbf{H}istogram zu erstellen.
|
||||
\begin{enumerate}
|
||||
\item Auf Basis der \textit{instantanen} Feuerrate.
|
||||
\item Auf Basis des Zeithistogramms.
|
||||
\item Durch Faltung der Zellantwort mit einem Gauss Kern.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Instantane Feuerrate ---}
|
||||
\Large{Berechnung des PSTHs durch die Instantane Feurerrate:}
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Die Feuerrate kann aus dem Abstand zwischen zwei
|
||||
aufeinanderfolgenden Aktionspotentialen
|
||||
(\textbf{Interspikeinterval}) berechnet werden. \pause
|
||||
\item Die \textbf{Instantane Feuerrate} wird aus dem Kehrwert des
|
||||
Interspikeintervals berechnet.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Instantane Feuerrate ---}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.9\columnwidth]{images/instantaneous_rate}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Instantane Feuerrate ---}
|
||||
Berechnung des PSTHs durch die Instantane Feurerrate:
|
||||
\textbf{Vorteile:}
|
||||
|
||||
\begin{enumerate}
|
||||
\item Sehr einfach zu Berechnen.
|
||||
\item Macht keine Annahmen \"uber ein Zeitraster, oder die Zeitskala
|
||||
der neuronalen Verarbeitung.
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Nachteile:}
|
||||
\begin{enumerate}
|
||||
\item Die Feuerrate ist nie null, auch wenn f\"ur lange Zeit kein
|
||||
Aktionspotential auftritt.
|
||||
\item Verh\"alt sich im Fourrier Raum nicht sehr sch\"on.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Binning Methode ---}
|
||||
\Large{Binning Methode:}
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Die Zeitachse wird in gleich gro{\ss}e Abschnitte ``bins''
|
||||
unterteilt.
|
||||
\item F\"ur jedes ``bin'' wird die Anzahl vorkommender
|
||||
Aktionspotentiale gez\"ahlt.
|
||||
\item Der Spike-count pro bin muss nun noch in die Rate umgerechnet
|
||||
werden.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Binning Methode ---}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{images/binned_rate}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Binning Methode ---}
|
||||
|
||||
Berechnung des PSTHs durch die Binning Methode:
|
||||
|
||||
\textbf{Vorteile:}
|
||||
\begin{enumerate}
|
||||
\item Sehr einfach zu Berechnen.
|
||||
\item Zeigt nur da Aktivit\"at an, wo auch Aktionspotentiale
|
||||
generiert wurden.
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Nachteile:}
|
||||
\begin{enumerate}
|
||||
\item Mach Annahmen \"uber die relevante Zeitskala neuronaler
|
||||
Verarbeitung.
|
||||
\item Die Zeitachse wird diskretisiert.
|
||||
\item Verh\"alt sich im Fourrier Raum nicht sehr sch\"on.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Faltungsmethode ---}
|
||||
\Large{Faltung mit einem Gauss Kern:}
|
||||
\normalsize
|
||||
\[r_{est}(t) = \int_{-\infty}^{\infty}d\tau \omega(\tau)\rho(t-\tau) \]
|
||||
|
||||
wobei $\omega(\tau)$ der Gauss Kern und $\rho(t)$ die Antwortfunktion ist.
|
||||
|
||||
Gl\"ucklicherweise m\"ussen wir das nicht selbst implementieren...
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Faltungsmethode ---}
|
||||
\large Algortihmus:
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Die neuronalen Antworten werden ``bin\"ar'' ausgedr\"uckt.
|
||||
\item Ein Filterkern wird berechnet, der das Integral 1 hat.
|
||||
\item Mithilfe der Faltung (\code{conv} Funktion) wird jede 1 durch
|
||||
den ``Kern'' ersetzt.\\
|
||||
\code{conv(x, kern, 'mode', 'same')}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Feurerrate als Funktion der Zeit --- Faltungsmethode ---}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{images/convolved_rate}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Feurerrate als Funktion der Zeit --- Faltungsmethode ---}
|
||||
\textbf{Vorteile:}
|
||||
\begin{enumerate}
|
||||
\item Sehr ``nat\"urliche'' erscheinende Darstellung.
|
||||
\item Sehr gutes Verhalten im Fourrier Raum.
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Nachteile:}
|
||||
\begin{enumerate}
|
||||
\item Relativ rechenintensiv.
|
||||
\item Macht Annahmen \"uber die Zeitskalen neuronaler Verarbeitung.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[plain]
|
||||
\huge{3. Analyse der Beziehung zwischen Stimulus und Antwort}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
\begin{itemize}
|
||||
\item[] Die Antworten darzustellen ist gut und sch\"on, aber was sagt es uns?\pause
|
||||
\item[] Idealerweise wollen wir die Antworten in Beziehung zum
|
||||
hervorrufenden Stimulus setzen.
|
||||
\item[] Eine Methode ist der sogenannte \textbf{Spike-Triggered-Average} (STA).
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
|
||||
Der STA stellt den (mittleren) Stimulus dar, der zu einem
|
||||
Aktionspotential gef\"uhrt hat:
|
||||
|
||||
\begin{equation}
|
||||
STA(\tau) = \frac{1}{\langle n \rangle} \left\langle \displaystyle\sum_{i=1}^{n}{s(t_i - \tau)} \right\rangle
|
||||
\end{equation}
|
||||
Wobei: $\tau$ ist eine bestimmte Zeit relativ zur Zeit eines
|
||||
Aktionspotentials, $t_i$ ist der Zeitpunkt eines APs, $s(t)$ ist der
|
||||
Stimulus.\\
|
||||
|
||||
Leider m\"ussen wir das selbst implementieren...
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
\large{Algorithmus:}
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Der \textbf{STA} ist der mittlere Stimulus, der zu einem Aktionspotential f\"uhrt.
|
||||
\item F\"ur jeden Spike wird ein entsprechender Abschnitt um die Zeit des Spikes herausgeschnitten.
|
||||
\item Die einzelen Stimulussegmente werden gemittelt.
|
||||
\end{enumerate}\pause
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.5\columnwidth]{images/sta}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
\vspace{-1em}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.6\columnwidth]{images/sta}
|
||||
\end{figure}
|
||||
\pause
|
||||
\vspace{-0.5em}
|
||||
Welche Information liefert der \textbf{STA}?
|
||||
\small
|
||||
\begin{enumerate}
|
||||
\item Gibt es eine Beziehung zwischen Stimulus und Antwort?\pause
|
||||
\item Gibt es eine Verz\"ogerung zwischen Stimulus und Antwort? Wie
|
||||
gro{\ss} ist diese?\pause
|
||||
\item Wie weit h\"angt das Auftreten eines Aktionspotentials von der
|
||||
Vergangenheit ab? \pause
|
||||
\item Kann die Zelle in die Zukunft sehen?
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
|
||||
\begin{frame} [fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{\"Ubung}
|
||||
\begin{enumerate}
|
||||
\item Berechnet die Feuerrate eines Neurons mit einer der drei Methoden.
|
||||
\item Die Abbildung soll f\"ur eine einspaltige Abbildung im
|
||||
\textit{Journal of Neuroscience} geeignet sein
|
||||
(\url{http://www.jneurosci.org/site/misc/ifa_illustrations.xhtml}).
|
||||
\item Erzeugt/ver\"andert/erweitert das Programm zum plotten so, dass
|
||||
die Abbildung automatisch erstellt und gespeichert wird.
|
||||
\item Speichert die Abbildung als pdf.
|
||||
\item Ladet den Stimulus aus dem Ilias Ordner und benutzt die
|
||||
\verb+subplot+ Funktion um den Stimulus zu der neuronalen
|
||||
Aktivit\"at zu plotten.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
\end{document}
|
@ -62,7 +62,7 @@ def plot_isi_rate(spike_times, max_t=30, dt=1e-4):
|
||||
ax1.vlines(times[times < (50000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5)
|
||||
ax1.set_ylabel("skpikes", fontsize=12)
|
||||
set_axis_fontsize(ax1, 12)
|
||||
|
||||
ax1.set_xlim([0, 5])
|
||||
ax2.plot(time, rate, label="instantaneous rate, trial 1")
|
||||
ax2.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax2.legend(fontsize=12)
|
||||
@ -191,8 +191,61 @@ def plot_conv_rate(spike_times, sigma=0.05, max_t=30, dt=1e-4):
|
||||
plt.close()
|
||||
|
||||
|
||||
def plot_comparison(spike_times, bin_width, sigma, max_t=30., dt=1e-4):
|
||||
times = np.squeeze(spike_times[0][0])
|
||||
time, conv_rate = get_convolved_rate(times, bin_width/np.sqrt(12.))
|
||||
time, inst_rate = get_instantaneous_rate(times)
|
||||
time, binn_rate = get_binned_rate(times, bin_width)
|
||||
|
||||
fig = plt.figure()
|
||||
ax1 = fig.add_subplot(411)
|
||||
ax2 = fig.add_subplot(412)
|
||||
ax3 = fig.add_subplot(413)
|
||||
ax4 = fig.add_subplot(414)
|
||||
|
||||
ax1.vlines(times[times < (100000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5)
|
||||
ax1.set_ylabel("spikes", fontsize=10)
|
||||
ax1.set_xlim([1.5, 3.5])
|
||||
ax1.set_ylim([0, 1])
|
||||
ax1.set_yticks([0, 1])
|
||||
set_axis_fontsize(ax1, 10)
|
||||
ax1.set_xticklabels([])
|
||||
|
||||
ax2.plot(time, inst_rate, label="instantaneous rate")
|
||||
ax2.set_ylabel("firing rate [Hz]", fontsize=10)
|
||||
ax2.legend(fontsize=10)
|
||||
ax2.set_xlim([1.5, 3.5])
|
||||
ax2.set_ylim([0, 300])
|
||||
set_axis_fontsize(ax2, 10)
|
||||
ax2.set_xticklabels([])
|
||||
|
||||
ax3.plot(time, binn_rate, label="binned rate")
|
||||
ax3.set_ylabel("firing rate [Hz]", fontsize=10)
|
||||
ax3.legend(fontsize=10)
|
||||
ax3.set_xlim([1.5, 3.5])
|
||||
ax3.set_ylim([0, 300])
|
||||
set_axis_fontsize(ax3, 10)
|
||||
ax3.set_xticklabels([])
|
||||
|
||||
ax4.plot(time, conv_rate, label="convolved rate")
|
||||
ax4.set_xlabel("times [s]", fontsize=10)
|
||||
ax4.set_ylabel("firing rate [Hz]", fontsize=10)
|
||||
ax4.legend(fontsize=10)
|
||||
ax4.set_xlim([1.5, 3.5])
|
||||
ax4.set_ylim([0, 300])
|
||||
set_axis_fontsize(ax4, 10)
|
||||
|
||||
fig.set_size_inches(7.5, 5)
|
||||
fig.subplots_adjust(left=0.1, bottom=0.125, top=0.95, right=0.95, )
|
||||
fig.set_facecolor("white")
|
||||
fig.savefig("../lecture/images/psth_comparison.pdf")
|
||||
plt.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
spike_times = spio.loadmat('lifoustim.mat')["spikes"]
|
||||
plot_isi_rate(spike_times)
|
||||
plot_bin_rate(spike_times, 0.05)
|
||||
plot_conv_rate(spike_times, 0.025)
|
||||
# plot_isi_rate(spike_times)
|
||||
# plot_bin_rate(spike_times, 0.05)
|
||||
# plot_conv_rate(spike_times, 0.025)
|
||||
plot_comparison(spike_times, 0.05, 0.025)
|
||||
|
@ -37,17 +37,21 @@
|
||||
\end{center}
|
||||
|
||||
\begin{questions}
|
||||
\question Graphische Darstellung der zeitabh\"angigen Antwort eines
|
||||
Neurons. PSTH auf Basis der instantanen Feuerrate. Verwendet den Datensatz \code{}
|
||||
\question Stellt die zeitabh\"angigen Feuerrate eines Neurons als
|
||||
PSTH dar. Das PSTH soll auf Basis der instantanen Feuerrate (des
|
||||
Interspikeintervals) berechnet werden. Verwendet den Datensatz
|
||||
\code{lifoustim.mat}. Dieser enth\"at drei Variablen: 1. die
|
||||
Spikezeiten, 2. den Stimulus und 3. die zeitliche Aufl\"osung. Die
|
||||
Dauer eines Trials betr\"agt 30 Sekunden.
|
||||
\begin{parts}
|
||||
\part Schreibt eine Funktion, die einen Vektor mit Spikezeiten,
|
||||
die Dauer des Trials, und die zeitliche Aufl\"osung entgegennimmt
|
||||
und die Zeitachse sowie die Feuerrate zur\"uckgiebt.
|
||||
und die Zeitachse sowie die Feuerrate zur\"uckgibt.
|
||||
\part Benutzt diese Funktion in einem Skript und stellt das PSTH
|
||||
eines einzelnen Trials sowie den Mittelwert \"uber alle Trials
|
||||
dar.
|
||||
\part Erweitert das Programm so, dass die Abbildung den Standards
|
||||
z.B. vom \textit{Journal of Neuroscience} entspricht
|
||||
\part Erweitert das Programm so, dass die Abbildung den Richtlinien
|
||||
des \textit{Journal of Neuroscience} entspricht
|
||||
(Schriftgr\"o{\ss}e, Abbildungsgr\"o{\ss}e).
|
||||
\part Die Abbildung sollte als pdf gespeichert werden.
|
||||
\end{parts}
|
||||
@ -62,13 +66,13 @@
|
||||
Abbildungen sollten nat\"urlich ``publikationsreif'' sein und
|
||||
gespeichert werden.
|
||||
|
||||
\question Einige trials sind anders als die \"Ubrigen. Benutzt den
|
||||
Rasterplot um sie zu finden. Speichert alle Abbildungen in
|
||||
``publikationsreifer'' Form.
|
||||
\question Einige Trials sind anders als die \"Ubrigen. Benutzt den
|
||||
Rasterplot um sie zu finden. Alle erstellten Abbildungen sollen in
|
||||
``publikationsreifer'' Form gespeichert werden.
|
||||
\begin{parts}
|
||||
\part Benutzt den Rasterplot um sie zu finden.
|
||||
\part Plottet die Verteilung der Spike counts.
|
||||
\part Filtert all die trials heraus, deren spike count mehr als
|
||||
\part Filtert all die Trials heraus, deren Spikecount mehr als
|
||||
$2\sigma$ vom Mittelwert abweicht.
|
||||
\part Plottet das PSTH vor und nach dem Filtern.
|
||||
\end{parts}
|
20
spike_trains/lecture/Makefile
Normal file
@ -0,0 +1,20 @@
|
||||
TEXFILES=$(wildcard *.tex)
|
||||
TEXFILES=psth_sta.tex
|
||||
|
||||
PDFFILES=$(TEXFILES:.tex=.pdf)
|
||||
|
||||
pdf : $(PDFFILES)
|
||||
|
||||
$(PDFFILES) : %.pdf : %.tex
|
||||
pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
|
||||
|
||||
clean :
|
||||
rm -f *~ $(TEXFILES:.tex=.aux) $(TEXFILES:.tex=.log) $(TEXFILES:.tex=.out) $(TEXFILES:.tex=.nav) $(TEXFILES:.tex=.snm) $(TEXFILES:.tex=.toc) $(TEXFILES:.tex=.vrb)
|
||||
|
||||
cleanall : clean
|
||||
rm -f $(PDFFILES)
|
||||
|
||||
watch :
|
||||
while true; do ! make -q pdf && make pdf; sleep 0.5; done
|
||||
|
||||
|
61
spike_trains/lecture/beamercolorthemetuebingen.sty
Normal file
@ -0,0 +1,61 @@
|
||||
% Copyright 2007 by Till Tantau
|
||||
%
|
||||
% This file may be distributed and/or modified
|
||||
%
|
||||
% 1. under the LaTeX Project Public License and/or
|
||||
% 2. under the GNU Public License.
|
||||
%
|
||||
% See the file doc/licenses/LICENSE for more details.
|
||||
|
||||
\usepackage{color}
|
||||
\definecolor{karminrot}{RGB}{165,30,55}
|
||||
\definecolor{gold}{RGB}{180,160,105}
|
||||
\definecolor{anthrazit}{RGB}{50 ,65 ,75 }
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\setbeamercolor*{normal text}{fg=anthrazit,bg=white}
|
||||
\setbeamercolor*{alerted text}{fg=anthrazit}
|
||||
\setbeamercolor*{example text}{fg=anthrazit}
|
||||
\setbeamercolor*{structure}{fg=gold,bg=karminrot}
|
||||
|
||||
\providecommand*{\beamer@bftext@only}{%
|
||||
\relax
|
||||
\ifmmode
|
||||
\expandafter\beamer@bftext@warning
|
||||
\else
|
||||
\expandafter\bfseries
|
||||
\fi
|
||||
}
|
||||
\providecommand*{\beamer@bftext@warning}{%
|
||||
\ClassWarning{beamer}
|
||||
{Cannot use bold for alerted text in math mode}%
|
||||
}
|
||||
|
||||
\setbeamerfont{alerted text}{series=\beamer@bftext@only}
|
||||
|
||||
\setbeamercolor{palette primary}{fg=karminrot,bg=white}
|
||||
\setbeamercolor{palette secondary}{fg=gold,bg=white}
|
||||
\setbeamercolor{palette tertiary}{fg=anthrazit,bg=white}
|
||||
\setbeamercolor{palette quaternary}{fg=black,bg=white}
|
||||
|
||||
\setbeamercolor{sidebar}{bg=karminrot!100}
|
||||
|
||||
\setbeamercolor{palette sidebar primary}{fg=karminrot}
|
||||
\setbeamercolor{palette sidebar secondary}{fg=karminrot}
|
||||
\setbeamercolor{palette sidebar tertiary}{fg=karminrot}
|
||||
\setbeamercolor{palette sidebar quaternary}{fg=karminrot}
|
||||
|
||||
\setbeamercolor{item projected}{fg=black,bg=black!20}
|
||||
|
||||
\setbeamercolor*{block body}{}
|
||||
\setbeamercolor*{block body alerted}{}
|
||||
\setbeamercolor*{block body example}{}
|
||||
\setbeamercolor*{block title}{parent=structure}
|
||||
\setbeamercolor*{block title alerted}{parent=alerted text}
|
||||
\setbeamercolor*{block title example}{parent=example text}
|
||||
|
||||
\setbeamercolor*{titlelike}{parent=structure}
|
||||
|
||||
\mode
|
||||
<all>
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
BIN
spike_trains/lecture/images/psth_comparison.pdf
Normal file
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
389
spike_trains/lecture/psth_sta-slides.tex
Normal file
@ -0,0 +1,389 @@
|
||||
\documentclass{beamer}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{listings}
|
||||
\usepackage{pgf}
|
||||
%\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
|
||||
%\usepackage{multimedia}
|
||||
|
||||
\usepackage[english]{babel}
|
||||
\usepackage{movie15}
|
||||
\usepackage[latin1]{inputenc}
|
||||
\usepackage{times}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{bm}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[scaled=.90]{helvet}
|
||||
\usepackage{scalefnt}
|
||||
\usepackage{tikz}
|
||||
\usepackage{ textcomp }
|
||||
\usepackage{soul}
|
||||
\usepackage{hyperref}
|
||||
\definecolor{lightblue}{rgb}{.7,.7,1.}
|
||||
\definecolor{mygreen}{rgb}{0,1.,0}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\mode<presentation>
|
||||
{
|
||||
\usetheme{Singapore}
|
||||
\setbeamercovered{opaque}
|
||||
\usecolortheme{tuebingen}
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
\usefonttheme{default}
|
||||
\useoutertheme{infolines}
|
||||
% \useoutertheme{miniframes}
|
||||
}
|
||||
|
||||
\AtBeginSection[]
|
||||
{
|
||||
\begin{frame}<beamer>
|
||||
\begin{center}
|
||||
\Huge \insertsectionhead
|
||||
\end{center}
|
||||
% \frametitle{\insertsectionhead}
|
||||
% \tableofcontents[currentsection,hideothersubsections]
|
||||
\end{frame}
|
||||
}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
|
||||
|
||||
\setbeamertemplate{blocks}[rounded][shadow=true]
|
||||
|
||||
\title[]{Scientific Computing -- Grundlagen der Programmierung }
|
||||
\author[]{Jan Grewe\\Abteilung f\"ur Neuroethologie\\
|
||||
Universit\"at T\"ubingen}
|
||||
|
||||
\institute[Wissenschaftliche Datenverarbeitung]{}
|
||||
\date{12.10.2015 - 06.11.2015}
|
||||
%\logo{\pgfuseimage{../../resources/UT_BM_Rot_RGB.pdf}}
|
||||
|
||||
\subject{Einf\"uhrung in die wissenschaftliche Datenverarbeitung}
|
||||
\vspace{1em}
|
||||
\titlegraphic{
|
||||
\includegraphics[width=0.5\linewidth]{../../resources/UT_WBMW_Rot_RGB}
|
||||
}
|
||||
%%%%%%%%%% configuration for code
|
||||
\lstset{
|
||||
basicstyle=\ttfamily,
|
||||
numbers=left,
|
||||
showstringspaces=false,
|
||||
language=Matlab,
|
||||
commentstyle=\itshape\color{darkgray},
|
||||
keywordstyle=\color{blue},
|
||||
stringstyle=\color{green},
|
||||
backgroundcolor=\color{blue!10},
|
||||
breaklines=true,
|
||||
breakautoindent=true,
|
||||
columns=flexible,
|
||||
frame=single,
|
||||
captionpos=b,
|
||||
xleftmargin=1em,
|
||||
xrightmargin=1em,
|
||||
aboveskip=10pt
|
||||
}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\newcommand{\mycite}[1]{
|
||||
\begin{flushright}
|
||||
\tiny \color{black!80} #1
|
||||
\end{flushright}
|
||||
}
|
||||
|
||||
\newcommand{\code}[1]{\texttt{#1}}
|
||||
|
||||
\input{../../latex/environments.tex}
|
||||
\makeatother
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}[plain]
|
||||
\frametitle{}
|
||||
\vspace{-1cm}
|
||||
\titlepage % erzeugt Titelseite
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\frametitle{Inhalt}
|
||||
\begin{enumerate}
|
||||
\item Peri Stimulus Time Histogram
|
||||
\item Spike-triggered average
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[plain]
|
||||
\huge{1. Peri Stimulus Time Histogram, PSTH}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Rasterplot}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.375\columnwidth]{images/rasterplot}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Rasterplot}
|
||||
\"Ubung:
|
||||
\begin{enumerate}
|
||||
\item Ladet die Datei: \code{lifoustim.mat} aus dem
|
||||
Ilias Ordner.
|
||||
\item Der Datensatz enth\"alt die Zeiten von Aktionspotentialen.
|
||||
\item Erzeugt einen sch\"onen Rasterplot der Zellantworten, speichert ihn.
|
||||
\item Welche Information liefert er, welche Information ist schwer
|
||||
abzulesen?
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH}
|
||||
|
||||
Darstellung der Feurreate eines Neuron als Funktion der Zeit. Es
|
||||
gibt verschiedene Methoden dieses \textbf{P}eri \textbf{S}timulus
|
||||
\textbf{T}ime \textbf{H}istogram zu erstellen.
|
||||
\begin{enumerate}
|
||||
\item Auf Basis der \textit{instantanen} Feuerrate.
|
||||
\item Auf Basis des Zeithistogramms.
|
||||
\item Durch Faltung der Zellantwort mit einem Gauss Kern.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Instantane Feuerrate ---}
|
||||
\Large{Berechnung des PSTHs durch die Instantane Feurerrate:}
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Die Feuerrate kann aus dem Abstand zwischen zwei
|
||||
aufeinanderfolgenden Aktionspotentialen
|
||||
(\textbf{Interspikeinterval}) berechnet werden. \pause
|
||||
\item Die \textbf{Instantane Feuerrate} wird aus dem Kehrwert des
|
||||
Interspikeintervals berechnet.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Instantane Feuerrate ---}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.9\columnwidth]{images/instantaneous_rate}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Instantane Feuerrate ---}
|
||||
Berechnung des PSTHs durch die Instantane Feurerrate:
|
||||
\textbf{Vorteile:}
|
||||
|
||||
\begin{enumerate}
|
||||
\item Sehr einfach zu Berechnen.
|
||||
\item Macht keine Annahmen \"uber ein Zeitraster, oder die Zeitskala
|
||||
der neuronalen Verarbeitung.
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Nachteile:}
|
||||
\begin{enumerate}
|
||||
\item Die Feuerrate ist nie null, auch wenn f\"ur lange Zeit kein
|
||||
Aktionspotential auftritt.
|
||||
\item Verh\"alt sich im Fourrier Raum nicht sehr sch\"on.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Binning Methode ---}
|
||||
\Large{Binning Methode:}
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Die Zeitachse wird in gleich gro{\ss}e Abschnitte ``bins''
|
||||
unterteilt.
|
||||
\item F\"ur jedes ``bin'' wird die Anzahl vorkommender
|
||||
Aktionspotentiale gez\"ahlt.
|
||||
\item Der Spike-count pro bin muss nun noch in die Rate umgerechnet
|
||||
werden.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Binning Methode ---}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{images/binned_rate}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Binning Methode ---}
|
||||
|
||||
Berechnung des PSTHs durch die Binning Methode:
|
||||
|
||||
\textbf{Vorteile:}
|
||||
\begin{enumerate}
|
||||
\item Sehr einfach zu Berechnen.
|
||||
\item Zeigt nur da Aktivit\"at an, wo auch Aktionspotentiale
|
||||
generiert wurden.
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Nachteile:}
|
||||
\begin{enumerate}
|
||||
\item Mach Annahmen \"uber die relevante Zeitskala neuronaler
|
||||
Verarbeitung.
|
||||
\item Die Zeitachse wird diskretisiert.
|
||||
\item Verh\"alt sich im Fourrier Raum nicht sehr sch\"on.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Faltungsmethode ---}
|
||||
\Large{Faltung mit einem Gauss Kern:}
|
||||
\normalsize
|
||||
\[r_{est}(t) = \int_{-\infty}^{\infty}d\tau \omega(\tau)\rho(t-\tau) \]
|
||||
|
||||
wobei $\omega(\tau)$ der Gauss Kern und $\rho(t)$ die Antwortfunktion ist.
|
||||
|
||||
Gl\"ucklicherweise m\"ussen wir das nicht selbst implementieren...
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Zeitabh\"angige Feuerrate, PSTH --- Faltungsmethode ---}
|
||||
\large Algortihmus:
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Die neuronalen Antworten werden ``bin\"ar'' ausgedr\"uckt.
|
||||
\item Ein Filterkern wird berechnet, der das Integral 1 hat.
|
||||
\item Mithilfe der Faltung (\code{conv} Funktion) wird jede 1 durch
|
||||
den ``Kern'' ersetzt.\\
|
||||
\code{conv(x, kern, 'mode', 'same')}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Feurerrate als Funktion der Zeit --- Faltungsmethode ---}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{images/convolved_rate}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Feurerrate als Funktion der Zeit --- Faltungsmethode ---}
|
||||
\textbf{Vorteile:}
|
||||
\begin{enumerate}
|
||||
\item Sehr ``nat\"urliche'' erscheinende Darstellung.
|
||||
\item Sehr gutes Verhalten im Fourrier Raum.
|
||||
\end{enumerate}
|
||||
|
||||
\textbf{Nachteile:}
|
||||
\begin{enumerate}
|
||||
\item Relativ rechenintensiv.
|
||||
\item Macht Annahmen \"uber die Zeitskalen neuronaler Verarbeitung.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[plain]
|
||||
\huge{2. Analyse der Beziehung zwischen Stimulus und Antwort}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
\begin{itemize}
|
||||
\item[] Die Antworten darzustellen ist gut und sch\"on, aber was sagt es uns?\pause
|
||||
\item[] Idealerweise wollen wir die Antworten in Beziehung zum
|
||||
hervorrufenden Stimulus setzen.
|
||||
\item[] Eine Methode ist der sogenannte \textbf{Spike-Triggered-Average} (STA).
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
|
||||
Der STA stellt den (mittleren) Stimulus dar, der zu einem
|
||||
Aktionspotential gef\"uhrt hat:
|
||||
|
||||
\begin{equation}
|
||||
STA(\tau) = \frac{1}{\langle n \rangle} \left\langle \displaystyle\sum_{i=1}^{n}{s(t_i - \tau)} \right\rangle
|
||||
\end{equation}
|
||||
Wobei: $\tau$ ist eine bestimmte Zeit relativ zur Zeit eines
|
||||
Aktionspotentials, $t_i$ ist der Zeitpunkt eines APs, $s(t)$ ist der
|
||||
Stimulus.\\
|
||||
|
||||
Leider m\"ussen wir das selbst implementieren...
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
\large{Algorithmus:}
|
||||
\normalsize
|
||||
\begin{enumerate}
|
||||
\item Der \textbf{STA} ist der mittlere Stimulus, der zu einem Aktionspotential f\"uhrt.
|
||||
\item F\"ur jeden Spike wird ein entsprechender Abschnitt um die Zeit des Spikes herausgeschnitten.
|
||||
\item Die einzelen Stimulussegmente werden gemittelt.
|
||||
\end{enumerate}\pause
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.5\columnwidth]{images/sta}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Spiketrain Analyse}
|
||||
\framesubtitle{Spike-Triggered-Average}
|
||||
\vspace{-1em}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.6\columnwidth]{images/sta}
|
||||
\end{figure}
|
||||
\pause
|
||||
\vspace{-0.5em}
|
||||
Welche Information liefert der \textbf{STA}?
|
||||
\small
|
||||
\begin{enumerate}
|
||||
\item Gibt es eine Beziehung zwischen Stimulus und Antwort?\pause
|
||||
\item Gibt es eine Verz\"ogerung zwischen Stimulus und Antwort? Wie
|
||||
gro{\ss} ist diese?\pause
|
||||
\item Wie weit h\"angt das Auftreten eines Aktionspotentials von der
|
||||
Vergangenheit ab? \pause
|
||||
\item Kann die Zelle in die Zukunft sehen?
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
\begin {frame}
|
||||
\framesubtitle{Spiketrain Analyse}
|
||||
\framesubtitle{Weitere Themen}
|
||||
\begin{enumerate}
|
||||
\item Tuningkurven.
|
||||
\item Stimulusrekonstruktion mittels STA.
|
||||
\item Kreuzkorrelation.
|
||||
\item Fourier Analyse, Transferfunktion, Kohärenz.
|
||||
\item Reverse Rekonstruktion.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
47
spike_trains/lecture/psth_sta.tex
Normal file
@ -0,0 +1,47 @@
|
||||
\chapter{Spiketrainanalyse}
|
||||
|
||||
Die zeitliche Abfolge von Aktionspotentialen, die ein Neuron generiert
|
||||
enth\"alt die Information \"uber den Stimulus, die das Neuron
|
||||
codiert. Aus der Analyse dieser Aktionspotentialfolgen oder,
|
||||
kompakter, Spiketrains k\"onnen wir herausfinden welche Aspekte des
|
||||
Stimulus codiert wird und somit nachfolgenden Verarbeitungsschritten
|
||||
zur Verf\"ugung steht.
|
||||
|
||||
Im elektrophysiologischen Experiment werden h\"aufig nur die
|
||||
Zeitpunkte registriert an denen Aktionspotentiale, Spikes,
|
||||
auftraten. Die Neuronale Aktivit\"at wird mitunter als Punktprozess
|
||||
aufgefasst. Erstaunlicherweise lassen sich die Spiketrains mancher
|
||||
kortikaler Neurone sehr gut durch ratenmodulierte Poissonprozesse
|
||||
modellieren.
|
||||
|
||||
Die Analyse von Spiketrains beinhaltet demnach einige der Methoden,
|
||||
die auch f\"r die Beschreibung von Punktprozessen angewandt
|
||||
werden. Dar\"uber hinaus wird versucht die Beziehung zwischen der
|
||||
zeitabh\"aengigen neuronalen Antwort und dem zugrundeliegenden
|
||||
Stimulus zu analysieren.
|
||||
|
||||
\section{Darstellung der zeitabh\"angigen Feuerrate}
|
||||
|
||||
Eine klassische Darstellung zeitabh\"angiger neuronaler Aktivit\"at
|
||||
ist das sog. Peri Stimulus Zeithistogramm (peri stimulus time
|
||||
histogram, PSTH). Es wird der zeitliche Verlauf der Feuerrate $r(t)$
|
||||
dargestellt. Die Einheit der Feuerrate ist Hertz, das heisst, die
|
||||
Anzahl Aktionspotentiale pro Sekunde. Dabei gibt es verschiedene
|
||||
Methoden diese zu bestimmen. Drei solcher Methoden sind in Abbildung
|
||||
\ref{psthfig} dargestellt.
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics[width=\columnwidth]{images/psth_comparison}
|
||||
\caption{}\label{psthfig}
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
||||
\section{Spike triggered Average}
|
||||
|
||||
Der Spike triggered average (STA) ist der mittlere Stimulus, der zu
|
||||
einem Aktionspotential in der neuronalen Antwort f\"uhrt.
|
||||
|
||||
\begin{equation}
|
||||
STA(\tau) = \frac{1}{\langle n \rangle} \left\langle \displaystyle\sum_{i=1}^{n}{s(t_i - \tau)} \right\rangle
|
||||
\end{equation}
|
226
spike_trains/lecture/spike_trains-chapter.tex
Normal file
@ -0,0 +1,226 @@
|
||||
\documentclass[12pt]{report}
|
||||
|
||||
%%%%% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\title{\tr{Introduction to Scientific Computing}{Einf\"uhrung in die wissenschaftliche Datenverarbeitung}}
|
||||
\author{Jan Benda\\Abteilung Neuroethologie\\[2ex]\includegraphics[width=0.3\textwidth]{UT_WBMW_Rot_RGB}}
|
||||
\date{WS 15/16}
|
||||
|
||||
%%%% language %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% \newcommand{\tr}[2]{#1} % en
|
||||
% \usepackage[english]{babel}
|
||||
\newcommand{\tr}[2]{#2} % de
|
||||
\usepackage[german]{babel}
|
||||
|
||||
%%%%% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{pslatex} % nice font for pdf file
|
||||
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
|
||||
|
||||
%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage[left=25mm,right=25mm,top=20mm,bottom=30mm]{geometry}
|
||||
\setcounter{tocdepth}{1}
|
||||
|
||||
%%%%% section style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage[sf,bf,it,big,clearempty]{titlesec}
|
||||
\setcounter{secnumdepth}{1}
|
||||
|
||||
|
||||
%%%%% units %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage[mediumspace,mediumqspace,Gray]{SIunits} % \ohm, \micro
|
||||
|
||||
|
||||
%%%%% figures %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{graphicx}
|
||||
\usepackage{xcolor}
|
||||
\pagecolor{white}
|
||||
|
||||
\newcommand{\ruler}{\par\noindent\setlength{\unitlength}{1mm}\begin{picture}(0,6)%
|
||||
\put(0,4){\line(1,0){170}}%
|
||||
\multiput(0,2)(10,0){18}{\line(0,1){4}}%
|
||||
\multiput(0,3)(1,0){170}{\line(0,1){2}}%
|
||||
\put(0,0){\makebox(0,0){{\tiny 0}}}%
|
||||
\put(10,0){\makebox(0,0){{\tiny 1}}}%
|
||||
\put(20,0){\makebox(0,0){{\tiny 2}}}%
|
||||
\put(30,0){\makebox(0,0){{\tiny 3}}}%
|
||||
\put(40,0){\makebox(0,0){{\tiny 4}}}%
|
||||
\put(50,0){\makebox(0,0){{\tiny 5}}}%
|
||||
\put(60,0){\makebox(0,0){{\tiny 6}}}%
|
||||
\put(70,0){\makebox(0,0){{\tiny 7}}}%
|
||||
\put(80,0){\makebox(0,0){{\tiny 8}}}%
|
||||
\put(90,0){\makebox(0,0){{\tiny 9}}}%
|
||||
\put(100,0){\makebox(0,0){{\tiny 10}}}%
|
||||
\put(110,0){\makebox(0,0){{\tiny 11}}}%
|
||||
\put(120,0){\makebox(0,0){{\tiny 12}}}%
|
||||
\put(130,0){\makebox(0,0){{\tiny 13}}}%
|
||||
\put(140,0){\makebox(0,0){{\tiny 14}}}%
|
||||
\put(150,0){\makebox(0,0){{\tiny 15}}}%
|
||||
\put(160,0){\makebox(0,0){{\tiny 16}}}%
|
||||
\put(170,0){\makebox(0,0){{\tiny 17}}}%
|
||||
\end{picture}\par}
|
||||
|
||||
% figures:
|
||||
\setlength{\fboxsep}{0pt}
|
||||
\newcommand{\texpicture}[1]{{\sffamily\footnotesize\input{#1.tex}}}
|
||||
%\newcommand{\texpicture}[1]{\fbox{\sffamily\footnotesize\input{#1.tex}}}
|
||||
%\newcommand{\texpicture}[1]{\setlength{\fboxsep}{2mm}\fbox{#1}}
|
||||
%\newcommand{\texpicture}[1]{}
|
||||
\newcommand{\figlabel}[1]{\textsf{\textbf{\large \uppercase{#1}}}}
|
||||
|
||||
% maximum number of floats:
|
||||
\setcounter{topnumber}{2}
|
||||
\setcounter{bottomnumber}{0}
|
||||
\setcounter{totalnumber}{2}
|
||||
|
||||
% float placement fractions:
|
||||
\renewcommand{\textfraction}{0.2}
|
||||
\renewcommand{\topfraction}{0.8}
|
||||
\renewcommand{\bottomfraction}{0.0}
|
||||
\renewcommand{\floatpagefraction}{0.5}
|
||||
|
||||
% spacing for floats:
|
||||
\setlength{\floatsep}{12pt plus 2pt minus 2pt}
|
||||
\setlength{\textfloatsep}{20pt plus 4pt minus 2pt}
|
||||
\setlength{\intextsep}{12pt plus 2pt minus 2pt}
|
||||
|
||||
% spacing for a floating page:
|
||||
\makeatletter
|
||||
\setlength{\@fptop}{0pt}
|
||||
\setlength{\@fpsep}{8pt plus 2.0fil}
|
||||
\setlength{\@fpbot}{0pt plus 1.0fil}
|
||||
\makeatother
|
||||
|
||||
% rules for floats:
|
||||
\newcommand{\topfigrule}{\vspace*{10pt}{\hrule height0.4pt}\vspace*{-10.4pt}}
|
||||
\newcommand{\bottomfigrule}{\vspace*{-10.4pt}{\hrule height0.4pt}\vspace*{10pt}}
|
||||
|
||||
% captions:
|
||||
\usepackage[format=plain,singlelinecheck=off,labelfont=bf,font={small,sf}]{caption}
|
||||
|
||||
% put caption on separate float:
|
||||
\newcommand{\breakfloat}{\end{figure}\begin{figure}[t]}
|
||||
|
||||
% references to panels of a figure within the caption:
|
||||
\newcommand{\figitem}[1]{\textsf{\bfseries\uppercase{#1}}}
|
||||
% references to figures:
|
||||
\newcommand{\panel}[1]{\textsf{\uppercase{#1}}}
|
||||
\newcommand{\fref}[1]{\textup{\ref{#1}}}
|
||||
\newcommand{\subfref}[2]{\textup{\ref{#1}}\,\panel{#2}}
|
||||
% references to figures in normal text:
|
||||
\newcommand{\fig}{Fig.}
|
||||
\newcommand{\Fig}{Figure}
|
||||
\newcommand{\figs}{Figs.}
|
||||
\newcommand{\Figs}{Figures}
|
||||
\newcommand{\figref}[1]{\fig~\fref{#1}}
|
||||
\newcommand{\Figref}[1]{\Fig~\fref{#1}}
|
||||
\newcommand{\figsref}[1]{\figs~\fref{#1}}
|
||||
\newcommand{\Figsref}[1]{\Figs~\fref{#1}}
|
||||
\newcommand{\subfigref}[2]{\fig~\subfref{#1}{#2}}
|
||||
\newcommand{\Subfigref}[2]{\Fig~\subfref{#1}{#2}}
|
||||
\newcommand{\subfigsref}[2]{\figs~\subfref{#1}{#2}}
|
||||
\newcommand{\Subfigsref}[2]{\Figs~\subfref{#1}{#2}}
|
||||
% references to figures within bracketed text:
|
||||
\newcommand{\figb}{Fig.}
|
||||
\newcommand{\figsb}{Figs.}
|
||||
\newcommand{\figrefb}[1]{\figb~\fref{#1}}
|
||||
\newcommand{\figsrefb}[1]{\figsb~\fref{#1}}
|
||||
\newcommand{\subfigrefb}[2]{\figb~\subfref{#1}{#2}}
|
||||
\newcommand{\subfigsrefb}[2]{\figsb~\subfref{#1}{#2}}
|
||||
|
||||
% references to tables:
|
||||
\newcommand{\tref}[1]{\textup{\ref{#1}}}
|
||||
% references to tables in normal text:
|
||||
\newcommand{\tab}{Tab.}
|
||||
\newcommand{\Tab}{Table}
|
||||
\newcommand{\tabs}{Tabs.}
|
||||
\newcommand{\Tabs}{Tables}
|
||||
\newcommand{\tabref}[1]{\tab~\tref{#1}}
|
||||
\newcommand{\Tabref}[1]{\Tab~\tref{#1}}
|
||||
\newcommand{\tabsref}[1]{\tabs~\tref{#1}}
|
||||
\newcommand{\Tabsref}[1]{\Tabs~\tref{#1}}
|
||||
% references to tables within bracketed text:
|
||||
\newcommand{\tabb}{Tab.}
|
||||
\newcommand{\tabsb}{Tab.}
|
||||
\newcommand{\tabrefb}[1]{\tabb~\tref{#1}}
|
||||
\newcommand{\tabsrefb}[1]{\tabsb~\tref{#1}}
|
||||
|
||||
|
||||
%%%%% equation references %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%\newcommand{\eqref}[1]{(\ref{#1})}
|
||||
\newcommand{\eqn}{\tr{Eq}{Gl}.}
|
||||
\newcommand{\Eqn}{\tr{Eq}{Gl}.}
|
||||
\newcommand{\eqns}{\tr{Eqs}{Gln}.}
|
||||
\newcommand{\Eqns}{\tr{Eqs}{Gln}.}
|
||||
\newcommand{\eqnref}[1]{\eqn~\eqref{#1}}
|
||||
\newcommand{\Eqnref}[1]{\Eqn~\eqref{#1}}
|
||||
\newcommand{\eqnsref}[1]{\eqns~\eqref{#1}}
|
||||
\newcommand{\Eqnsref}[1]{\Eqns~\eqref{#1}}
|
||||
|
||||
|
||||
%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{listings}
|
||||
\lstset{
|
||||
inputpath=../code,
|
||||
basicstyle=\ttfamily\footnotesize,
|
||||
numbers=left,
|
||||
showstringspaces=false,
|
||||
language=Matlab,
|
||||
commentstyle=\itshape\color{darkgray},
|
||||
keywordstyle=\color{blue},
|
||||
stringstyle=\color{green},
|
||||
backgroundcolor=\color{blue!10},
|
||||
breaklines=true,
|
||||
breakautoindent=true,
|
||||
columns=flexible,
|
||||
frame=single,
|
||||
caption={\protect\filename@parse{\lstname}\protect\filename@base},
|
||||
captionpos=t,
|
||||
xleftmargin=1em,
|
||||
xrightmargin=1em,
|
||||
aboveskip=10pt
|
||||
}
|
||||
|
||||
%%%%% math stuff: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{amsmath}
|
||||
\usepackage{bm}
|
||||
\usepackage{dsfont}
|
||||
\newcommand{\naZ}{\mathds{N}}
|
||||
\newcommand{\gaZ}{\mathds{Z}}
|
||||
\newcommand{\raZ}{\mathds{Q}}
|
||||
\newcommand{\reZ}{\mathds{R}}
|
||||
\newcommand{\reZp}{\mathds{R^+}}
|
||||
\newcommand{\reZpN}{\mathds{R^+_0}}
|
||||
\newcommand{\koZ}{\mathds{C}}
|
||||
|
||||
|
||||
%%%%% structure: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage{ifthen}
|
||||
|
||||
\newcommand{\code}[1]{\texttt{#1}}
|
||||
|
||||
\newcommand{\source}[1]{
|
||||
\begin{flushright}
|
||||
\color{gray}\scriptsize \url{#1}
|
||||
\end{flushright}
|
||||
}
|
||||
|
||||
\newenvironment{definition}[1][]{\medskip\noindent\textbf{Definition}\ifthenelse{\equal{#1}{}}{}{ #1}:\newline}%
|
||||
{\medskip}
|
||||
|
||||
\newcounter{maxexercise}
|
||||
\setcounter{maxexercise}{9} % show listings up to exercise maxexercise
|
||||
\newcounter{theexercise}
|
||||
\setcounter{theexercise}{1}
|
||||
\newenvironment{exercise}[1][]{\medskip\noindent\textbf{\tr{Exercise}{\"Ubung}
|
||||
\arabic{theexercise}:}\newline \newcommand{\exercisesource}{#1}}%
|
||||
{\ifthenelse{\equal{\exercisesource}{}}{}{\ifthenelse{\value{theexercise}>\value{maxexercise}}{}{\medskip\lstinputlisting{\exercisesource}}}\medskip\stepcounter{theexercise}}
|
||||
|
||||
\graphicspath{{figures/}}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}
|
||||
|
||||
\include{psth_sta}
|
||||
|
||||
\end{document}
|
||||
|