View source: R/plot_point_range.R
| olink_lmer_plot | R Documentation |
Generates a point-range plot faceted by Assay using ggplot and
ggplot2::geom_pointrange based on a linear mixed effects model using
lmerTest:lmer and emmeans::emmeans. See olink_lmer for details of
input notation.
olink_lmer_plot(
df,
check_log = NULL,
variable,
outcome = "NPX",
random,
olinkid_list = NULL,
covariates = NULL,
x_axis_variable,
col_variable = NULL,
number_of_proteins_per_plot = 6L,
verbose = FALSE,
...
)
df |
NPX data frame in long format with at least protein name (Assay), OlinkID, UniProt, 1-2 variables with at least 2 levels. |
check_log |
A named list returned by |
variable |
Single character value or character array. Variable(s) to test. If length > 1, the included variable names will be used in crossed analyses. Also takes ':' or '*' notation. |
outcome |
Character. The dependent variable. Default: NPX. |
random |
Single character value or character array. |
olinkid_list |
Character vector indicating which proteins (by OlinkID) for which to create figures. |
covariates |
Single character value or character array. Default: NULL. Covariates to include. Takes ':' or '*' notation. Crossed analysis will not be inferred from main effects. |
x_axis_variable |
Character. Which main effect to use as x-axis in the plot. |
col_variable |
Character. If provided, the interaction effect col_variable:x_axis_variable will be plotted with x_axis_variable on the x-axis and col_variable as color. |
number_of_proteins_per_plot |
Number plots to include in the list of point-range plots. Defaults to 6 plots per figure |
verbose |
Boolean. Default: True. If information about removed samples, factor conversion and final model formula is to be printed to the console. |
... |
coloroption for color ordering |
A list of objects of class "ggplot" showing point-range plot of NPX (y-axis) over x_axis_variable for each assay (facet), colored by col_variable if provided.
if (rlang::is_installed(pkg = c("lme4", "lmerTest", "broom", "emmeans"))) {
#data
npx_df <- OlinkAnalyze::npx_data1 |>
dplyr::filter(
!grepl(
pattern = "control|ctrl",
x = .data[["SampleID"]],
ignore.case = TRUE
)
)
# check data
npx_df_check_log <- OlinkAnalyze::check_npx(
df = npx_df
)
# Results in model NPX ~ Time * Treatment + (1 | Subject) + (1 | Site)
lmer_results <- OlinkAnalyze::olink_lmer(
df = npx_df,
check_log = npx_df_check_log,
variable = c("Time", "Treatment"),
random = c("Subject")
)
# List of significant proteins for the interaction effect Time:Treatment
assay_list <- lmer_results |>
dplyr::filter(
.data[["Threshold"]] == "Significant"
& .data[["term"]] == "Time:Treatment"
) |>
dplyr::distinct(.data[["OlinkID"]]) |>
dplyr::pull()
lst_pointrange_plots <- OlinkAnalyze::olink_lmer_plot(
df = npx_df,
check_log = npx_df_check_log,
variable = c("Time", "Treatment"),
random = c("Subject"),
x_axis_variable = "Time",
col_variable = "Treatment",
verbose = TRUE,
olinkid_list = assay_list,
number_of_proteins_per_plot = 10L
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.