## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)

## ----group_label--------------------------------------------------------------
library(prolfqua)

group_label("MI", "T0")
group_label("MINOCA", "T300")

## ----define_levels------------------------------------------------------------
primary_levels <- c("MI", "MINOCA")
secondary_levels <- c("T0", "T150", "T300")

## ----main_effects-------------------------------------------------------------
me <- main_effect_contrasts(primary_levels, secondary_levels)
data.frame(ContrastName = names(me), Contrast = unlist(me))

## ----main_effects_swapped-----------------------------------------------------
me2 <- main_effect_contrasts(secondary_levels, primary_levels)
data.frame(ContrastName = names(me2), Contrast = unlist(me2))

## ----level_specific-----------------------------------------------------------
ls <- level_specific_contrasts(primary_levels, secondary_levels)
data.frame(ContrastName = names(ls), Contrast = unlist(ls))

## ----interactions-------------------------------------------------------------
ic <- interaction_contrasts(primary_levels, secondary_levels)
data.frame(ContrastName = names(ic), Contrast = unlist(ic))

## ----single_factor------------------------------------------------------------
group_levels <- c("CondA", "CondB", "CondC")
sf <- generate_contrasts_for_factor(group_levels)
data.frame(ContrastName = names(sf), Contrast = unlist(sf))

## ----generate_all-------------------------------------------------------------
all_contrasts <- generate_contrasts(primary_levels, secondary_levels)
knitr::kable(all_contrasts, row.names = FALSE)

## ----generate_no_interactions-------------------------------------------------
no_int <- generate_contrasts(primary_levels, secondary_levels, interactions = FALSE)
knitr::kable(no_int, row.names = FALSE)

## ----annotation_example-------------------------------------------------------
# x5463yzwer453bbb is a bundled example annotation table
# with factor_A (MI / MINOCA) and factor_B (T0 / T150 / T300)
data("x5463yzwer453bbb", package = "prolfqua")
head(x5463yzwer453bbb[, c("Name", "Group", "factor_A", "factor_B")])

## ----annotation_add_contrasts-------------------------------------------------
result <- annotation_add_contrasts(
  x5463yzwer453bbb,
  primary_col = "factor_A",
  secondary_col = "factor_B",
  prefix = "primary"
)

# The annotation with united Group and contrast columns
knitr::kable(head(result$annot[, c("Name", "Group", "ContrastName", "Contrast")], 10),
             row.names = FALSE)

# Suggested output file name
result$name

## ----annotation_swapped-------------------------------------------------------
result2 <- annotation_add_contrasts(
  x5463yzwer453bbb,
  primary_col = "factor_B",
  secondary_col = "factor_A",
  prefix = "secondary"
)
knitr::kable(head(result2$annot[, c("Name", "Group", "ContrastName", "Contrast")], 10),
             row.names = FALSE)

## ----session_info-------------------------------------------------------------
sessionInfo()

