Limma contrast analysis with LOD imputation facade
Source:R/ContrastsFacades.R
ContrastsLimmaImputeFacade.RdLimma contrast analysis with LOD imputation facade
Limma contrast analysis with LOD imputation facade
Details
Encapsulates the pipeline: strategy_limma ->
build_model_limma_impute -> ContrastsLimma.
Proteins whose limma fit produces NA coefficients (typically from entire missing groups) are recovered by imputing missing values with the limit of detection (LOD) and refitting. The variance is borrowed from successful fits and degrees of freedom are corrected so that inference is not artificially precise from the constant imputation.
See also
Other modelling:
AnovaExtractor,
Contrasts,
ContrastsDEqMSFacade,
ContrastsDEqMSVoomFacade,
ContrastsFacadeBase,
ContrastsFirth,
ContrastsFirthFacade,
ContrastsFirthNestedFacade,
ContrastsLMFacade,
ContrastsLMImputeFacade,
ContrastsLMMissingFacade,
ContrastsLimma,
ContrastsLimmaFacade,
ContrastsLimmaVoomFacade,
ContrastsLimmaVoomImputeFacade,
ContrastsLimpaFacade,
ContrastsLimpaNestedFacade,
ContrastsLmerNestedFacade,
ContrastsMissing,
ContrastsModerated,
ContrastsModeratedDEqMS,
ContrastsPlotter,
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(),
contrasts_fisher_exact(),
df.residual.rfit_prolfqua(),
get_anova_df(),
get_complete_model_fit(),
get_p_values_pbeta(),
group_label(),
impute_refit_singular(),
is_singular_lm(),
linfct_all_possible_contrasts(),
linfct_factors_contrasts(),
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(),
moderated_p_limma_long(),
new_imputed_model(),
pivot_model_contrasts_to_wide(),
plot_lmer_peptide_predictions(),
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(),
unregister_facade(),
vcov.rfit_prolfqua()
Super classes
prolfqua::ContrastsInterface -> prolfqua::ContrastsFacadeBase -> ContrastsLimmaImputeFacade
Public fields
modelModelLimma object (with imputed proteins)
contrastContrastsLimma object
.lfqdatastored reference to input LFQData
.contrast_namesnames of the requested contrasts
Methods
Inherited methods
prolfqua::ContrastsInterface$column_description()prolfqua::ContrastsInterface$contrast_summary_table()prolfqua::ContrastsInterface$extra_artifacts()prolfqua::ContrastsInterface$filter_significant()prolfqua::ContrastsInterface$get_config()prolfqua::ContrastsInterface$get_contrast_sides()prolfqua::ContrastsInterface$get_ora()prolfqua::ContrastsInterface$get_rank()prolfqua::ContrastsFacadeBase$get_Plotter()prolfqua::ContrastsFacadeBase$get_contrasts()prolfqua::ContrastsFacadeBase$get_missing()prolfqua::ContrastsFacadeBase$to_wide()
Method new()
initialize
Usage
ContrastsLimmaImputeFacade$new(
lfqdata,
modelstr,
contrasts,
lod = NULL,
df_method = c("observed", "borrowed"),
weights = lfqdata$nr_children_col(),
...
)Arguments
lfqdataLFQData object (aggregated to protein level)
modelstrmodel formula string (e.g. "~ group_")
contrastsnamed character vector of contrasts
lodnumeric limit of detection; if NULL, auto-computed from data
df_method"observed" uses max(n_observed - p, 1); "borrowed" uses median df from successful fits
weightscolumn name for per-observation weights (default:
lfqdata$nr_children_col()). PassNULLfor unweighted....passed to
strategy_limma(e.g. trend, robust)
Examples
istar <- sim_lfq_data_protein_config(Nprot = 30, weight_missing = 0.5)
#> creating sampleName from file_name column
#> completing cases
#> completing cases done
#> setup done
lfqdata <- LFQData$new(istar$data, istar$config)
lfqdata$rename_response("transformedIntensity")
contrasts <- c("A_vs_Ctrl" = "group_A - group_Ctrl")
fa <- ContrastsLimmaImputeFacade$new(lfqdata, "~ group_", contrasts)
#> Warning: Partial NA coefficients for 4 probe(s)
head(fa$get_contrasts())
#> # A tibble: 6 × 16
#> modelName estimate_type protein_Id contrast diff FDR
#> <chr> <chr> <chr> <chr> <dbl> <dbl>
#> 1 limma_impute observed 0EfVhX~2956 A_vs_Ctrl 1.24 0.427
#> 2 limma_impute observed 0m5WN4~6730 A_vs_Ctrl -0.0361 0.971
#> 3 limma_impute observed 7QuTub~6175 A_vs_Ctrl 0.909 0.773
#> 4 limma_impute observed 7cbcrd~2687 A_vs_Ctrl 0.612 0.855
#> 5 limma_impute observed 9VUkAq~3402 A_vs_Ctrl 0.768 0.855
#> 6 limma_impute observed At886V~7759 A_vs_Ctrl -1.86 0.212
#> # ℹ 10 more variables: std.error.unmoderated <dbl>, df.unmoderated <dbl>,
#> # std.error <dbl>, statistic <dbl>, p.value <dbl>, sigma <dbl>, df <dbl>,
#> # conf.low <dbl>, conf.high <dbl>, avgAbd <dbl>
fa$to_wide()
#> # A tibble: 30 × 5
#> protein_Id diff.A_vs_Ctrl p.value.A_vs_Ctrl FDR.A_vs_Ctrl statistic.A_vs_Ctrl
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 0EfVhX~29… 1.24 0.0853 0.427 1.86
#> 2 0m5WN4~67… -0.0361 0.971 0.971 -0.0374
#> 3 7QuTub~61… 0.909 0.352 0.773 1.00
#> 4 7cbcrd~26… 0.612 0.570 0.855 0.588
#> 5 9VUkAq~34… 0.768 0.519 0.855 0.664
#> 6 At886V~77… -1.86 0.0258 0.212 -2.50
#> 7 BEJI92~27… -1.30 0.182 0.545 -1.41
#> 8 CGzoYe~08… 0.196 0.850 0.971 0.194
#> 9 CtOJ9t~91… -0.0717 0.929 0.971 -0.0912
#> 10 DoWup2~28… -1.82 0.00858 0.129 -3.07
#> # ℹ 20 more rows