plot contrasts
plot contrasts
See also
Other modelling:
AnovaExtractor,
Contrasts,
ContrastsDEqMSFacade,
ContrastsDEqMSVoomFacade,
ContrastsFacadeBase,
ContrastsFirth,
ContrastsFirthFacade,
ContrastsFirthNestedFacade,
ContrastsLMFacade,
ContrastsLMImputeFacade,
ContrastsLMMissingFacade,
ContrastsLimma,
ContrastsLimmaFacade,
ContrastsLimmaImputeFacade,
ContrastsLimmaVoomFacade,
ContrastsLimmaVoomImputeFacade,
ContrastsLimpaFacade,
ContrastsLimpaNestedFacade,
ContrastsLmerNestedFacade,
ContrastsMissing,
ContrastsModerated,
ContrastsModeratedDEqMS,
ContrastsRLMFacade,
ContrastsROPECA,
ContrastsROPECANestedFacade,
ContrastsRfitFacade,
ContrastsRfitImputeFacade,
ContrastsTable,
INTERNAL_FUNCTIONS_BY_FAMILY,
LR_test(),
Model,
ModelFirth,
ModelLimma,
StrategyLM,
StrategyLimma,
StrategyLimpa,
StrategyLmer,
StrategyLogistf,
StrategyRLM,
StrategyRfit,
build_contrast_analysis(),
build_model(),
build_model_glm_peptide(),
build_model_glm_protein(),
build_model_impute(),
build_model_limma(),
build_model_limma_impute(),
build_model_limma_voom(),
build_model_limma_voom_impute(),
build_model_limpa(),
build_model_logistf(),
compute_borrowed_variance(),
compute_borrowed_variance_limma(),
compute_contrast(),
compute_lmer_contrast(),
df.residual.rfit_prolfqua(),
get_anova_df(),
get_complete_model_fit(),
get_p_values_pbeta(),
group_label(),
impute_from_model(),
impute_refit_singular(),
linfct_from_model(),
linfct_matrix_contrasts(),
list_facades(),
lookup_facade(),
merge_contrasts_results(),
model_analyse(),
model_summary(),
moderated_p_deqms(),
moderated_p_deqms_long(),
moderated_p_limma(),
new_imputed_model(),
pivot_model_contrasts_to_wide(),
register_facade(),
sigma.rfit_prolfqua(),
sim_build_models_lm(),
sim_build_models_lmer(),
sim_build_models_logistf(),
sim_make_model_lm(),
sim_make_model_lmer(),
strategy_limma(),
strategy_limpa(),
strategy_logistf(),
summary_ROPECA_median_p.scaled(),
vcov.rfit_prolfqua()
Other plotting:
INTERNAL_FUNCTIONS_BY_FAMILY,
missigness_histogram(),
missingness_per_condition(),
missingness_per_condition_cumsum(),
plot_estimate(),
plot_heatmap(),
plot_heatmap_cor(),
plot_hierarchies_boxplot_df(),
plot_hierarchies_line(),
plot_intensity_distribution_violin(),
plot_na_heatmap(),
plot_pca(),
plot_raster(),
plot_sample_correlation(),
upset_interaction_missing_stats(),
upset_missing_stats()
Public fields
model_nameof column with model name
subject_idhierarchy key columns
diffcolumn with fold change differences
contrastcolumn with contrasts names, default "contrast"
groupcrosstalk group name for linked brushing, default "BB"
volcano_specvolcano plot specification
score_specscore plot specification
histogram_specplot specification
fcthreshfold change threshold
avg.abundancename of column containing avg abundance values.
Methods
Method new()
create Crontrast_Plotter
Usage
ContrastsPlotter$new(
contrast_df,
subject_id,
volcano = list(list(score = "FDR", thresh = 0.1)),
histogram = list(list(score = "p.value", xlim = c(0, 1, 0.05)), list(score = "FDR",
xlim = c(0, 1, 0.05))),
score = list(list(score = "statistic", thresh = NULL)),
fcthresh = 1,
modelName = "modelName",
diff = "diff",
contrast = "contrast",
avg.abundance = "avgAbd",
group = "BB"
)Arguments
contrast_dfframe with contrast data
subject_idcolumns containing subject Identifier
volcanowhich score to plot and which ablines to add.
histogramwhich scores to plot and which range (x) should be shown.
scorescore parameters
fcthreshdefault 1 (log2 FC threshold)
modelNamename of the colour column. Defaults to
"modelName"; when left at the default and the contrast carries anestimate_typecolumn, that column is used for colouring instead (so observed vs imputed/fallback rows stay distinguishable).difffold change (difference) diff column
contrastcontrast column
avg.abundancename of column with average abundance
groupcrosstalk group name for linked brushing, default "BB"
Method volcano()
volcano plots (fold change vs FDR)
Usage
ContrastsPlotter$volcano(
colour = self$model_name,
legend = TRUE,
scales = c("fixed", "free", "free_x", "free_y"),
min_score = NULL
)Arguments
colourcolumn name with color information default modelName
legenddefault TRUE
scalesdefault fixed
facet_wrap, scales argumentmin_scoreoptional lower bound for p-values or FDR values. If NULL, only exact zero and negative values are replaced with the smallest positive observed value in the same score column.
Method volcano_plotly()
plotly volcano plots
Usage
ContrastsPlotter$volcano_plotly(
colour = self$model_name,
legend = TRUE,
scales = c("fixed", "free", "free_x", "free_y"),
min_score = NULL
)Arguments
colourcolumn in contrast matrix with colour coding
legenddefault TRUE
scalesdefault fixed
facet_wrap, scales argumentmin_scoreoptional lower bound for p-values or FDR values. If NULL, only exact zero and negative values are replaced with the smallest positive observed value in the same score column.
Method ma_plot()
ma plot
MA plot displays the effect size estimate as a function of the mean protein intensity across groups. Each dot represents an observed protein. Red horizontal lines represent the fold-change threshold.
Sometimes measured effects sizes (differences between samples groups) are biased by the signal intensity (here protein abundance). Such systematic effects can be explored using MA-plots.
Usage
ContrastsPlotter$ma_plot(
fc = self$fcthresh,
colour = self$model_name,
legend = TRUE,
rank = TRUE
)Method ma_plotly()
ma plotly
Usage
ContrastsPlotter$ma_plotly(
fc = self$fcthresh,
colour = self$model_name,
legend = TRUE,
rank = FALSE
)Method score_plot()
plot a score against the log2 fc e.g. t-statistic
Examples
istar <- sim_lfq_data_peptide_config(Nprot = 20)
#> creating sampleName from file_name column
#> completing cases
#> completing cases done
#> setup done
model_name <- "Model"
modelFunction <-
strategy_lmer("abundance ~ group_ + (1 | peptide_Id) + (1|sample)",
model_name = model_name)
pepIntensity <- istar$data
config <- istar$config
mod <- build_model(
pepIntensity,
modelFunction,
model_name = model_name,
subject_id = config$hierarchy_keys_depth())
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> boundary (singular) fit: see help('isSingular')
#> Warning: There were 7 warnings in `dplyr::mutate()`.
#> The first warning was:
#> ℹ In argument: `linear_model = purrr::map(data, model_strategy$model_fun, pb =
#> pb)`.
#> ℹ In group 1: `protein_Id = "0EfVhX~5954"`.
#> Caused by warning:
#> ! grouping factors must have > 1 sampled level
#> ℹ Run `dplyr::last_dplyr_warnings()` to see the 6 remaining warnings.
Contr <- c("group_A_vs_Ctrl" = "group_A - group_Ctrl",
"group_B_vs_Ctrl" = "group_B - group_Ctrl"
)
contrast <- prolfqua::Contrasts$new(mod,
Contr)
contr <- contrast$get_contrasts()
#> determine linear functions:
#> get_contrasts -> contrasts_linfct
#> contrasts_linfct
#> Joining with `by = join_by(protein_Id, contrast)`
cp <- ContrastsPlotter$new(contr,
contrast$subject_id,
volcano = list(list(score = "FDR", thresh = 0.1)),
histogram = list(list(score = "p.value", xlim = c(0,1,0.05)),
list(score = "FDR", xlim = c(0,1,0.05))),
score =list(list(score = "statistic", thresh = 5))
)
stopifnot("plotly" %in% class(cp$volcano_plotly()$FDR))
stopifnot("ggplot" %in% class(cp$score_plot(legend=FALSE)$statistic))
p <- cp$histogram()
stopifnot("ggplot" %in% class(p$FDR))
stopifnot("ggplot" %in% class(p$p.value))
res <- cp$volcano()
stopifnot("ggplot" %in% class(res$FDR))
respltly <- cp$volcano_plotly()
stopifnot("plotly" %in% class(respltly$FDR))
stopifnot("ggplot" %in% class(cp$ma_plot()))
stopifnot("plotly" %in% class(cp$ma_plotly(rank=TRUE)))
res <- cp$barplot_threshold()
stopifnot("ggplot" %in% class(res$FDR$plot))
stopifnot("ggplot" %in% class(cp$histogram_diff()))