aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-06-03 02:21:03 +0200
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-06-03 02:21:03 +0200
commit05593d91a4148d2c852e263995a170007dbfb628 (patch)
treee37b349c205d09f7225007b1f940990992f86559
parent90f6b5b44a1cda18990c2f74726f5bf2d1c143c2 (diff)
Slides improved for IAC DNC and SUNDIAL meetings
The slides were significantly upgraded to help in making a better introduction and clearly demonstrating things for the users.
-rw-r--r--Makefile2
-rw-r--r--img/celebration.jpgbin0 -> 208639 bytes
-rw-r--r--img/git.pngbin0 -> 59280 bytes
-rw-r--r--img/h2020.pngbin0 -> 330305 bytes
-rw-r--r--img/happy-question.jpgbin0 -> 34832 bytes
-rw-r--r--img/happy.jpgbin0 -> 21671 bytes
-rw-r--r--img/horizon2020.jpgbin0 -> 69156 bytes
-rw-r--r--img/nature-cartoon.jpgbin0 -> 118427 bytes
-rw-r--r--img/rda.pngbin0 -> 23031 bytes
-rw-r--r--img/software-cite-highlighted.pngbin0 -> 759734 bytes
-rw-r--r--img/software-cite.pngbin0 -> 729463 bytes
-rw-r--r--img/software-highlighted.pngbin0 -> 322450 bytes
-rw-r--r--img/software.pngbin0 -> 322258 bytes
-rw-r--r--img/sundial.pngbin0 -> 55471 bytes
-rw-r--r--img/unchained.jpgbin0 -> 102824 bytes
-rw-r--r--reproducible-paper.tex492
-rw-r--r--tex/plot.tex109
17 files changed, 539 insertions, 64 deletions
diff --git a/Makefile b/Makefile
index 7e23c36..fdfc2b7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
# PDF slides:
-reproducible-paper.pdf: reproducible-paper.tex
+reproducible-paper.pdf: reproducible-paper.tex tex/plot.tex
# We'll run pdflatex two times so the page numbers and
# internal links also work.
pdflatex reproducible-paper
diff --git a/img/celebration.jpg b/img/celebration.jpg
new file mode 100644
index 0000000..20ea68c
--- /dev/null
+++ b/img/celebration.jpg
Binary files differ
diff --git a/img/git.png b/img/git.png
new file mode 100644
index 0000000..a8fec37
--- /dev/null
+++ b/img/git.png
Binary files differ
diff --git a/img/h2020.png b/img/h2020.png
new file mode 100644
index 0000000..3db57b9
--- /dev/null
+++ b/img/h2020.png
Binary files differ
diff --git a/img/happy-question.jpg b/img/happy-question.jpg
new file mode 100644
index 0000000..2d13aa4
--- /dev/null
+++ b/img/happy-question.jpg
Binary files differ
diff --git a/img/happy.jpg b/img/happy.jpg
new file mode 100644
index 0000000..c5f75f2
--- /dev/null
+++ b/img/happy.jpg
Binary files differ
diff --git a/img/horizon2020.jpg b/img/horizon2020.jpg
new file mode 100644
index 0000000..a88692c
--- /dev/null
+++ b/img/horizon2020.jpg
Binary files differ
diff --git a/img/nature-cartoon.jpg b/img/nature-cartoon.jpg
new file mode 100644
index 0000000..c4ab023
--- /dev/null
+++ b/img/nature-cartoon.jpg
Binary files differ
diff --git a/img/rda.png b/img/rda.png
new file mode 100644
index 0000000..fff7205
--- /dev/null
+++ b/img/rda.png
Binary files differ
diff --git a/img/software-cite-highlighted.png b/img/software-cite-highlighted.png
new file mode 100644
index 0000000..dd9d005
--- /dev/null
+++ b/img/software-cite-highlighted.png
Binary files differ
diff --git a/img/software-cite.png b/img/software-cite.png
new file mode 100644
index 0000000..720d8a2
--- /dev/null
+++ b/img/software-cite.png
Binary files differ
diff --git a/img/software-highlighted.png b/img/software-highlighted.png
new file mode 100644
index 0000000..51c8677
--- /dev/null
+++ b/img/software-highlighted.png
Binary files differ
diff --git a/img/software.png b/img/software.png
new file mode 100644
index 0000000..0967475
--- /dev/null
+++ b/img/software.png
Binary files differ
diff --git a/img/sundial.png b/img/sundial.png
new file mode 100644
index 0000000..85624a8
--- /dev/null
+++ b/img/sundial.png
Binary files differ
diff --git a/img/unchained.jpg b/img/unchained.jpg
new file mode 100644
index 0000000..424ea4b
--- /dev/null
+++ b/img/unchained.jpg
Binary files differ
diff --git a/reproducible-paper.tex b/reproducible-paper.tex
index 2abf09e..e96d60b 100644
--- a/reproducible-paper.tex
+++ b/reproducible-paper.tex
@@ -1,33 +1,77 @@
\documentclass[9pt]{beamer}
-
%% Beamer settings.
-\setbeamertemplate{footline}[frame number]
-
+%\setbeamertemplate{footline}[frame number]
%% Packages to import.
\usepackage{tcolorbox} %For a color-box.
\usepackage{textcomp} %For a copyright sign.
-
%% To simplify arXiv links
\newcommand{\arxivlink}[1]{{\footnotesize
- (\textcolor{blue}{\href{https://arxiv.org/abs/#1}{arXiv:#1}})}}
-
-
+ (\textcolor{blue}{\href{https://arxiv.org/abs/#1}{arXiv:#1}})}}
%% Set the title
-\title{Reproducible scientific paper/project}
-
+\title{\LARGE \textbf{BIG} data, \textbf{BIG} responsibility:\\
+ \small Template/framework for reproducible scientific projects/papers}
%% Set the author
\author{Mohammad Akhlaghi\\\vspace{2mm}\footnotesize Instituto de
- Astrof\'isica de Canarias ({\scriptsize IAC}),\\Tenerife, Spain
+ Astrof\'isica de Canarias ({\scriptsize IAC}),\\Tenerife, Spain\\
+ \vspace{0.5cm}\includegraphics[width=1.8cm]{img/iac.png}
+ \includegraphics[width=3cm]{img/sundial.png}%\vspace{0.5cm}
}
-
%% Set the date and insitutional logos.
-\date{\includegraphics[width=2cm]{img/iac.png}}
+\date{\scriptsize \href{https://www.astro.rug.nl/~sundial/MidtermMeeting.html}{SUNDIAL Midterm meeting}, June 5th, 2019\\ Ghent, Belgium}
+
+%% For a wider writing width.
+\newcommand\Wider[2][3em]{%
+\makebox[\linewidth][c]{%
+ \begin{minipage}{\dimexpr\textwidth+#1\relax}
+ \raggedright#2
+ \end{minipage}%
+ }%
+}
+
+%% TiKZ
+\usepackage{tikz}
+\usetikzlibrary{graphs}
+\usetikzlibrary{positioning}
+\tikzset{ bbox/.style={
+ rectangle,
+ minimum width=2.5cm,
+ rounded corners=2mm,
+ very thick,draw=black!50,
+ top color=white,
+ bottom color=black!20 } }
+
+\tikzset{ rbox/.style={
+ rectangle,
+ dotted,
+ minimum width=2.5cm,
+ rounded corners=2mm,
+ very thick,draw=red!50!black!50,
+ top color=white,
+ bottom color=red!50!black!20 } }
+
+\tikzset{ gbox/.style={
+ rectangle,
+ minimum width=2.5cm,
+ very thick,
+ draw=green!50!black!50,
+ top color=white,
+ bottom color=green!50!black!20 } }
+
+
+
+
+
+
+
+
+
+
@@ -45,9 +89,12 @@
\end{frame}
+
+
+
\begin{frame}{Necessity of (exactly) reproducible research}
\begin{itemize}
- \setlength\itemsep{0.3cm}
+ \setlength\itemsep{0.7cm}
\item To be considered \alert{scientific}, any result has to be
reproducible.
\item The tsunami of data, fast internet, and high processing
@@ -55,25 +102,125 @@
result}.
\item But these factors have also greatly increased the
\alert{complexity} of an analysis. Making it impossible to
- exactly describe all steps in a published paper.
- \item Most scientific papers thus ignore the ``details'' (as they
- interpret it).
+ exactly describe all steps in a traditional published paper.
+ \item Most scientific papers thus \alert{ignore some ``details''}
+ (as they interpret it).
\item But due to the complexity, even a small deviation from the
exact result, can be due to many different parts of the
analysis. Hence, its \alert{critical to exactly reproduce} a
result.
- \item The software(s) used, configuration file(s), the order of
- steps taken, along with the input data are necessary for
- reproducibility.
- \item \alert{A solution} is proposed here, which if adopted from
- the start, can greatly \alert{simplify a scientific research
- project} and \alert{allow full/exact reproducibility} once it
- is published.
\end{itemize}
\end{frame}
+
+ \newcommand{\nodeopacity}{1}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\paperinit}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\sver}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\srep}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\dver}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\ddver}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\confopt}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\confenv}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\db}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\calib}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\corr}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\runord}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\runopt}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\humanerr}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\depupdate}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\coauth}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\varsinpaper}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\recordinfo}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\softcite}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\prevchange}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \newcommand{\paperfinal}{}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+
+ %% Don't show the happy scientist any more.
+ \let\paperfinal\undefined
+ \let\paperinit\undefined
+
+
+
+
+
+ \begin{frame}{Science is a tricky business}
+ \includegraphics[width=\linewidth]{img/nature-cartoon.jpg}
+
+ \vspace{-0.2cm}
+
+ {\tiny Image from nature.com
+ (``\href{https://www.nature.com/articles/d41586-017-07522-z}{Five
+ ways to fix statistics}'', Nov 2017)}
+
+ \vspace{0.2cm}
+ \begin{tcolorbox}
+ \small Data analysis [...] is a human behaviour. Researchers
+ who hunt hard enough will turn up a result that fits
+ statistical criteria, but their \alert{discovery} will
+ probably be a \alert{false positive}.
+
+ \hfill Five ways to fix statistics, Nature, 551, Nov 2017.
+ \end{tcolorbox}
+ \end{frame}
+
+
+
+
+
+ \begin{frame}{Necessity of (exactly) reproducible research}
+ \begin{tcolorbox}[title=Don't forget that:]
+ \centering Science is defined by its METHOD, \alert{not} its
+ result.
+ \end{tcolorbox}
+
+ \vspace{0.5cm}
+ \begin{itemize}
+ \setlength\itemsep{0.6cm}
+ \item The software(s) used, configuration file(s), the order of
+ steps taken, along with the input data are necessary for
+ reproducibility.
+ \item \alert{A solution} is proposed here, which if adopted from
+ the start, can greatly \alert{simplify a scientific research
+ project} and \alert{allow full/exact reproducibility} once it
+ is published.
+ \item In the next slides, we'll review the template from the
+ highest level (final research paper) to the lowest (setting up
+ the research environment).
+ \end{itemize}
+ \end{frame}
+
+
+
+ \renewcommand{\nodeopacity}{0.3}
+ \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+
+
+
+
+
\begin{frame}{Values in final report/paper}
All necessary analysis/processing \alert{input} and \alert{output}
values are written into the final report as \LaTeX{} macros. Shown
@@ -174,43 +321,212 @@
\end{frame}
- \begin{frame}{Reproducing the result and report/paper}
- The two \alert{simple} and \alert{familiar} commands below are
- enough to exactly reproduce the results at any time.
+
+
+
+ \begin{frame}{Predefined/exact software tools}
+ \small
+ \begin{columns}
+ \column{5.5cm}
+ \begin{tcolorbox}[width=\linewidth, boxsep=1pt, left=1pt, right=1pt,
+ top=1pt, bottom=1pt, title=Reproducibility \&
+ software]
+ \footnotesize Reproducing the environment (specific
+ \alert{software versions}, \alert{build instructions} and
+ \alert{dependencies}) is also critically important for
+ reproducibility.
+ \end{tcolorbox}
+
+ \begin{itemize}
+ \setlength\itemsep{0.4cm}
+ \item \emph{Containers} or \emph{Virtual Machines} are a
+ \alert{binary black box}: just contain the environment, not
+ how to set it up, or its history. They are also an overhead.
+
+ \item This template \alert{installs fixed versions} of all
+ necessary research software and their dependencies, down to
+ the command-line shell, C compiler, POSIX tools and Python
+ interpreter. It just avoids very low-level OS elements like
+ the kernel or linker.
+
+ \item Installs similar environment on \alert{GNU/Linux}, or
+ \alert{macOS} systems.
+
+ \item Works very much like a package manager (e.g.,
+ \alert{\texttt{apt}} or \alert{\texttt{brew}}).
+ \end{itemize}
+
+ \column{5.5cm}
+ \includegraphics[width=\linewidth]{img/software.png}
+ \end{columns}
+ \end{frame}
+
+
+
+
+
+ \begin{frame}{Predefined/exact software tools}
+ \small
+ \begin{columns}
+ \column{5.5cm}
+ \begin{tcolorbox}[width=\linewidth, boxsep=1pt, left=1pt, right=1pt,
+ top=1pt, bottom=1pt, title=Reproducibility \&
+ software]
+ \footnotesize Reproducing the environment (specific
+ \alert{software versions}, \alert{build instructions} and
+ \alert{dependencies}) is also critically important for
+ reproducibility.
+ \end{tcolorbox}
+
+ \begin{itemize}
+ \setlength\itemsep{0.4cm}
+ \item \emph{Containers} or \emph{Virtual Machines} are a
+ \alert{binary black box}: just contain the environment, not
+ how to set it up, or its history. They are also an overhead.
+
+ \item This template \alert{installs fixed versions} of all
+ necessary research software and their dependencies, down to
+ the command-line shell, C compiler, POSIX tools and Python
+ interpreter. It just avoids very low-level OS elements like
+ the kernel or linker.
+
+ \item Installs similar environment on \alert{GNU/Linux}, or
+ \alert{macOS} systems.
+
+ \item Works very much like a package manager (e.g.,
+ \alert{\texttt{apt}} or \alert{\texttt{brew}}).
+ \end{itemize}
+
+ \column{5.5cm}
+ \includegraphics[width=\linewidth]{img/software-highlighted.png}
+ \end{columns}
+ \end{frame}
+
+
+ \newcommand{\redbdir}{\textcolor{green!80!black}{/TEMPLATE/BUILD/DIRECTORY/software/installed/lib}}
+ \begin{frame}{Dependencies are cleanly managed}
\begin{itemize}
- \item[] \texttt{\$ ./configure}
- \item[] \texttt{\$ make}
+ \item All the software are configured and built to use the
+ \alert{template's own builds}: indepenent of host system
+ (\textcolor{green!80!black}{in green}).
+ \item Template even builds a fixed GNU C Compiler (\alert{GCC}).
+ \item Only extremely low-level dependencies (for example C library
+ and Kernel) not built.
+ \begin{itemize}
+ \item GNU C library will also be added later (\alert{in red}).
+ \end{itemize}
\end{itemize}
- With \texttt{./configure}, you specify the local directories to
- use. All necessary \alert{software} are then \alert{downloaded}
- and installed there (independent of your OS or other projects).
-
- \vspace{0.3cm} With \texttt{make}, input \alert{data} from online
- archives (databases) are \alert{downloaded}, if not locally
- available, the processing is done, and the \LaTeX{} paper is built
- as a PDF (e.g., see
- \textcolor{blue}{\small\href{https://doi.org/10.5281/zenodo.1164774}{zenodo.1164774}}
- or
- \textcolor{blue}{\small\href{https://gitlab.com/makhlaghi/reproducible-paper-output/raw/master/paper.pdf}{template's
- output}}).
-
- \vspace{0.3cm} Enabling version control (e.g., with \alert{Git})
- encourages testing different ideas while not harming the
- initial/base result (thus encouraging \alert{creativity} and
- brainstorming during the project).
-
- \vspace{0.3cm} After publication, \alert{readers} can
- \alert{change} the input configurations and the numbers and
- figures of the reproduced paper will respectively change. This
- encourages creativity and brainstorming after the project as well
- as sharing of (the hardly gained) experiences with the whole
- community.
+ \vspace{0.5cm}
+ \tiny\texttt{
+ \$ ldd .local/bin/astnoisechisel\\
+ \hspace{0.5cm}libgit2.so.26 => \redbdir/libgit2.so.26 (0x00007febb5232000)\\
+ \hspace{0.5cm}libtiff.so.5 => \redbdir/libtiff.so.5 (0x00007febb51b8000)\\
+ \hspace{0.5cm}liblzma.so.5 => \redbdir/liblzma.so.5 (0x00007febb5190000)\\
+ \hspace{0.5cm}libjpeg.so.9 => \redbdir/libjpeg.so.9 (0x00007febb5153000)\\
+ \hspace{0.5cm}z.so.1 => \redbdir/libz.so.1 (0x00007febb5136000)\\
+ \hspace{0.5cm}wcs.so.6 => \redbdir/libwcs.so.6 (0x00007febb4fcc000)\\
+ \hspace{0.5cm}cfitsio.so.8 => \redbdir/libcfitsio.so.8 (0x00007febb4caf000)\\
+ \hspace{0.5cm}curl.so.4 => \redbdir/libcurl.so.4 (0x00007febb4c35000)\\
+ \hspace{0.5cm}ssl.so.1.1 => \redbdir/libssl.so.1.1 (0x00007febb4b9b000)\\
+ \hspace{0.5cm}crypto.so.1.1 => \redbdir/libcrypto.so.1.1 (0x00007febb48b5000)\\
+ \hspace{0.5cm}gsl.so.23 => \redbdir/libgsl.so.23 (0x00007febb4626000)\\
+ \hspace{0.5cm}gslcblas.so.0 => \redbdir/libgslcblas.so.0 (0x00007febb45e2000)\\
+ \hspace{0.5cm}gnuastro.so.8 => \redbdir/libgnuastro.so.8 (0x00007febb419e000)\\
+ \hspace{0.5cm}bz2.so.1.0 => \redbdir/libbz2.so.1.0 (0x00007febb3e20000)\\
+ \hspace{0.5cm}\alert{m.so.6} => /usr/lib/libm.so.6 (0x00007febb4025000)\\
+ \hspace{0.5cm}\alert{pthread.so.0} => /usr/lib/libpthread.so.0 (0x00007febb4004000)\\
+ \hspace{0.5cm}\alert{c.so.6} => /usr/lib/libc.so.6 (0x00007febb3e3f000)\\
+ \hspace{0.5cm}rt.so.1 => /usr/lib/librt.so.1 (0x00007febb3e35000)\\
+ \hspace{0.5cm}dl.so.2 => /usr/lib/libdl.so.2 (0x00007febb3e1b000)\\
+ \hspace{0.5cm}linux-vdso.so.1 (0x00007ffcf2497000)\\
+ \hspace{0.5cm}/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007febb53c6000)
+ }
+ \end{frame}
+
+
+
+
+ \begin{frame}{Advantages of this build system}
+ \begin{columns}
+ \column{7cm}
+ \begin{itemize}
+ \setlength\itemsep{1cm}
+ \item No need for \alert{root}/administrator \alert{permissions}
+ (on servers or super computers).
+ \item Whole system is built \alert{automatically} on any
+ Unix-like operating system (less 2 hours).
+ \item Dependencies of different projects will \alert{not conflict}.
+ \item (Almost) all depencies are \alert{exactly} documened and
+ can be reproduced.
+ \end{itemize}
+ \column{4cm}
+ \includegraphics[width=\linewidth]{img/unchained.jpg}\\
+ \tiny \url{https://natemowry2.wordpress.com}
+ \end{columns}
+ \end{frame}
+
+
+
+ \begin{frame}{Software acknowledgment and citation automatically generated in paper}
+ \includegraphics[width=\linewidth]{img/software-cite.png}
+ \end{frame}
+ \begin{frame}{Software acknowledgment and citation automatically generated in paper}
+ \includegraphics[width=\linewidth]{img/software-cite-highlighted.png}
\end{frame}
+
+
+% \begin{frame}{Reproducing the result and report/paper}
+% The two \alert{simple} and \alert{familiar} commands below are
+% enough to exactly reproduce the results at any time.
+%
+% \begin{itemize}
+% \item[] \texttt{\$ ./configure}
+% \item[] \texttt{\$ make}
+% \end{itemize}
+%
+% With \texttt{./configure}, you specify the local directories to
+% use. All necessary \alert{software} are then \alert{downloaded}
+% and installed there (independent of your OS or other projects).
+%
+% \vspace{0.3cm} With \texttt{make}, input \alert{data} from online
+% archives (databases) are \alert{downloaded}, if not locally
+% available, the processing is done, and the \LaTeX{} paper is built
+% as a PDF (e.g., see
+% \textcolor{blue}{\small\href{https://doi.org/10.5281/zenodo.1164774}{zenodo.1164774}}
+% or
+% \textcolor{blue}{\small\href{https://gitlab.com/makhlaghi/reproducible-paper-output/raw/master/paper.pdf}{template's
+% output}}).
+%
+% \vspace{0.3cm} Enabling version control (e.g., with \alert{Git})
+% encourages testing different ideas while not harming the
+% initial/base result (thus encouraging \alert{creativity} and
+% brainstorming during the project).
+%
+% \vspace{0.3cm} After publication, \alert{readers} can
+% \alert{change} the input configurations and the numbers and
+% figures of the reproduced paper will respectively change. This
+% encourages creativity and brainstorming after the project as well
+% as sharing of (the hardly gained) experiences with the whole
+% community.
+% \end{frame}
+
+
+
+ \renewcommand{\nodeopacity}{1}
+ \begin{frame}{Everything in plain text (machine and human readable)}
+ \include{tex/plot} \end{frame}
+ \newcommand{\paperinit}{}
+ \newcommand{\gitlogo}{}
+ \begin{frame}{Everything in plain text (machine and human readable)}
+ \include{tex/plot}
+ \end{frame}
+
+
\begin{frame}{Publication of the project}
A reproducible project using this template will have the following
@@ -237,25 +553,75 @@
Gigabytes) and software \\(for example
\textcolor{blue}{\small\href{https://doi.org/10.5281/zenodo.1164774}{zenodo.1164774}}) and given a unique DOI.
\end{itemize}
-
\end{frame}
- \begin{frame}
- The template is ready to use in the link below:
+ \begin{frame}{GOOD NEWS: RDA adoption grant to IAC for this template}
+ \begin{center}
+ \includegraphics[width=3cm]{img/rda.png}\hspace{1cm}
+ \includegraphics[width=1.8cm]{img/iac.png}
- \textcolor{blue}{\footnotesize\url{https://gitlab.com/makhlaghi/reproducible-paper}}
+ \includegraphics[width=\linewidth]{img/h2020.png}
+ \end{center}
- \vspace{1.5cm} For a technical description of the template's
- implementation, as well as a checklist to customize it, and tips
- on good practices, please see this page:
+ \vspace{1cm} For this template, the \alert{IAC} is selected as
+ a \alert{Top European organization} funded to adopt RDA
+ Recommendations and Outputs.
- \textcolor{blue}{\footnotesize\url{https://gitlab.com/makhlaghi/reproducible-paper/blob/pipeline/README-hacking.md}}
+ \vspace{1cm}
+ \scriptsize
+ \begin{itemize}
+ \item Research Data Alliance was launched by the \alert{European
+ Commission}, NSF, National Institute of Standards and
+ Technology, and the Australian Government’s Department of
+ Innovation.
+ \item RDA Outputs are the technical and social infrastructure
+ solutions developed by RDA Working Groups or Interest
+ Groups that enable data sharing, exchange, and
+ interoperability.
+ \end{itemize}
+
+ \vspace{0.2cm}
+ \centering
+
+ \end{frame}
+
+
+
+ \begin{frame}{Summary:}
+
+ A fully working template/framework is introduced that will do the
+ following steps/instructions (all in simple plain text files).
+ \begin{itemize}
+ \item \alert{Automatically downloads} the necessary
+ \emph{software} and \emph{data}.
+ \item \alert{Builds} the software in a \alert{closed
+ environment}.
+ \item Runs the software on data to \alert{generate} the final
+ \alert{research results}.
+ \item A modification in one part of the analysis will only
+ result in re-doing that part, not the whole project.
+ \item Using LaTeX macros, paper's figures, tables and numbers
+ will be \alert{Automatically updated} after a change in
+ analysis. Allowing the scientist to focus on the scientific
+ interpretation.
+ \item The whole project is under \alert{version control} (Git)
+ to allow easy reversion to a previous state. This
+ \alert{encourages tests/experimentation} in the analysis.
+ \item The \alert{Git commit hash} of the project source, is
+ \alert{printed} in the published paper and \alert{saved on
+ output} data products. Ensuring the
+ integrity/reproducibility of the result.
+ \end{itemize}
- \vspace{1.5cm} For more on the necessity of reproducible research,
- please see:
+ \begin{tcolorbox}[width=\linewidth, boxsep=1pt, left=1pt, right=1pt,
+ top=1pt, bottom=1pt]
+ For a technical description of the template's implementation, as
+ well as a checklist to customize it, and tips on good practices,
+ please see this page:
- \textcolor{blue}{\footnotesize\url{http://akhlaghi.org/reproducible-science.html}}
+ \textcolor{blue}{\footnotesize\url{https://gitlab.com/makhlaghi/reproducible-paper/blob/master/README-hacking.md}}
+ \end{tcolorbox}
\end{frame}
\end{document}
diff --git a/tex/plot.tex b/tex/plot.tex
new file mode 100644
index 0000000..566a9e7
--- /dev/null
+++ b/tex/plot.tex
@@ -0,0 +1,109 @@
+\small
+\Wider[5em]{
+
+\begin{tikzpicture}[>=stealth, thick, black!50, text=black,
+ every new ->/.style={shorten >=1pt},
+ hv path/.style={to path={-| (\tikztotarget)}},
+ graphs/every graph/.style={edges=rounded corners}]
+
+ %% This white line is only added to fix the vertical position of the
+ %% figure so it doesn't change as we add more boxes.
+ \draw [white] (0,-4.2) -- (0,4.2);
+ \draw [white] (-0.5,0) -- (12,0);
+
+ \graph[grow right sep, simple] {
+ { [nodes={yshift=7mm}]
+ soft/Software [gbox] -> build/Build [bbox],
+ hard/Hardware/data [gbox, yshift=-0.5cm] --
+ p1 [coordinate, xshift=2cm, yshift=-0.5cm]
+ } -- [hv path]
+ p2 [coordinate] ->
+ srun/Run software on data [bbox] ->
+ paper/Paper [bbox]
+ };
+
+ \ifdefined\paperfinal
+ \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm]
+ {\includegraphics[width=2cm]{img/happy-question.jpg}};
+ \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm]
+ {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}};
+ \node (qurl) [below=of happyurl, xshift=10.5mm, yshift=+1.2cm]
+ {\tiny \url{http://pngimages.net}};
+ \else
+ \ifdefined\paperinit
+ \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm]
+ {\includegraphics[width=2cm]{img/happy.jpg}};
+ \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm]
+ {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}};
+ \fi
+ \fi
+
+ %% Software...
+ \ifdefined\sver
+ \node (sver) [rbox, above=of soft, yshift=-8mm, opacity=\nodeopacity] {What version?};
+ \fi
+ \ifdefined\srep
+ \node (srep) [rbox, above=of sver, yshift=-8mm, opacity=\nodeopacity] {Repository?};
+ \fi
+
+ %% Hardware...
+ \ifdefined\db
+ \node (db) [rbox, below=of hard, yshift=+8mm, opacity=\nodeopacity] {Data base?};
+ \fi
+ \ifdefined\calib
+ \node (calib) [rbox, below=of db, yshift=+8mm, opacity=\nodeopacity] {Calibration/version?};
+ \fi
+ \ifdefined\corr
+ \node (corr) [rbox, below=of calib, yshift=+8mm, opacity=\nodeopacity] {Integrity?};
+ \fi
+
+ %% Build
+ \ifdefined\dver
+ \node (dver) [rbox, above=of build, yshift=-8mm, opacity=\nodeopacity] {Dependencies?};
+ \fi
+ \ifdefined\ddver
+ \node (ddver) [rbox, above=of dver, yshift=-8mm, opacity=\nodeopacity] {Dep. versions?};
+ \fi
+ \ifdefined\confopt
+ \node (confopt) [rbox, above=of ddver, yshift=-8mm, opacity=\nodeopacity] {Config options?};
+ \fi
+ \ifdefined\confenv
+ \node (confenv) [rbox, above=of confopt, yshift=-8mm, opacity=\nodeopacity] {Config environment?};
+ \fi
+
+ %% Run software ...
+ \ifdefined\runord
+ \node (runord) [rbox, above=of srun, yshift=-8mm, opacity=\nodeopacity] {What order?};
+ \fi
+ \ifdefined\runopt
+ \node (runopt) [rbox, above=of runord, yshift=-8mm, opacity=\nodeopacity] {Runtime options?};
+ \fi
+ \ifdefined\humanerr
+ \node (humanerr) [rbox, above=of runopt, yshift=-8mm, opacity=\nodeopacity] {Human error?};
+ \fi
+ \ifdefined\depupdate
+ \node (depupdate) [rbox, below=of srun, yshift=+8mm, opacity=\nodeopacity] {Environment update?};
+ \fi
+ \ifdefined\coauth
+ \node (coaut) [rbox, below=of depupdate, yshift=+8mm, opacity=\nodeopacity] {In sync with coauthors?};
+ \fi
+
+ %% Paper ...
+ \ifdefined\varsinpaper
+ \node (varsinpaper) [rbox, above=of paper, xshift=-1mm, yshift=-8mm, opacity=1] {Sync with analysis?};
+ \fi
+ \ifdefined\recordinfo
+ \node (recordinfo) [rbox, above=of varsinpaper, yshift=-8mm, opacity=\nodeopacity] {Report this info?};
+ \fi
+ \ifdefined\softcite
+ \node (softcite) [rbox, above=of recordinfo, yshift=-8mm, opacity=\nodeopacity] {Cited software?};
+ \fi
+ \ifdefined\prevchange
+ \node (prevchange) [rbox, above=of softcite, yshift=-8mm, opacity=\nodeopacity] {History recorded?};
+ \fi
+
+ \ifdefined\gitlogo
+ \node [inner sep=0pt, opacity=0.5] at (5.5,0) {\includegraphics[width=10cm]{img/git.png}};
+ \fi
+\end{tikzpicture}
+}