A bash script used to spin R scripts and organize the output. Relies on the knitr package developoed by Yihui Xie.
To install, execute the following steps from the remote server:
-
Cone this repository
git clone https://github.com/funkhou9/spin-my-script.git
-
cd into
spin-my-script
and ensure bothspin
andknitr_spin.R
are executablecd spin-my-script chmod +x spin chmod +x knitr_spin.R
-
Add
spin-my-script
to your path, however you like. For instance in your ~/.bashrc file add:export PATH=$PATH:/path/to/spin-my-script/
Using $ spin <script.R> intel14 00:10:00 8
will submit <script.R>
to the intel14
cluster with a walltime of 10 minutes
and 8GB
of RAM. You must specify those four arguments: cluster, walltime, RAM.
Internally, knitr::spin(<script.R>)
is used to convert <script.R>
into <script.md>
, the literate version of the same script.
Additionally your project space will be updated. Assuming your project space looks something like this:
project/
│ README.md
│
└───subfolder1
│ subfolder1.md
│ 1-script.R
│
└───subfolder2
│ subfolder2.md
│ 1-script.R
...
and $ spin project/subfolder1/1-script.R intel14 00:10:00 8
is called, the project space will update to:
project/
│ README.md
│
└───subfolder1/
│ subfolder1.md
│ 1-script.R
| 1-script_literate/
| |
| └─ 1-script.md
| 1-script.out
| figure/
│
└───subfolder2/
│ subfolder2.md
│ 1-script.R
...
1-script.out
contains standard output from the cluster run, which may contain useful information
like walltime used, RAM used, etc. figure/
is a directory produced by the knitr package, which contains
all figures generated from 1-script.R
spin
may be used for scripts written in other languages too. This requires modifying the engine
setting for each code chunk by placing the following at the top of your script:
opts_chunk$set(engine="bash")
Note that this has not been tested with other scripting languages other than R