intro_presentation_nix.tex 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. \documentclass[pdftex]{beamer}
  2. \usetheme[author,date,title]{lines}
  3. \usecolortheme{aptero}
  4. \usepackage{beamerthemelines}
  5. \usepackage{hyperref}
  6. \usepackage{multimedia}
  7. \usepackage{wasysym}
  8. %\usepackage{ngerman} % language set to new-german
  9. \usepackage[english]{babel} % language set to new-german
  10. \usepackage[utf8]{inputenc} % coding of german special characters
  11. \usepackage{graphicx} % \includegraphics[options]{file.eps}
  12. \usepackage{tikz}
  13. \usepackage{tikz}
  14. \graphicspath{{images/}}
  15. %\usepackage{array}
  16. \usepackage{setspace}
  17. \usepackage{scalerel}
  18. \usepackage{color}
  19. \usepackage{colortbl}
  20. \usepackage{eqlist}
  21. \usepackage{pgfgantt}
  22. \usepackage{wallpaper}
  23. \usepackage[percent]{overpic}
  24. \newcommand{\paper}[1]{\footnotesize{\textit{#1}}\normalsize{}}
  25. \setlength{\unitlength}{0.01\paperwidth}
  26. % Setup of listings
  27. \usepackage{listings}
  28. \lstset{language=bash,
  29. backgroundcolor=\color{black},
  30. tabsize=3, aboveskip=0.5cm,
  31. belowskip=0.5cm, breaklines=true,captionpos = b, numbers=left,
  32. firstnumber=1, numberstyle=\tiny, xleftmargin=20pt, frame=single,
  33. framerule=0.25pt, showstringspaces=false, stringstyle=\color{white}}
  34. \definecolor{lstbg}{rgb}{0.9,0.9,0.9}
  35. \graphicspath{{../../../images/}}
  36. \title[NIX - Neo workshop]{INCF virtual training weeks 2021 \\ -- NIX Neo workshop -- }
  37. \author[]{Michael Denker, Jan Grewe, Julia Sprenger, \& Michael Sonntag}
  38. \institute[G-Node]{German Neuroinformatics Node}
  39. \date[30.08 - 01.09]{August 30, 2021 -- September 01, 2021}
  40. %\logofootright{\includegraphics[height=3.5ex]{resources/G-Node-logo.png}}
  41. %\logofootleft{\includegraphics[height=5ex]{resources/nix_logo.png}\hfill}%
  42. % \includegraphics[height=6ex]{BCCN_Tuebingen_Logo-long}\hfill%
  43. % \includegraphics[height=5ex]{CIN-E}}
  44. \titlelogo{\includegraphics[height=10ex]{resources/nix_logo.png}\hfill
  45. \includegraphics[height=10ex]{resources/G-Node-logo.png}}
  46. % \includegraphics[height=5ex]{CIN-E}}
  47. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  48. \begin{document}
  49. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  50. \begin{frame}[plain]
  51. \titlepage{}
  52. \end{frame}
  53. \begin{frame}{Reproducibility crises}
  54. \begin{center}
  55. \only<1> {
  56. \begin{overpic}[width=0.75\textwidth]{resources/rung_brazma_2013.png}
  57. \put (-20, 15) {
  58. \begin{quotation}[Rung \& Brazma, 2012]
  59. The authors replicated two studies ‘in principle’ and six ‘partially’, whereas ten were not reproduced. [...]The main reason for the lack of reproducibility was the unavailability of all relevant data or metadata.
  60. \end{quotation}
  61. }
  62. \end{overpic}
  63. } \only<2> {
  64. \begin{overpic}[width=0.75\textwidth]{resources/hines_etal_2014.png}
  65. \put (-20, 20) {
  66. \begin{quotation}[Hines et al., 2014]
  67. ... our two laboratories quite reproducibly were unable to replicate each other’s fluorescence-activated cell sorting (FACS) profiles of primary breast cells.
  68. \end{quotation}
  69. }
  70. \end{overpic}
  71. }
  72. \end{center}
  73. \end{frame}
  74. \begin{frame}{Reproducibility crisis}
  75. "Challenges in irreproducible research", Nature special, 06.07.2018, ISSN 1476-4687 \url{https://www.nature.com/collections/prbfkwmwvz}
  76. \vspace{1cm}
  77. \begin{quotation}
  78. "More than 70\% of researchers have tried and failed to reproduce another scientist's experiments, and more than half have failed to reproduce their own experiments. Those are some of the telling figures that emerged from Nature's survey of 1,576 researchers who took a brief online questionnaire on reproducibility in research."
  79. \end{quotation}
  80. \end{frame}
  81. \begin{frame}{Reproducibility crisis}
  82. What factors contribute to irreproducible research?
  83. \begin{itemize}
  84. \item <1-> Selective reporting
  85. \item <1-> Pressure to publish
  86. \item <1-> Low statistical power or poor analysis
  87. \item <1-> Not replicated enough in original lab
  88. \item <1-> Insufficient oversight/mentoring
  89. \item <1-> Methods \& code unavailable
  90. \item <1-> Poor experimental design
  91. \item <1-| alert@2> Raw data not available from original lab
  92. \item <1-> Fraud
  93. \item <1-> Insufficient peer review
  94. \item <1-> Problems with reproduction efforts
  95. \item <1-> Technical expertise required for reproduction
  96. \item <1-> Variability of standard reagents
  97. \item <1-> Bad luck
  98. \item <1-| alert@2> Insufficient metadata
  99. \end{itemize}
  100. \end{frame}
  101. \begin{frame}{Reproducibility crisis also in the Neurosciences}
  102. \large{There is a lack of standardization} \vspace{1ex}
  103. \begin{itemize}
  104. \item <1-> Earlier (roughly 2007/2008) this was also identified as one problem in neuroscience. \vspace{1ex}
  105. \item <2-> We need standards and tools to help doing good neuroscience. \vspace{1ex}
  106. \item <3-> The INCF task force on \textbf{Standardization in electrophysiology} was the starting point of the NIX project.
  107. \end{itemize}
  108. \end{frame}
  109. \begin{frame}{Reproducibility crisis also in the Neurosciences}
  110. \begin{center}
  111. \includegraphics[width=0.75\columnwidth]{resources/standards}\rotatebox{90}{\url{https://xkcd.com/927}}
  112. \end{center}
  113. \pause
  114. ... but at least some of these are \textbf{open-source}!
  115. \end{frame}
  116. \begin{frame}{NIX}
  117. \begin{center}
  118. \includegraphics[width=0.35\columnwidth]{resources/nix_logo}\\
  119. \vspace{2ex}
  120. \textbf{N}euroscience \textbf{I}nformation E\textbf{x}change\\
  121. \vspace{2ex}
  122. Originates from the neuroscience ...\\but is not limited to it.
  123. \end{center}
  124. \end{frame}
  125. \begin{frame}{NIX concept}
  126. NIX aims at:
  127. \begin{enumerate}
  128. \item One data model for storing data and metadata within the same container.
  129. \item Flexible enough to support a high variety of data types.
  130. \item Store n-dimensional data.
  131. \item Allow in-depth annotations.
  132. \item Data entities are self describing.
  133. \item Support standardization in data and metadata storing.\vspace{2ex}
  134. \item Of course, open source.
  135. \end{enumerate}
  136. \end{frame}
  137. \begin{frame}{NIX Data Model}
  138. \begin{center}
  139. \includegraphics[width=0.7\columnwidth]{../day_1/resources/data_model_overview}
  140. \end{center}
  141. \end{frame}
  142. \begin{frame}{NIX Data Model}
  143. \begin{center}
  144. \includegraphics[width=0.75\columnwidth]{../day_1/resources/example_signal}
  145. \end{center}
  146. \end{frame}
  147. \begin{frame}{NIX Data Model}
  148. \begin{itemize}
  149. \item The NIX data model is not a file format.
  150. \vspace{1ex}
  151. \item It can be implemented in many backends.
  152. \vspace{1ex}
  153. \item So far, we use the HDF5 file format as storage backend.
  154. \end{itemize}
  155. \end{frame}
  156. \begin{frame}{NIX Implementations}
  157. \begin{center}
  158. \includegraphics[width=0.85\columnwidth]{resources/nix_apis}
  159. \end{center}
  160. \end{frame}
  161. \begin{frame}{Generic APIs}
  162. \begin{columns}
  163. \begin{column}{6cm}
  164. \includegraphics[width=\columnwidth]{resources/nix_apis}
  165. \end{column}
  166. \begin{column}{6.5cm}
  167. \begin{itemize}
  168. \item There are two native APIs: nixpy (python) and nixio (C++) and two that use language bindings to write NIX files to HDF5 files.
  169. \vspace{1ex}
  170. \item In principle, we can support several different backends.
  171. \end{itemize}
  172. \end{column}
  173. \end{columns}
  174. \end{frame}
  175. \begin{frame}{Domain specific APIs}
  176. \begin{columns}
  177. \begin{column}{6cm}
  178. \includegraphics[width=\columnwidth]{resources/nix_apis}
  179. \end{column}
  180. \begin{column}{6.5cm}
  181. \begin{itemize}
  182. \item Domain specific APIs use the generic ones to ease access to data from one domain, e.g. Electrophysiology.
  183. \vspace{1ex}
  184. \item They provide a way to adapt and standardize storing data.
  185. \item This does not hinder to read the data with the generic libraries.
  186. \end{itemize}
  187. \end{column}
  188. \end{columns}
  189. \vspace{2ex}
  190. $\Rightarrow$ NEO-nixio stores NEO electrophysiology data using NIX as storage backend.\\
  191. \vspace{1ex}
  192. $\Rightarrow$ Storing to NIX can be embedded into the recording software \url{http://relacs.sourceforge.net}.
  193. \end{frame}
  194. \begin{frame}{Reproducibility crisis also in the Neurosciences}
  195. \begin{center}
  196. \includegraphics[width=0.75\columnwidth]{resources/standards}\rotatebox{90}{\url{https://xkcd.com/927}}\\
  197. \vspace{1ex}
  198. \textit{...and the other 40+ ephys data standards?}
  199. \end{center}
  200. \end{frame}
  201. \begin{frame}{Neo}
  202. \begin{columns}
  203. \begin{column}{6.5cm}
  204. \includegraphics[height=.8\textheight]{resources/neo_IODiagram.png}
  205. \end{column}
  206. \begin{column}{5.5cm}
  207. \includegraphics[width=4cm]{resources/neo_logo_transparent.png}
  208. \begin{itemize}
  209. \item interfaces to 40+ ephys properietary \& open formats in various versions
  210. \vspace{1ex}
  211. \item provides a standardized ephys data \textbf{representation}, it is not a file format.
  212. \item reads all formats, but provides writing capability only for selected open formats.
  213. \end{itemize}
  214. \end{column}
  215. \end{columns}
  216. \end{frame}
  217. \begin{frame}{Neo}
  218. A basis for
  219. \begin{itemize}
  220. \item format conversion
  221. \item custom data analysis
  222. \item diverse tools dealing with ephys data
  223. \end{itemize}
  224. \vspace{1ex}
  225. \includegraphics[width=\textwidth]{resources/neo_as_interface.png}
  226. \end{frame}
  227. \begin{frame}{Elephant}
  228. \begin{columns}
  229. \begin{column}{5cm}
  230. \includegraphics[width=\textwidth]{resources/elephant_structure.png}
  231. \end{column}
  232. \begin{column}{7cm}
  233. Electrophysiology Analysis Toolkit
  234. \begin{itemize}
  235. \item electrophysiology data preprocessing
  236. \item spiketrain analysis
  237. \item local field potential analysis
  238. \end{itemize}
  239. \end{column}
  240. \end{columns}
  241. \end{frame}
  242. \begin{frame}{Viziphant}
  243. \begin{columns}
  244. \begin{column}{6cm}
  245. \includegraphics[width=\textwidth]{resources/viziphant_logo_sidebar.png}
  246. \end{column}
  247. \begin{column}{6cm}
  248. Quick and easy visualizations
  249. \begin{itemize}
  250. \item of Neo based electrophysiology data
  251. \item of Elephant analysis results
  252. \end{itemize}
  253. \end{column}
  254. \end{columns}
  255. \end{frame}
  256. \begin{frame}{NIX-NEO Workshop}
  257. In this workshop we will ...
  258. \begin{itemize}
  259. \item introduce the ideas and concepts of the NIX data model.
  260. \item show how various data types can be represented with it.
  261. \item show how to use and find data in NIX files.
  262. \item become familiar with the Neo representation of electrophysiology data.
  263. \item learn how to used Elephant and Viziphant for data analysis and visualizations.
  264. \item use a lot of hands-on exercises.
  265. \end{itemize}
  266. \end{frame}
  267. \begin{frame}{NIX-NEO Workshop}
  268. \begin{columns}[t]
  269. \begin{column}{4cm}
  270. \textbf{Day 1:} NIX Basics\vspace{1ex}
  271. \begin{itemize}
  272. \item Introduction
  273. \item File \& data handling
  274. \item Tagging
  275. \item Annotations
  276. \end{itemize}
  277. \end{column}
  278. \begin{column}{4cm}
  279. \textbf{Day 2:} Deeper dive\vspace{1ex}
  280. \begin{itemize}
  281. \item Adding \textit{Features}
  282. \item Finding stuff
  283. \item Advanced features
  284. \end{itemize}
  285. \end{column}
  286. \begin{column}{4cm}
  287. \textbf{Day 3:} NEO\&Elephant\vspace{1ex}
  288. \begin{itemize}
  289. \item Introduction
  290. \item Working with NEO data
  291. \item Elephant toolbox
  292. \end{itemize}
  293. \end{column}
  294. \end{columns}
  295. \end{frame}
  296. \begin{frame}{NIX-NEO Workshop - Requirements}
  297. \begin{itemize}
  298. \item We run the workshop using the python version of the NIX library (called nixio while the project is called nixpy...) and you should have some basic knowledge of the python programming language.
  299. \item You need a running python environment ($\geq$ 3.6).
  300. \item Installed libraries:
  301. \begin{itemize}
  302. \item jupyter
  303. \item matplotlib
  304. \item nixio
  305. \item neo
  306. \item elephant
  307. \item viziphant
  308. \end{itemize}
  309. \item Alternatively we can use Binder (see the README file in the course repository). \url{https://gin.g-node.org/INCF-workshop-2021/NIX-Neo-workshop}
  310. \end{itemize}
  311. \end{frame}
  312. \begin{frame}[fragile]{NIX-NEO Workshop - Requirements}
  313. \begin{block}{Installing the requirements locally}
  314. \verb+>pip3 install -r requirements.txt+
  315. \end{block}
  316. \pause
  317. \vspace{2cm}
  318. \begin{alertblock}{Please make sure you have the latest \texttt{nixio} version.}
  319. We will rely on nixio version 1.5.1 In case of doubt run:\\
  320. \verb+pip3 install nixio --upgrade+
  321. \end{alertblock}
  322. \end{frame}
  323. \begin{frame}{NIX-NEO Workshop - Resources}
  324. \textbf{Course material:}
  325. \begin{itemize}
  326. \item \url{https://gin.g-node.org/INCF-workshop-2021/NIX-Neo-workshop}
  327. \end{itemize}
  328. \vspace{2ex}
  329. \textbf{Source code:}
  330. \begin{itemize}
  331. \item \url{https://github.com/g-node/nix}
  332. \item \url{https://github.com/g-node/nixpy}
  333. \item \url{https://github.com/g-node/nix-mx}
  334. \end{itemize}
  335. \vspace{2ex}
  336. \textbf{Documentation \& tutorials:}
  337. \begin{itemize}
  338. \item \url{https://nixpy.readthedocs.io/}
  339. \item \url{https://nixio.readthedocs.io/}
  340. \end{itemize}
  341. \end{frame}
  342. \begin{frame}{NIXPY documentation}
  343. \only<1> {
  344. \begin{center}
  345. \includegraphics[width=0.7\columnwidth]{resources/rtd_main.png}
  346. \end{center}
  347. }\only<2> {
  348. \begin{center}
  349. \includegraphics[width=0.7\columnwidth]{resources/rtd_tutorials.png}
  350. \end{center}
  351. }
  352. \end{frame}
  353. \end{document}