# drake

#### Will Landau

#### 2019-03-10

# 1 Learn about drake

The main resources to learn `drake` are the user manual and the reference website. Others are below.

## 1.1 Cheat sheet

Thanks to Kirill for preparing a `drake` cheat sheet for the workshop.

## 1.2 Frequently asked questions

The FAQ page is an index of links to appropriately-labeled issues on GitHub. To contribute, please submit a new issue and ask that it be labeled as a frequently asked question.

## 1.3 Function reference

The reference section lists all the available functions. Here are the most important ones.

- `drake_plan()`: create a workflow data frame (like `my_plan`).
- `make()`: build your project.
- `loadd()`: load one or more built targets into your R session.
- `readd()`: read and return a built target.
- `drake_config()`: create a master configuration list for other user-side functions.
- `vis_drake_graph()`: show an interactive visual network representation of your workflow.
- `outdated()`: see which targets will be built in the next `make()`.
- `deps()`: check the dependencies of a command or function.
- `failed()`: list the targets that failed to build in the last `make()`.
- `diagnose()`: return the full context of a build, including errors, warnings, and messages.

## 1.4 Tutorials

Thanks to Kirill for constructing two interactive `learnr` tutorials: one supporting `drake` itself, and a prerequisite walkthrough of the `cooking` package.

## 1.5 Examples

Here are some real-world applications of `drake` in the wild.

- sol-eng/tensorflow-w-r
- efcaguab/demografia-del-voto
- efcaguab/great-white-shark-nsw
- IndianaCHE/Detailed-SSP-Reports
- tiernanmartin/home-and-hope

There are also multiple `drake`-powered example projects available here, ranging from beginner-friendly stubs to demonstrations of high-performance computing. You can generate the files for a project with `drake_example()` (e.g. `drake_example("gsp")`), and you can list the available projects with `drake_examples()`. You can contribute your own example project with a fork and pull request.

## 1.6 Presentations

Author | Venue | Date | Materials
--- | --- | --- | ---
Amanda Dobbyn | R-Ladies NYC | 2019-02-12 | slides, source
Will Landau | Harvard DataFest | 2019-01-22 | slides, source
Karthik Ram | RStudio Conference | 2019-01-18 | video, slides, resources
Sina Rüeger | Geneva R User Group | 2018-10-04 | slides, example code
Will Landau | R in Pharma | 2018-08-16 | video, slides, source
Christine Stawitz | R-Ladies Seattle | 2018-06-25 | materials
Kirill Müller | Swiss Institute of Bioinformatics | 2018-03-05 | workshop, slides, source, exercises
Kirill Müller | RStudio Conference | 2018-02-01 | slides, source

## 1.7 Context and history

For context and history, please refer to the following.

- The rOpenSci blog post from February 6, 2018.
- Episode 22 of the R-Podcast.

# 2 Acknowledgements

Special thanks to Jarad Niemi, my advisor from graduate school, for first introducing me to the idea of Makefiles for research. He originally set me down the path that led to `drake`.

Many thanks to Julia Lowndes, Ben Marwick, and Peter Slaughter for reviewing drake for rOpenSci, and to Maëlle Salmon for such active involvement as the editor. Thanks also to the following people for contributing early in development.

- Alex Axthelm
- Chan-Yub Park
- Daniel Falster
- Eric Nantz
- Henrik Bengtsson
- Ian Watson
- Jasper Clarkberg
- Kendon Bell
- Kirill Müller
- Michael Schubert