Package 'scifigure'

Title: Visualize 'Reproducibility' and 'Replicability' in a Comparison of Scientific Studies
Description: Users may specify what fundamental qualities of a new study have or have not changed in an attempt to reproduce or replicate an original study. A comparison of the differences is visualized. Visualization approach follows 'Patil', 'Peng', and 'Leek' (2016) <doi:10.1101/066803>.
Authors: Prasad Patil [aut, cre], Gehlenborg Nils [ctb], Muschelli John [ctb], Leek Jeff [aut]
Maintainer: Prasad Patil <[email protected]>
License: MIT + file LICENSE
Version: 0.2
Built: 2025-02-12 04:10:40 UTC
Source: https://github.com/prpatil/scifigure

Help Index


Change Icon Color

Description

Change Icon Color

Usage

change_icon_color(icon, color)

Arguments

icon

icon, which is a 4D array

color

color to change, in text form, passed to col2rgb

Value

A 4D array of the icon

Examples

icon = scifigure::icons[[2]]
color = "blue"
original_color = "red"
icon2 = change_icon_color(icon, color)

scifigure icons

Description

A dataset containing icon images used to render all figures in the scifigure package.

Usage

icons

Format

A list of length 44, with each item a 75x75x4 bitmap


repfigure icons_diff

Description

A dataset containing icon images showing difference rather than entity used to render all difference figures in the scifigure package.

Usage

icons_diff

Format

A list of length 44, with each item a 75x75x4 bitmap


Initialize a skeleton data frame to create a figure with sci_figure

Description

init_experiments generates a dataframe with the proper row and column headers for user manipulation before calling sci_figure

Usage

init_experiments(
  nexp = 3,
  exp_names = paste0("Exp", 1:nexp),
  stage_names = c("population", "question", "hypothesis", "experimental_design",
    "experimenter", "data", "analysis_plan", "analyst", "code", "estimate", "claim")
)

Arguments

nexp

The number of scientific experiments to be represented in the data frame, i.e. number of columns.

exp_names

The names of each experiment, i.e. column names. Default: "Exp1, Exp2, ..."

stage_names

The names of each step in the process, i.e. row names. Defaults match Patil et. al.

See Also

sci_figure

Examples

# Generate the default data frame of three experiments
init_experiments()

init_experiments(nexp = 5,
exp_names = c("Run_16_01", "Run_16_04", "Run_16_07",
	"Run_16_09", "Run_16_12"))
testthat::expect_error({
init_experiments(nexp = 2, exp_names = names)
})

Create a figure depicting replicability

Description

replicate_figure is a wrapper around the sci_figure function to illustrate replicability in a two-experiment setting. Options for sci_figure are accepted, but this may be run as is.

Usage

replicate_figure(...)

Arguments

...

Additional arguments passed to sci_figure.

See Also

sci_figure for additional arguments.


Create a figure depicting reproducibility

Description

reproduce_figure is a wrapper around the sci_figure function to illustrate reproducibility in a two-experiment setting. Options for sci_figure are accepted, but this may be run as is.

Usage

reproduce_figure(...)

Arguments

...

Additional arguments passed to sci_figure.

See Also

sci_figure for additional arguments.


Create a figure depicting reproducibility/replicability of a set of scientific experiments

Description

sci_figure creates a graphical representation of changes in a a set of subsequent studies or reproduction attempts as compared to an original study.

Usage

sci_figure(
  experiments,
  custom_icons = NULL,
  stage_names = c("Population", "Question", "Hypothesis", "Exp. Design",
    "Experimenter", "Data", "Analysis Plan", "Analyst", "Code", "Estimate", "Claim"),
  hide_stages = NULL,
  diff = FALSE,
  showlegend = TRUE,
  cols = c(incorect = "#D20000", different = "#007888", unobserved = "#CDCDCD",
    original = "black"),
  leg_text = c("Incorrect", "Different", "Unobserved", "Original"),
  fontsize = 16,
  fig.height = 0.08,
  fig.width = 0.05
)

Arguments

experiments

A data frame, which can be initialized with init_experiments(), whose rownames are the predefined stages of a scientifc experiments, column names are the names of each experiment, and cell values represent the state of each stage in each experiment (states described below).

custom_icons

(optional) A list of bitmap matrices of custom icon images of length matching experiments input. Bitmap icons must be 75 x 75 pixels. See vignette for detailed instructions and specifications. Default NULL, indicating that default icons will be used.

stage_names

Character vector of names of stages. Default names match Patil et. al. If set to NULL, all names will be suppressed. Use hide_stages (below) to suppress specific stage names.

hide_stages

(optional) A character vector with the names of the stages in the scientific experiment, i.e. rownames of experiments, which the user wishes to suppress from the figure output. The default value of hide_stages is NULL, indicating that all stages will be displayed.

diff

(optional) A Boolean flag to indicate whether the rendering of the figure should emphasize the differences between the experiments ("difference mode"). The difference mode uses a set of four symbols that are semantically close to the scenarios that they are encoding. The default value is FALSE.

showlegend

Do you want the legend to be shown?

cols

colors to use for the specific scenarios when diff = T or custom_icons used.

leg_text

text for legend keys corresponding to the specific colors.

fontsize

Size of the font. A calculation will change it but you can adjust this accordingly

fig.height

Height of the figures

fig.width

Width of the figures

Note

For the parameter experiments, the four values any cell may take are: observed, different, unobserved, incorrect.

See Also

init_experiments

Examples

# Initialize the default experiments data frame
exps <- init_experiments()
sci_figure(exps)
experiments = exps
experiments["analyst", "Exp2"] <- "different"
cols = c("#D20000", "yellow", "#CDCDCD", "black")
sci_figure(experiments, cols = cols)
sci_figure(experiments, cols = cols, diff = TRUE)
sci_figure(experiments, cols = cols, diff = TRUE,
hide_stages = "population")
sci_figure(experiments,
cols = c("yellow", "#CDCDCD", "black"),
leg_text = c("Different", "Unobserved", "Original"),
diff = TRUE)
hide_stages = NULL
diff = FALSE

sci_figure(exps, hide_stages = c("population", "analyst"))

# Do some manual manipulation to the experiments

exps["analyst", "Exp2"] <- "different"
exps["code", c("Exp2", "Exp3")] <- "unobserved"
sci_figure(exps, showlegend = FALSE)

# Create the same figure using the difference mode

sci_figure(exps, diff=TRUE)
too_many = init_experiments(nexp = 30)

testthat::expect_warning({
sci_figure(too_many)
}, "showing the first")

exp2 = exps
exp2[,1] = "bad"
testthat::expect_error({
sci_figure(exp2)
}, "Invalid cell")