LM contrast analysis with LOD imputation facade
Source:R/ContrastsFacades.R
ContrastsLMImputeFacade.RdLM contrast analysis with LOD imputation facade
LM contrast analysis with LOD imputation facade
Details
Encapsulates the pipeline: strategy_lm ->
build_model (with impute = TRUE) ->
Contrasts -> ContrastsModerated.
Proteins whose initial lm fit fails or produces NA coefficients are re-fitted after imputing missing values with the limit of detection (LOD). The covariance matrix is borrowed from successful fits so that the variance is not underestimated by the constant imputation.
See also
Other modelling:
AnovaExtractor,
Contrasts,
ContrastsDEqMSFacade,
ContrastsDEqMSVoomFacade,
ContrastsFacadeBase,
ContrastsFirth,
ContrastsFirthFacade,
ContrastsFirthNestedFacade,
ContrastsLMFacade,
ContrastsLMMissingFacade,
ContrastsLimma,
ContrastsLimmaFacade,
ContrastsLimmaImputeFacade,
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 -> ContrastsLMImputeFacade
Public fields
modelModel object (with imputed proteins)
contrastContrastsModerated 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
ContrastsLMImputeFacade$new(
lfqdata,
modelstr,
contrasts,
lod = NULL,
borrow_method = c("sigma", "vcov"),
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
borrow_method"sigma" borrows scalar sigma and uses per-protein (X'X)^-1; "vcov" borrows element-wise median of full vcov matrices
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_lm
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 <- ContrastsLMImputeFacade$new(lfqdata, "~ group_", contrasts)
head(fa$get_contrasts())
#> determine linear functions:
#> get_contrasts -> contrasts_linfct
#> contrasts_linfct
#> Joining with `by = join_by(protein_Id, contrast)`
#> # A tibble: 6 × 16
#> modelName estimate_type protein_Id contrast diff avgAbd
#> <chr> <chr> <chr> <chr> <dbl> <dbl>
#> 1 lm_impute observed 0EfVhX~2956 A_vs_Ctrl 1.24 22.6
#> 2 lm_impute observed 0m5WN4~6730 A_vs_Ctrl -0.0361 20.8
#> 3 lm_impute observed 7QuTub~6175 A_vs_Ctrl 0.909 16.7
#> 4 lm_impute observed 7cbcrd~2687 A_vs_Ctrl 0.612 21.9
#> 5 lm_impute observed 9VUkAq~3402 A_vs_Ctrl 0.768 20.0
#> 6 lm_impute observed At886V~7759 A_vs_Ctrl -1.86 29.1
#> # ℹ 10 more variables: std.error.unmoderated <dbl>, df.unmoderated <dbl>,
#> # std.error <dbl>, statistic <dbl>, df <dbl>, p.value <dbl>, conf.low <dbl>,
#> # conf.high <dbl>, sigma <dbl>, FDR <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.0849 0.510 1.86
#> 2 0m5WN4~67… -0.0361 0.971 0.971 -0.0372
#> 3 7QuTub~61… 0.909 0.353 0.771 0.999
#> 4 7cbcrd~26… 0.612 0.570 0.867 0.588
#> 5 9VUkAq~34… 0.768 0.517 0.867 0.666
#> 6 At886V~77… -1.86 0.0260 0.204 -2.50
#> 7 BEJI92~27… -1.30 0.184 0.589 -1.41
#> 8 CGzoYe~08… 0.196 0.850 0.971 0.193
#> 9 CtOJ9t~91… -0.0717 0.929 0.971 -0.0914
#> 10 DoWup2~28… -1.82 0.00852 0.128 -3.07
#> # ℹ 20 more rows