-
-
Notifications
You must be signed in to change notification settings - Fork 107
Description
Summary
The drake package is an R-focused pipeline toolkit. It reproducibly brings results up to date and automatically arranges computations into successive parallelizable stages. It has a Tidyverse-friendly front-end, powerful interactive visuals, and a vast arsenal of multicore and distributed computing backends.
Package: drake
Title: Data Frames in R for Make
Version: 4.4.1.9000
Authors@R: c(
person(
family = "Landau",
given = c("William", "Michael"),
email = "will.landau@lilly.com",
role = c("aut", "cre")),
person(
family = "Axthelm",
given = "Alex",
email = "aaxthelm@che.IN.gov",
role = "ctb"),
person(
family = "Clarkberg",
given = "Jasper",
email = "jasper@clarkberg.org",
role = "ctb"),
person(
family = "Eli Lilly and Company",
role = "cph"))
Description: A solution for reproducible code and
high-performance computing.
License: GPL-3
Depends:
R (>= 3.2.0)
Imports:
codetools,
crayon,
eply,
evaluate,
digest,
formatR,
future,
grDevices,
igraph,
knitr,
lubridate,
magrittr,
parallel,
plyr,
R.utils,
rprojroot,
stats,
storr (>= 1.1.0),
stringi,
stringr,
testthat,
utils,
visNetwork,
withr
Suggests:
abind,
DBI,
future.batchtools,
MASS,
methods,
RSQLite,
rmarkdown,
tibble
VignetteBuilder: knitr
URL: https://github.com/wlandau-lilly/drake
BugReports: https://github.com/wlandau-lilly/drake/issues
RoxygenNote: 6.0.1
-
Fit: drake falls easily within reproducibility and high-performance computing.
-
Target audience: anyone who uses R for medium-to-long computations for which the results need to stay up to date with the dependencies.
Similar work
Remake
Drake overlaps with its direct predecessor, remake. In fact, drake owes its core ideas to remake and @richfitz, and explicit acknowledgements are in the documentation. However, drake surpasses remake in several important ways, including but not limited to the following.
- High-performance computing. Remake has no native parallel computing support. Drake, on the other hand, has a vast arsenal of parallel computing options, from local multicore computing to serious distributed computing. Thanks to future, future.batchtools, and batchtools, it is straightforward to configure a drake project for most popular job schedulers, such as SLURM, TORQUE, and the Sun/Univa Grid Engine, as well as systems contained in Docker images.
- A friendly interface. In remake, the user must manually write a YAML configuration file to arrange the steps of a workflow. In drake, this configuration is based on data frames that built-in wildcard templating functionality easily generates at scale.
- Thorough documentation. Drake contains eight vignettes, a comprehensive README, examples in the help files of user-side functions, and accessible example code that users can write with
drake::example_drake()
. - Active maintenance. Drake is actively developed and maintained, and issues are usually solved promptly.
Factual's drake
Factual's drake is similar in concept, but the development effort is completely unrelated to the R package of the same name.
Other pipeline toolkits
There are many other successful pipeline toolkits, and the drake package distinguishes itself with its R-focused approach, Tidyverse-friendly interface, and parallel computing flexibility.
Requirements
Confirm each of the following by checking the box. This package:
- does not violate the Terms of Service of any service it interacts with.
- has a CRAN and OSI accepted license.
- contains a README with instructions for installing the development version.
- includes documentation with examples for all functions.
- contains a vignette with examples of its essential functions and uses.
- has a test suite.
- has continuous integration, including reporting of test coverage, using services such as Travis CI, Coeveralls and/or CodeCov.
- I agree to abide by ROpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.
Publication options
- Do you intend for this package to go on CRAN?
- Do you wish to automatically submit to the Journal of Open Source Software? If so:
- The package has an obvious research application according to JOSS's definition.
- The package contains a
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
. - The package is deposited in a long-term repository with the DOI:
- (Do not submit your package separately to JOSS)
I plan to submit to JOSS in the future, but the manuscript is not currently ready.
Detail
- Does
R CMD check
(ordevtools::check()
) succeed? Paste and describe any errors or warnings: - Does the package conform to rOpenSci packaging guidelines? Please describe any exceptions: