## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 8, fig.height = 7, dpi = 110, fig.align = "center" ) ## ----setup-------------------------------------------------------------------- library(circlecorR) ## ----groups------------------------------------------------------------------- groups <- list( Demographics = c("Age", "BMI"), Metrics = c("Amplitude", "Fed-Fasted AR", "Frequency", "GA-RI"), Symptoms = c("Nausea", "Early satiety", "Bloating", "Upper GI pain", "Lower GI pain", "Heartburn"), Scores = c("GCSI", "PAGI-SYM", "PAGI-QoL", "EQ-5D") ) ## ----raw-data----------------------------------------------------------------- # `gastro_symptoms` is a synthetic per-row example dataset shipped with the package head(gastro_symptoms[, 1:5]) corr_wheel( gastro_symptoms, # raw data: one row per subject groups = groups, method = "pearson", # correlation method adjust = "hochberg", # multiple-comparison adjustment (see below) sig_level = 0.05, # hide links with adjusted p > 0.05 r_threshold = 0.3, # ...and links with |r| < 0.3 r_limits = c(-0.6, 0.6) ) ## ----family------------------------------------------------------------------- res <- corr_wheel(gastro_symptoms, groups = groups, adjust = "hochberg", r_threshold = 0.3, r_limits = c(-0.6, 0.6)) k <- length(unlist(groups)) cat("Unique correlations in the full matrix:", k * (k - 1) / 2, "\n") cat("Correlations actually tested (the family):", res$n_tests, "\n") ## ----power-------------------------------------------------------------------- p_raw <- 5e-4 # a raw p-value for one correlation k_all <- k * (k - 1) / 2 cat("Bonferroni across the full matrix:", signif(p_raw * k_all, 3), "\n") cat("Bonferroni across the family only:", signif(p_raw * res$n_tests, 3), "\n") ## ----compute-correlations----------------------------------------------------- cc <- compute_correlations(gastro_symptoms, method = "pearson") str(cc) ## ----schemes-list------------------------------------------------------------- corr_wheel_schemes() ## ----scheme-colorblind-------------------------------------------------------- corr_wheel(gastro_symptoms, groups = groups, r_threshold = 0.3, r_limits = c(-0.6, 0.6), scheme = "colorblind") ## ----scheme-alimetry---------------------------------------------------------- corr_wheel(gastro_symptoms, groups = groups, r_threshold = 0.3, r_limits = c(-0.6, 0.6), scheme = "alimetry") ## ----scheme-tweak------------------------------------------------------------- s <- corr_wheel_scheme("ocean") s$palette[2] <- "grey96" corr_wheel(gastro_symptoms, groups = groups, r_threshold = 0.3, r_limits = c(-0.6, 0.6), scheme = s) ## ----scheme-custom------------------------------------------------------------ corr_wheel(gastro_symptoms, groups = groups, r_threshold = 0.3, r_limits = c(-0.6, 0.6), scheme = list(colors = c("#7B2CBF", "#2A9D8F", "#E76F51", "#264653"), palette = c("#2A9D8F", "white", "#E76F51"))) ## ----colours------------------------------------------------------------------ corr_wheel( gastro_symptoms, groups = groups, r_threshold = 0.3, r_limits = c(-0.6, 0.6), scheme = "colorblind", colors = c(Scores = "black"), # override just one category labels = c("GA-RI" = "Rhythm index") ) ## ----sizes-------------------------------------------------------------------- corr_wheel( gastro_symptoms, groups = groups, r_threshold = 0.3, r_limits = c(-0.6, 0.6), tile_height = 0.12, # thicker blocks link_lwd = 3 # thicker lines ) ## ----palette------------------------------------------------------------------ corr_wheel( gastro_symptoms, groups = groups, r_threshold = 0.3, palette = c("#2166AC", "white", "#B2182B"), # blue - white - red r_limits = c(-0.5, 0.5) ) ## ----save, eval = FALSE------------------------------------------------------- # png("correlation_wheel.png", width = 2500, height = 2000, res = 300) # corr_wheel(gastro_symptoms, groups = groups, r_threshold = 0.3, # r_limits = c(-0.6, 0.6)) # dev.off()