%% LyX 1.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english,handout]{beamer}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{verbatim}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{amssymb}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
 \AtBeginDocument{
   \let\origtableofcontents=\tableofcontents
   \def\tableofcontents{\@ifnextchar[{\origtableofcontents}{\gobbletableofcontents}}
   \def\gobbletableofcontents#1{\origtableofcontents}
 }
 \makeatletter
 \long\def\lyxframe#1{\@lyxframe#1\@lyxframestop}%
 \def\@lyxframe{\@ifnextchar<{\@@lyxframe}{\@@lyxframe<*>}}%
 \def\@@lyxframe<#1>{\@ifnextchar[{\@@@lyxframe<#1>}{\@@@lyxframe<#1>[]}}
 \def\@@@lyxframe<#1>[{\@ifnextchar<{\@@@@@lyxframe<#1>[}{\@@@@lyxframe<#1>[<*>][}}
 \def\@@@@@lyxframe<#1>[#2]{\@ifnextchar[{\@@@@lyxframe<#1>[#2]}{\@@@@lyxframe<#1>[#2][]}}
 \long\def\@@@@lyxframe<#1>[#2][#3]#4\@lyxframestop#5\lyxframeend{%
   \frame<#1>[#2][#3]{\frametitle{#4}#5}}
 \makeatother
 \def\lyxframeend{} % In case there is a superfluous frame end
 \newenvironment{topcolumns}{\begin{columns}[t]}{\end{columns}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{listings}
\usetheme{Warsaw}
% or ...
%\usetheme{Antibes}	% tree outline, neat
%\usetheme{JuanLesPins}	% like Antibes, with shading
%\usetheme{Bergen}	% outline on side
%\usetheme{Luebeck}	% like Warsaw, square sides
%\usetheme{Berkeley}	% interesting left bar outline
%\usetheme{Madrid}	% clean, nice.  7/12 page numbers
%\usetheme{Berlin}	% dots show slide number
%\usetheme{Malmoe}	% OK, plain, unshaded
%\usetheme{Boadilla}	% nice, white bg, no top bar
%\usetheme{Marburg}	% nice, outline on right
%\usetheme{boxes}	% ???
%\usetheme{Montpellier}	% tree outline on top, plainish white
%\usetheme{Copenhagen}	% like Warsaw
%\usetheme{PaloAlto}	% looks good
%\usetheme{Darmstadt}	% like Warsaw with circle outline
%\usetheme{Pittsburgh}
%\usetheme{default}
%\usetheme{Rochester}	% like boxy, unshaded warsaw
%\usetheme{Dresden}	% circle outline on top
%\usetheme{Singapore}	% purple gradient top
%\usetheme{Frankfurt}	% like Warsaw with circle outline on top
%\usetheme{Szeged}
%\usetheme{Goettingen}	% light purple right bar outline
%\usetheme{Warsaw}
%\usetheme{Hannover}	% like Goett with bar on left
%\usetheme{compatibility}
%\usetheme{Ilmenau}

\setbeamercovered{transparent}
% or whatever (possibly just delete it)

%\usecolortheme{seahorse}
%\usecolortheme{rose}

\usepackage{babel}
\makeatother
\begin{document}

\title[Brainlab]{Brainlab:}


\subtitle{A toolkit to aid in the design, simulation, and analysis of spiking
neural networks with the NCS environment}


\author[Rich Drewes]{Rich Drewes\\University of Nevada, Reno}


\date{May 2005\\Thesis defense}


\titlegraphic{}

\frame{\maketitle}
\pgfdeclareimage[height=0.5cm]{institution-logo}{institution-logo-filenameO}

\logo{\pgfuseimage{institution-logo}}

% RPD:  can't get this to work on any template.  not present in Warsaw any way, it seems

% hmm, problem seems to be that it isn't copied to the tmp dir, probably becuase it doesn't have the

% filename extension (which is tacked on by pgf it seems)

%\AtBeginSubsection[]{

%  \frame<beamer>{ 

%    \frametitle{Outline}   

%    \tableofcontents[currentsection,currentsubsection] 

%  }

%}

%\beamerdefaultoverlayspecification{<+->}


\lyxframeend{}\lyxframe{Outline}

\tableofcontents{}


\lyxframeend{}


\lyxframeend{}\section{NCS, the NeoCortical Simulator}


\lyxframeend{}\lyxframe{NCS, the NeoCortical Simulator}



\verbatiminput{demo3.py}


\lyxframeend{}


\lyxframeend{}\subsection{NCS input file format}


\lyxframeend{}\lyxframe{\texttt{.in} file: the BRAIN block}

{\scriptsize \verbatiminput{thesispres-infile1.txt}}{\scriptsize \par}


\lyxframeend{}


\lyxframeend{}\lyxframe{\texttt{.in} file: a COLUMN block}

{\scriptsize \verbatiminput{thesis-infile2.txt}}{\scriptsize \par}


\lyxframeend{}


\lyxframeend{}\lyxframe{Typical MATLAB-NCS usage}

{\footnotesize \verbatiminput{thesispres-matlabexample.txt}}{\footnotesize \par}


\lyxframeend{}


\lyxframeend{}\subsection{Why Brainlab?}


\lyxframeend{}\lyxframe{My MATLAB-NCS experience}



\begin{block}
{}
\begin{itemize}
\item Macroprocessor style model building is limited
\item Changes to model typically require many changes to script

\begin{itemize}
\item It is easy to make errors
\item Small changes to model can require many changes
\end{itemize}
\item Saving the models and executing them as a separate step is undesirable

\begin{itemize}
\item Prevents strategies like GA search for models
\item Prevents encapsulation of an {}``experiment as a script''
\end{itemize}
\item There is typically very little code reuse
\item MATLAB is not a particularly elegant text processing language
\item MATLAB's support for general purpose libraries is weak
\end{itemize}
\end{block}

\lyxframeend{}


\lyxframeend{}\subsection{Brainlab design goals}


\lyxframeend{}\lyxframe{Brainlab design goals}

\begin{block}
{}
\begin{itemize}
\item <1->Allow very complex experiments with maximum clarity and minimum
effort
\item <2->Allow very simple experiments with minimum overhead
\item <3->A model is a script (there is no other reasonable way)
\item <3->Integrated modeling, experimentation, analysis
\item <3->Possible interactive use
\item <4->Standard reusable component libraries. Extensible, several
\item <5->Free, and open source, from top to bottom
\item <6->Based on a language that is clean, good at text processing as
well as math, with extensive general purpose libraries
\item <3->Remote or local operation; make remote transparent
\item <7->Object oriented neural model design
\end{itemize}
\end{block}

\lyxframeend{}


\lyxframeend{}\section{Brainlab}


\lyxframeend{}\subsection{Introductory examples}


\lyxframeend{}\lyxframe{Hello world}

\lstinputlisting[language=python,breaklines]{thesispres-LJ1.py}


\lyxframeend{}


\lyxframeend{}\lyxframe{Paramaterized experiments}

{\scriptsize \lstinputlisting[language=python,breaklines]{thesispres-LJ2.py}}{\scriptsize \par}


\lyxframeend{}


\lyxframeend{}\lyxframe{Algorithmic model building}

{\scriptsize \lstinputlisting[language=python,breaklines]{thesispres-algo.py}}{\scriptsize \par}


\lyxframeend{}


\lyxframeend{}\subsection{Brainlab and Python}


\lyxframeend{}\lyxframe{Why Python?}

\begin{itemize}
\item Open source, free
\item Widely used and growing
\item Active and growing scientific community
\item competitive math package
\item competitive plotting package
\item Clean language
\item Object oriented
\item Efficient
\item Dynamically typed
\item Enforced indentation
\end{itemize}

\lyxframeend{}


\lyxframeend{}\lyxframe{Brainlab object orientation}

\begin{itemize}
\item \texttt{COLUMN}, \texttt{LAYER}, \texttt{CELL}, \texttt{SYNAPSE} are
Python object classes
\item These are \emph{nested} classes of \texttt{BRAIN} class
\item \texttt{\_\_repr\_\_()} is overridden to output the .in file representation
\end{itemize}

\lyxframeend{}


\lyxframeend{}\lyxframe{netplot 3D module}

\includegraphics[%
  draft,
  height=3in,
  keepaspectratio]{snapLJ9-reduced.png}


\lyxframeend{}


\lyxframeend{}\lyxframe{Data access and report generation functions}

\begin{block}
{This is the title of another block}
\begin{itemize}
\item one
\item two
\item three
\end{itemize}
\end{block}

\lyxframeend{}


\lyxframeend{}\lyxframe{Make Titles Informative. }

\begin{itemize}
\item <1->You can also use overlay specifications to create overlays.
\item <3->This allows you to present things in any order.
\item <2->This is shown second.
\end{itemize}
\begin{uncoverenv}%{}
This is uncovered
\end{uncoverenv}%{}

\lyxframeend{}


\lyxframeend{}\section{More complex examples}


\lyxframeend{}\subsection{Ph.D. research}


\lyxframeend{}\lyxframe{My Ph.D. research}


\framesubtitle{Testing a proposed information processing role for cortical microcircuits}


\lyxframeend{}


\lyxframeend{}\subsection{An investigation into self-sustaining firing}


\lyxframeend{}\lyxframe{Phase space transitions in recurrent network}


\framesubtitle{Investigation into self-sustaining firing}

Dr. Doursat had done some runs with a manually edited .in file. He
was looking for a quick way to automate the creation of many .in files
with varying parameters and examine the results. 

\begin{block}
{Setting up the experiment in Brainlab}
\begin{itemize}
\item Convert plain .in file into a script
\item Create experiment script
\item Create data analysis/graphing
\end{itemize}
\end{block}
This is something that could have been done in (for example) MATLAB,
but as the experiment grows in complexity it would become less and
less convenient.


\lyxframeend{}


\lyxframeend{}\lyxframe{Make Titles Informative. }

\begin{topcolumns}%{}


\column{5cm}

\begin{theorem}%{}
<1->In left column.
\end{theorem}%{}

\column{5cm}

\begin{proof}%{}
Glarf.
\end{proof}%{}

\column{5cm}

\begin{corollary}%{}
<2->In right column.\\
New line
\end{corollary}%{}
\end{topcolumns}%{}

\lyxframeend{}


\lyxframeend{}\section{Prospects}


\lyxframeend{}\lyxframe{Prospects}

\begin{itemize}
\item A colleague in our lab used an earlier version of Brainlab
\item I have made very extensive use of Brainlab in my own experiments
\item A colleague in our lab has recently begun using Brainlab in his experiments
\item Another lab is beginning to use NCS, and expressed interest in Brainlab
\end{itemize}

\lyxframeend{}


\lyxframeend{}\lyxframe{Thoughts on a next generation NCS}


\lyxframeend{}


\lyxframeend{}\lyxframe{Future work}


\lyxframeend{}


\lyxframeend{}\lyxframe{Acknowledgements}

\begin{block}
{Thanks to:}
\begin{itemize}
\item My committee
\item Chair, Dr. Harris
\item Dr. Goodman, for the Brainlab
\end{itemize}
\end{block}

\lyxframeend{}
\end{document}
