## ----setup, include = FALSE, echo = FALSE, eval = TRUE------------------------ knitr::opts_chunk$set( collapse = TRUE, comment = "#>", tidy = FALSE, tidy.opts = list(width.cutoff = 95), fig.width = 6, fig.height = 3, message = FALSE, warning = FALSE, time_it = TRUE, fig.align = "center" ) knitr::opts_chunk$set(fig.pos = "H") knitr::opts_chunk$set(fig.align = "center") knitr::opts_knit$set(eval.after = "fig.cap") ## ----Outlier_data, include = FALSE, error = TRUE, message = FALSE, warning = FALSE---- try({ # Use provided example dataset (npx_data1) npx_data1 <- OlinkAnalyze::npx_data1 # NPX file preprocessing # Generate check log check_log_npx_data1 <- OlinkAnalyze::check_npx( df = npx_data1 ) # Clean NPX npx_data1_clean <- OlinkAnalyze::clean_npx( df = npx_data1, check_log = check_log_npx_data1 ) # Generate check log on cleaned data check_log_npx_data1_clean <- OlinkAnalyze::check_npx( df = npx_data1_clean ) # Create Dataset with outliers outlier_data <- npx_data1_clean |> dplyr::mutate( NPX = dplyr::if_else( .data[["SampleID"]] == "A25", .data[["NPX"]] + 4, .data[["NPX"]] ) ) |> dplyr::mutate( NPX = dplyr::if_else( .data[["SampleID"]] == "A52", .data[["NPX"]] - 4, .data[["NPX"]] ) ) group_data <- npx_data1_clean |> dplyr::mutate( NPX = dplyr::if_else( .data[["Site"]] == "Site_D", .data[["NPX"]] + 3, .data[["NPX"]] ) ) # Clean up environment rm(check_log_npx_data1, npx_data1) }) ## ----dataset_generation, eval = FALSE, message = FALSE, warning = FALSE------- # # Use provided example dataset (npx_data1) # npx_data1 <- OlinkAnalyze::npx_data1 # # # NPX file preprocessing # # # Generate check log # check_log_npx_data1 <- OlinkAnalyze::check_npx( # df = npx_data1 # ) # # # Clean NPX # npx_data1_clean <- OlinkAnalyze::clean_npx( # df = npx_data1, # check_log = check_log_npx_data1 # ) # # # Generate check log on cleaned data # check_log_npx_data1_clean <- OlinkAnalyze::check_npx( # df = npx_data1_clean # ) # # # Create Dataset with outliers # outlier_data <- npx_data1_clean |> # dplyr::mutate( # NPX = dplyr::if_else( # .data[["SampleID"]] == "A25", # .data[["NPX"]] + 4, # .data[["NPX"]] # ) # ) |> # dplyr::mutate( # NPX = dplyr::if_else( # .data[["SampleID"]] == "A52", # .data[["NPX"]] - 4, # .data[["NPX"]] # ) # ) # # group_data <- npx_data1_clean |> # dplyr::mutate( # NPX = dplyr::if_else( # .data[["Site"]] == "Site_D", # .data[["NPX"]] + 3, # .data[["NPX"]] # ) # ) ## ----Outlier_example_code, eval = FALSE, fig.show='hide'---------------------- # p1 <- OlinkAnalyze::olink_pca_plot( # df = outlier_data, # label_samples = TRUE, # quiet = TRUE, # check_log = check_log_npx_data1_clean # ) # # p2 <- OlinkAnalyze::olink_pca_plot( # df = group_data, # color_g = "Site", # quiet = TRUE, # check_log = check_log_npx_data1_clean # ) # # ggpubr::ggarrange( # p1[[1L]], # p2[[1L]], # nrow = 1L, # labels = "AUTO" # ) ## ----Outlier_Example, echo = FALSE, fig.cap = fcap---------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/PCA_Outlier_Fig1.png" ), error = FALSE ) fcap <- paste("**Figure 1** **A.** PCA can be used to identify individual", "outlier samples as shown by samples A25 and A52. **B.** PCA can", "be used to identify difference in groups as seen by Site_D", "samples. This is not suggesting Site_D is an outlier, but", "rather that there may be a global difference between sites.") ## ----PCA_treatment, eval = FALSE---------------------------------------------- # OlinkAnalyze::olink_pca_plot( # df = npx_data1_clean, # color_g = "Treatment", # check_log = check_log_npx_data1_clean # ) ## ----PCA_treatment_fig, echo = FALSE------------------------------------------ knitr::include_graphics( path = normalizePath( path = "../man/figures/PCA_Treatment.png" ), error = FALSE ) ## ----PCA_Panel, eval = FALSE-------------------------------------------------- # # Use provided example dataset (npx_data2) # # npx_data2 <- OlinkAnalyze::npx_data2 # # # NPX file preprocessing # # # Generate check log # check_log_npx_data2 <- OlinkAnalyze::check_npx( # df = npx_data2 # ) # # # Clean NPX # npx_data2_clean <- OlinkAnalyze::clean_npx( # df = npx_data2, # check_log = check_log_npx_data2 # ) # # # Generate check log on cleaned data # check_log_npx_data2_clean <- OlinkAnalyze::check_npx( # df = npx_data2_clean # ) # # # Specify by panel # OlinkAnalyze::olink_pca_plot( # df = npx_data2_clean, # byPanel = TRUE, # check_log = check_log_npx_data2_clean # ) ## ----PCA_Panel_fig, echo = FALSE---------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/PCA_Panel.png" ), error = FALSE ) ## ----PCA_object, eval = FALSE------------------------------------------------- # # Save the PCA plot to a variable # # By panel # # quiet argument suppresses export # pca_plots <- OlinkAnalyze::olink_pca_plot( # df = npx_data2_clean, # byPanel = TRUE, # quiet = TRUE, # check_log = check_log_npx_data2_clean # ) # # pca_plots[[1L]] # Cardiometabolic PCA # pca_plots[[2L]] # Inflammation PCA ## ----Outlier_PCA, echo = FALSE------------------------------------------------ knitr::include_graphics( path = normalizePath( path = "../man/figures/Outlier_PCA.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # OlinkAnalyze::olink_pca_plot( # df = outlier_data, # label_samples = TRUE, # check_log = check_log_npx_data1_clean # ) ## ----Label_samples, echo = FALSE---------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/label_samples_pca.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # if (requireNamespace(package = "ggrepel", quietly = TRUE)) { # OlinkAnalyze::olink_pca_plot( # df = outlier_data, # outlierDefX = 3L, # outlierDefY = 3L, # outlierLines = TRUE, # label_outliers = TRUE, # check_log = check_log_npx_data1_clean # ) # } ## ----outlier_line_pca, echo = FALSE------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/outlier_line_pca.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # if (requireNamespace(package = "ggrepel", quietly = TRUE)) { # OlinkAnalyze::olink_pca_plot( # df = outlier_data, # outlierDefX = 3L, # outlierDefY = 3L, # outlierLines = FALSE, # label_outliers = TRUE, # check_log = check_log_npx_data1_clean # ) # } ## ----------------------------------------------------------------------------- if (requireNamespace(package = "ggrepel", quietly = TRUE)) { outliers_pca_labeled <- OlinkAnalyze::olink_pca_plot( df = outlier_data, outlierDefX = 3L, outlierDefY = 3L, outlierLines = FALSE, label_outliers = TRUE, quiet = TRUE, check_log = check_log_npx_data1_clean ) outliers_pca_labeled[[1L]]$data |> dplyr::filter( .data[["Outlier"]] == TRUE ) |> dplyr::select( dplyr::all_of("SampleID") ) |> dplyr::distinct() } ## ----eval = FALSE------------------------------------------------------------- # outlier_data_dist <- outlier_data |> # dplyr::filter( # .data[["SampleID"]] %in% c("A25", "A52", "A1", "A2", "A3", "A5", # "A15", "A16", "A18", "A19", "A20") # ) # # OlinkAnalyze::olink_dist_plot( # df = outlier_data_dist, # check_log = check_log_npx_data1_clean # ) ## ----echo = FALSE------------------------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/dist_boxplot.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # group_data_dist <- group_data |> # # Only visualizing 2 sites to see all samples # dplyr::filter( # .data[["Site"]] %in% c("Site_A", "Site_D") # ) # # OlinkAnalyze::olink_dist_plot( # df = group_data_dist, # color_g = "Site", # check_log = check_log_npx_data1_clean # ) ## ----echo = FALSE------------------------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/site_boxplot.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # # Calculate SampleID Median NPX # median_npx <- group_data |> # dplyr::group_by( # .data[["SampleID"]] # ) |> # dplyr::summarise( # Median_NPX = median(.data[["NPX"]]) # ) |> # dplyr::ungroup() # # # Adjust by sample median # adjusted_data <- group_data |> # dplyr::inner_join( # median_npx, # by = "SampleID" # ) |> # dplyr::mutate( # NPX = .data[["NPX"]] - .data[["Median_NPX"]] # ) # # adjusted_data_dist <- adjusted_data |> # # Only visualizing 2 sites to see all samples # dplyr::filter( # .data[["Site"]] %in% c("Site_A", "Site_D") # ) # # OlinkAnalyze::olink_dist_plot( # df = adjusted_data_dist, # color_g = "Site", # check_log = check_log_npx_data1_clean # ) ## ----echo=FALSE--------------------------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/sample_med_boxplot.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # if (requireNamespace(package = "ggrepel", quietly = TRUE)) { # OlinkAnalyze::olink_qc_plot( # df = outlier_data, # label_outliers = TRUE, # check_log = check_log_npx_data1_clean # ) # } ## ----echo=FALSE--------------------------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/qc_plot.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # if (requireNamespace(package = "ggrepel", quietly = TRUE)) { # OlinkAnalyze::olink_qc_plot( # df = group_data, # color_g = "Site", # label_outliers = TRUE, # check_log = check_log_npx_data1_clean # ) # } ## ----echo = FALSE------------------------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/qc_site_plot.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # if (requireNamespace(package = "ggrepel", quietly = TRUE)) { # OlinkAnalyze::olink_qc_plot( # df = outlier_data, # median_outlierDef = 2L, # IQR_outlierDef = 4L, # outlierLines = TRUE, # label_outliers = TRUE, # check_log = check_log_npx_data1_clean # ) # } ## ----echo = FALSE------------------------------------------------------------- knitr::include_graphics( path = normalizePath( path = "../man/figures/qc_label_plot.png" ), error = FALSE ) ## ----eval = FALSE------------------------------------------------------------- # if (requireNamespace(package = "ggrepel", quietly = TRUE)) { # OlinkAnalyze::olink_qc_plot( # df = outlier_data, # median_outlierDef = 2L, # IQR_outlierDef = 4L, # outlierLines = FALSE, # label_outliers = TRUE, # check_log = check_log_npx_data1_clean # ) # } ## ----------------------------------------------------------------------------- if (requireNamespace(package = "ggrepel", quietly = TRUE)) { outliers_qc_labeled <- OlinkAnalyze::olink_qc_plot( df = outlier_data, median_outlierDef = 2L, IQR_outlierDef = 4, outlierLines = FALSE, label_outliers = TRUE, check_log = check_log_npx_data1_clean ) outliers_qc_labeled$data |> dplyr::filter( .data[["Outlier"]] == TRUE ) |> dplyr::select( dplyr::all_of("SampleID") ) |> dplyr::distinct() }