From 01dd812b7b828982b7d36e2967f0d9f558780e78 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Mon, 20 Jan 2020 04:30:56 +0000 Subject: Added figure showing project's file structure It was a little hard to describe the file structure so instead of using a standard listing as most papers do, I thought of showing the file and directory structure as boxes within each other (modeled on the Gnome disk-utility). Some other polishing was done throughout the paper also. --- tex/src/figure-file-architecture.tex | 223 +++++++++++++++++++++++++++++++++++ tex/src/preamble-pgfplots.tex | 11 ++ tex/src/preamble-style.tex | 1 + tex/src/references.tex | 20 +++- 4 files changed, 252 insertions(+), 3 deletions(-) create mode 100644 tex/src/figure-file-architecture.tex (limited to 'tex/src') diff --git a/tex/src/figure-file-architecture.tex b/tex/src/figure-file-architecture.tex new file mode 100644 index 0000000..3a7b760 --- /dev/null +++ b/tex/src/figure-file-architecture.tex @@ -0,0 +1,223 @@ +\begin{tikzpicture}[ + line width=1.5pt, + black!50, + text=black, +] + + %% Use small fonts + \footnotesize + + %% project + \node [at={(0,4cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum width=15cm, + minimum height=7.5cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{top-project-directory/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(-6.0cm,-3cm)}] {COPYING}; + \node [node-nonterminal-thin, at={(-3.5cm,-3cm)}] {paper.tex}; + \node [node-nonterminal-thin, at={(-1.0cm,-3cm)}] {project}; + \node [node-nonterminal-thin, at={(+1.5cm,-3cm)}] {README.md}; + \node [node-nonterminal-thin, at={(+4.25cm,-3cm)}, + text width=2.5cm, text depth=-3pt] {README-hacking.md}; + + %% reproduce + \node [at={(-1.4cm,3.5cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=6cm, + minimum width=11.9cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{reproduce/}}] {}; + + %% reproduce/software + \node [at={(-4.35cm,3cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=5.3cm, + minimum width=5.7cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{software/}}] {}; + + %% reproduce/analysis + \node [at={(1.55cm,3cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=5.3cm, + minimum width=5.7cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{analysis/}}] {}; + + %% reproduce/software/config + \node [at={(-5.75cm,2.5cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{config/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(-5.75cm,1.8cm)}] {LOCAL.conf.in}; + \node [node-nonterminal-thin, at={(-5.75cm,1.3cm)}] {versions.conf}; + \node [node-nonterminal-thin, at={(-5.75cm,0.8cm)}] {checksums.conf}; + + + %% reproduce/software/make + \node [at={(-2.95cm,2.5cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{make/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(-2.95cm,1.8cm)}] {basic.mk}; + \node [node-nonterminal-thin, at={(-2.95cm,1.3cm)}] {high-level.mk}; + \node [node-nonterminal-thin, at={(-2.95cm,0.8cm)}] {python.mk}; + + %% reproduce/software/bash + \node [at={(-5.75cm,0.2cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{bash/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(-5.75cm,-0.5cm)}] {bashrc.sh}; + \node [node-nonterminal-thin, at={(-5.75cm,-1.0cm)}] {configure.sh}; + \node [node-nonterminal-thin, at={(-5.75cm,-1.5cm)}] {git-pre-comit}; + + %% reproduce/software/bibtex + \node [at={(-2.95cm,0.2cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{bibtex/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(-2.95cm,-0.5cm)}] {fftw.tex}; + \node [node-nonterminal-thin, at={(-2.95cm,-1.0cm)}] {numpy.tex}; + \node [node-nonterminal-thin, at={(-2.95cm,-1.5cm)}] {gnuastro.tex}; + + %% reproduce/analysis/config + \node [at={(0.15cm,2.5cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{config/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(0.15cm,1.8cm)}] {INPUTS.conf}; + \node [node-nonterminal-thin, at={(0.15cm,1.3cm)}] {param-1.conf}; + \node [node-nonterminal-thin, at={(0.15cm,0.8cm)}] {param-2.conf}; + + %% reproduce/analysis/make + \node [at={(2.95cm,2.5cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{make/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(2.95cm,1.8cm)}] {initialize.mk}; + \node [node-nonterminal-thin, at={(2.95cm,1.3cm)}] {download.mk}; + \node [node-nonterminal-thin, at={(2.95cm,0.8cm)}] {analysis-1.mk}; + + %% reproduce/analysis/bash + \node [at={(0.15cm,0.2cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{bash/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(0.15cm,-0.5cm)}] {process-1.sh}; + \node [node-nonterminal-thin, at={(0.15cm,-1.0cm)}] {process-2.sh}; + \node [node-nonterminal-thin, at={(0.15cm,-1.5cm)}] {process-3.sh}; + + %% reproduce/analysis/python + \node [at={(2.95cm,0.2cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=2.1cm, + minimum width=2.6cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{python/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(2.95cm,-0.5cm)}] {operation-1.py}; + \node [node-nonterminal-thin, at={(2.95cm,-1.0cm)}] {operation-2.py}; + \node [node-nonterminal-thin, at={(2.95cm,-1.5cm)}] {fitting-plot.py}; + + %% tex + \node [at={(6cm,3.5cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum height=6cm, + minimum width=2.7cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{tex/}}] {}; + + %% tex/src + \node [at={(6cm,3cm)}, anchor=north, + rectangle, + very thick, + text centered, + font=\ttfamily, + minimum width=2.5cm, + minimum height=5.3cm, + draw=green!50!black!50, + fill=black!10!green!2!white, + label={[shift={(0,-5mm)}]\texttt{src/}}] {}; + %% Its files + \node [node-nonterminal-thin, at={(6cm,2.2cm)}] {preamble-1.tex}; + \node [node-nonterminal-thin, at={(6cm,1.7cm)}] {preamble-2.tex}; + \node [node-nonterminal-thin, at={(6cm,1.2cm)}] {figure-1.tex}; + \node [node-nonterminal-thin, at={(6cm,0.7cm)}] {figure-2.tex}; + +\end{tikzpicture} diff --git a/tex/src/preamble-pgfplots.tex b/tex/src/preamble-pgfplots.tex index 3f467a6..57a0128 100644 --- a/tex/src/preamble-pgfplots.tex +++ b/tex/src/preamble-pgfplots.tex @@ -150,6 +150,17 @@ bottom color=green!80!black!50, font=\ttfamily}} +\tikzset{node-nonterminal-thin/.style={ + rectangle, + very thick, + text centered, + top color=white, + text width=2cm, + minimum size=4mm, + draw=green!50!black!50, + bottom color=green!80!black!50, + font=\ttfamily\scriptsize}} + \tikzset{node-makefile/.style={ thick, rectangle, diff --git a/tex/src/preamble-style.tex b/tex/src/preamble-style.tex index e843903..f3a96e9 100644 --- a/tex/src/preamble-style.tex +++ b/tex/src/preamble-style.tex @@ -22,6 +22,7 @@ %% To allow a prefix to the enumeration. \usepackage{enumitem} +\setlist{nolistsep} % No space before `\begin{itemize}' %% Horizontal line with spacing \newcommand{\horizontalline}{\vspace{3mm}\hrule\vspace{3mm}} diff --git a/tex/src/references.tex b/tex/src/references.tex index 0f8171b..170ace6 100644 --- a/tex/src/references.tex +++ b/tex/src/references.tex @@ -1091,7 +1091,7 @@ Reproducible Research in Image Processing}, author = {{Peng}, R.D.}, title = {Reproducible Research in Computational Science}, journal = {Science}, - year = 2011, + year = {2011}, month = dec, volume = 334, pages = {1226}, @@ -1102,6 +1102,20 @@ Reproducible Research in Image Processing}, +@ARTICLE{gil10, + author = {Yolanda Gil and Pedro A. González-Calero and Jihie Kim and Joshua Moody and Varun Ratnakar}, + title = {A semantic framework for automatic generation of computational workflows using distributed data and component catalogues}, + journal = {Journal of Experimental \& Theoretical Artificial Intelligence}, + year = {2010}, + volume = {23}, + pages = {389}, + doi = {10.1080/0952813X.2010.490962}, +} + + + + + @ARTICLE{pence10, author = {{Pence}, W.~D. and {Chiappetti}, L. and {Page}, C.~G. and {Shaw}, R.~A. and {Stobie}, E.}, @@ -1126,8 +1140,8 @@ Reproducible Research in Image Processing}, author = {Jeremy Goecks and Anton Nekrutenko and James Taylor}, title = {Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences}, journal = {Genome Biology}, - year = 2010, - volume = 11, + year = {2010}, + volume = {11}, pages = {R86}, doi = {10.1186/gb-2010-11-8-r86}, } -- cgit v1.2.1