WORCS worcs website

CRAN status CRAN RStudio mirror downloads lifecycle R-CMD-check Codecov test coverage Contributor Covenant CII Best Practices

The Workflow for Open Reproducible Code in Science (WORCS) is an easy to adopt approach to ensuring a research project meets the requirements of Open Science from the start. It is based on a "good enough" philosophy, prioritizing user-friendliness over exhaustiveness. It can be used either in absence of, or in parallel to, existing requirements for Open workflows. It can also be enhanced with more elaborate solutions for specific issues.

Where do I start?

For most users, the recommended starting point is to read the paper, published in Data Science, which introduces the WORCS workflow, explains the underlying tools, and illustrates how the worcs package can be used to create a new project that follows the workflow.

The workflow is illustrated below; the workflow vignette describes each step in detail.

knitr::include_graphics("https://github.com/cjvanlissa/worcs/raw/master/paper/workflow_graph/workflow.png")

Installing the package

Before installing the package, please read this vignette, which explains how to set up your computer for worcs (using the CRAN version).

If you know what you're doing and you wish to install the development version of the worcs package from GitHub instead, you can use:

if(!requireNamespace("remotes")) install.packages("remotes")
remotes::install_github("cjvanlissa/worcs", dependencies = TRUE, update = "never")

Citing WORCS

You can cite WORCS using the following citation (please use the same citation for either the package, or the paper):

Van Lissa, C. J., Brandmaier, A. M., Brinkman, L., Lamprecht, A., Peikert, A., , Struiksma, M. E., & Vreede, B. (2021). WORCS: A Workflow for Open Reproducible Code in Science. Data Science. Data Science, vol. 4, no. 1, pp. 29-49. DOI: 10.3233/DS-210031.

About this repository

This repository contains the following:

  1. An R-package called worcs, with convenience functions to facilitate the WORCS workflow.
  2. In the subfolder ./paper, the source files for the paper describing the WORCS workflow.

The repository serves two functions: To allow users to install the worcs package, and to allow collaborators access to the source code for the package and paper.

Repository structure

descripts <- data.frame(matrix(c(
  "_pkgdown.yml", "YAML for package website", "do not edit",
  "DESCRIPTION", "R-package DESCRIPTION", "do not edit",
  "LICENSE.md", "Project license", "do not edit",
  "NAMESPACE", "R-package namespace", "machine-written",
  "README.md", "Read this file to get started! ", "do not edit",
  "README.Rmd", "R-markdown source for readme.md", "human editable",
  "worcs.Rproj", "RStudio project file", "do not edit",
  "docs/", "Package website", "machine-written",
  "inst/", "RStudio project template files ", "human editable",
  "man/", "R-package documentation", "do not edit",
  "paper/", "WORCS paper source files", "human editable",
  "R/", "R-package source code", "human editable",
  "vignettes/", "R-package vignettes", "human editable"
), ncol = 3, byrow = TRUE))
names(descripts) <- c("File", "Description", "Usage")
knitr::kable(descripts)
library(gh)
library(dlstats)
dl <- dlstats::cran_stats("worcs")
dl <- sum(dl$downloads)

# worcs_repo <- gh("/repos/cjvanlissa/worcs")
# 
# repos <- gh("GET /search/code", username = "cjvanlissa", q="worcs_version filename:.worcs")
# 
# worcs_repos <- data.frame(t(sapply(repos[["items"]], function(x){
#   c(owner = x$repository$owner$login,
#     name = x$repository$name,
#     url = x$repository$html_url
#   )
# })))

# worcs_repos <- worcs_repos[!((worcs_repos$owner %in% c("cjvanlissa", "cran") & worcs_repos$name == "worcs")| grepl("(penguin|\\btmp|demo|test)", tolower(worcs_repos$name))), ]

# tmp <- paste0(sapply(unique(worcs_repos$owner), function(x){
#   owner_repos <- worcs_repos[worcs_repos$owner == x, , drop = FALSE]
#   paste0("\n    - ", x, "  ",
#          paste0("\n        + [", owner_repos$name, "](", owner_repos$url, ")  ", collapse = ""))
#   }),
#   collapse = "")

# invited <- read.table("https://raw.githubusercontent.com/cjvanlissa/resume/master/invited.csv", sep = ",", header = TRUE)
# invited <- invited[grepl("(worcs|workflow)", tolower(invited$Topic)), c("Institute", "Year", "City", "Country", "Date")]
# invited <- paste0(apply(invited, 1, function(x){paste0("\n    - ", x[1], " (", x[2], ")  ")}), collapse = "")

Contributing and Contact Information

We are always eager to receive user feedback and contributions to help us improve both the workflow and the software. Major contributions warrant coauthorship to the package. Please contact the lead author at c.j.vanlissa@uu.nl, or:

By participating in this project, you agree to abide by the Contributor Code of Conduct v2.0. Contributions to the package must adhere to the tidyverse style guide. When contributing code, please add tests for that contribution to the tests/testthat folder, and ensure that these tests pass in the GitHub Actions panel.

Acknowledgements

The worcs logo is inspired by the Open Science Badges by the Center for Open Science (CC-BY-4.0), and makes use of the gear, services, gears, preferences, settings icon, made by MD Badsha Meah from www.freeicons.io (CC-BY-3.0).



cjvanlissa/worcs documentation built on Nov. 7, 2024, 1:20 p.m.