This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/programming/lectures/plotting_spike_trains.tex

383 lines
10 KiB
TeX

\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}
}
\input{../../latex/environments.tex}
\makeatother
\begin{document}
\begin{frame}[plain]
\frametitle{}
\vspace{-1cm}
\titlepage % erzeugt Titelseite
\end{frame}
\begin{frame}[plain]
\frametitle{Rekapitulation}
\begin{enumerate}
\item Was ist ein Programm\pause
\item Skripte\pause
\item Funktionen\pause
\item Vom Problem zum Algorithmus
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Grundlagen der Programmierung}
\frametitle{Tagesmen\"u}
\begin{enumerate}
\item Graphische Darstellung von Daten I
\item Fortgeschrittene Datenstrukturen und Navigation im
Dateisystem.
\item Spiketrain Analyse I
\item \"Ubungen, \"Ubungen, \"Ubungen.
\end{enumerate}
\end{frame}
\begin{frame}[plain]
\huge{1. Graphische Darstellung von Daten}
\end{frame}
\begin{frame}[fragile]
\frametitle{Graphische Darstellung von Daten}
\framesubtitle{Plotting Interface}
Es gibt zwei Wege Graphen zu bearbeiten:
\begin{enumerate}
\item Klickibunti \"uber das \textit{graphische User Interface}\pause
\item Die Kommandozeile bzw. in Skripten und Funktionen.\pause
\end{enumerate}
Beides hat seine Berechtigung und seine eigenen Vor- und Nachteile. Welche?
\end{frame}
\begin{frame} [fragile]
\frametitle{Graphische Darstellung von Daten}
\framesubtitle{Ver\"andern von Eigenschaften \"uber die Kommandozeile}
\vspace{-0.75em}
\scriptsize
\begin{lstlisting}
fig = figure();
set(gcf, 'PaperUnits', 'centimeters', 'PaperSize', [11.7 9.0]);
set(gcf, 'PaperPosition',[0.0 0.0 11.7 9.0], 'Color', 'white')
hold on
plot(time, neuronal_data, 'color', [ 0.2 0.5 0.7], 'linewidth', 1.)
plot(spike_times, ones(size(spike_times))*threshold, 'ro', 'markersize', 4)
line([time(1) time(end)], [threshold threshold], 'linestyle', '--',
'linewidth', 0.75, 'color', [0.9 0.9 0.9])
ylim([0 35])
xlim([0 2.25])
box('off')
xlabel('time [s]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
ylabel('potential [mV]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
title('pyramidal cell', 'fontname', 'MyriadPro-Regular', 'fontsize', 12)
set(gca, 'TickDir','out', 'linewidth', 1.5, 'fontname', 'MyriadPro-Regular')
saveas(fig, 'spike_detection.pdf', 'pdf')
\end{lstlisting}
\end{frame}
\begin{frame} [fragile]
\frametitle{Graphische Darstellung von Daten}
\framesubtitle{Ver\"andern von Eigenschaften \"uber die Kommandozeile}
\begin{figure}
\centering
\includegraphics[width=0.75\columnwidth]{./images/spike_detection}
\end{figure}
\end{frame}
\begin{frame} [fragile]
\frametitle{Graphische Darstellung von Daten}
\framesubtitle{Welche Art Plot wof\"ur?}
\url{http://www.mathworks.de/discovery/gallery.html}
\end{frame}
\begin{frame} [fragile]
\frametitle{Graphische Darstellung von Daten}
\framesubtitle{Was macht einen guten Plot aus?}
\begin{figure}
\centering
\includegraphics[width=0.9\columnwidth]{./images/convincing}
\end{figure}
\end{frame}
\begin{frame} [fragile]
\frametitle{Graphische Darstellung von Daten}
\framesubtitle{Was macht einen guten Plot aus?}
\begin{enumerate}
\item Klarheit.
\item Vollstaendige Beschriftung.
\item Deutliche Unterscheidbarkeit von Kurven.
\item Keine suggestive Darstellung.
\item Ausgewogenheit von Linienst\"arken Schrift- und Plotgr\"o{\ss}e.
\end{enumerate}
\end{frame}
\begin{frame}[plain]
\huge{2. Fortgeschrittene Datenstrukturen}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Strukturen}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Strukturen}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Navigieren im Dateisystem}
\end{frame}
\begin{frame}
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Cell Arrays}
\begin{enumerate}
\item Matrizen k\"onnen nur rechtwinklig sein.\pause
\item Manchmal hat man aber unterschiedlich viele Datenpunkte, die
dennoch logisch zusammengeh\"oren.\pause
\item Z.B. Wenn man Zeitpunkte von Neuronalen- oder Verhaltensereignissen hat.
\end{enumerate}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fortgeschrittene Datenstrukturen}
\framesubtitle{Cell Arrays}
\scriptsize
\begin{lstlisting}
>> % create a cell array
>> cell_array = {};
>>
>> % assignment of arbitrary content
>> cell_array{1} = ones(100,1);
>> cell_array{2} = ones(10000,100);
>> cell_array{3} = 'das ist ein Test';
>> cell_array{4} = {};
>>
>> % accessing of content
>> size(cell_array{1})
ans =
100 1
>>
\end{lstlisting}
\end{frame}
\begin{frame}[plain]
\huge{3. Spiketrain Analyse I}
\end{frame}
\begin{frame}
\frametitle{Spiketrain Analyse I}
\framesubtitle{Rasterplot}
\begin{figure}
\centering
\includegraphics[width=0.375\columnwidth]{images/rasterplot}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Spiketrain Analyse I}
\framesubtitle{Rasterplot}
\"Ubung:
\begin{enumerate}
\item Ladet die Datei: electrorecptor\_spike\_times.mat aus dem
Ilias Ordner.
\item Der Datensatz enth\"alt die Zeiten von Aktionspotentialen.
\item Schaut euch den Inhalt und skizziert wie das Problem gel\"ost
werden k\"onnte.
\item Erzeugt einen Rasterplot.
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Spiketrain Analyse I}
\framesubtitle{Feuerrate \"uber
die Zeit}
\begin{enumerate}
\item Die Feuerrate kann aus dem Abstand zwischen zwei
aufeinanderfolgenden Aktionspotentialen
(\textbf{Interspikeinterval}) berechnet werden. \pause
\item Auch als \textbf{Instantane Feuerrate} bezeichnet.
\end{enumerate}
\begin{figure}
\centering
\includegraphics[width=0.5\columnwidth]{images/isi}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Spiketrain Analyse I}
\framesubtitle{Feuerrate \"uber
die Zeit}
\begin{enumerate}
\item Z.B. das \textbf{P}eri- \textbf{S}timulus - \textbf{T}ime -
\textbf{H}istogram, \textbf{PSTH}
\item Wird berechnet indem die Zeit in ``bins'' geteilt wird die
Anzahl Spikes pro bin gezaehlt werden.
\item Die Anzahl wird dann in eine Feuerrate umgerechnet.
\end{enumerate}\pause
\begin{figure}
\centering
\includegraphics[width=0.5\columnwidth]{images/binning}
\end{figure}
\end{frame}
\begin{frame}[fragile]
\frametitle{Spiketrain Analyse I}
\framesubtitle{Feuerrate \"uber die Zeit}
\begin{enumerate}
\item Z.B. das \textbf{P}eri- \textbf{S}timulus - \textbf{T}ime -
\textbf{H}istogram, \textbf{PSTH}
\item Wird berechnet indem man die Aktivit\"at bin\"ar ausdr\"uckt.
\item Jede 1 wird dann duch einen ``Kern'' ersetzt.
\item Der Vorgang heisst Faltung (\verb+conv+).
\end{enumerate}\pause
\begin{figure}
\centering
\includegraphics[width=0.5\columnwidth]{images/conv}
\end{figure}
\end{frame}
\begin{frame} [fragile]
\frametitle{Spiketrain Analyse I}
\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}
\begin{frame}[fragile]
\frametitle{Spiketrain Analyse}
\framesubtitle{Spike-Triggered-Average}
\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}
\end{document}