Skip to contents

LM contrast analysis with LOD imputation facade

LM contrast analysis with LOD imputation facade

Value

An R6 class generator.

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

model

Model object (with imputed proteins)

contrast

ContrastsModerated object

.lfqdata

stored reference to input LFQData

.contrast_names

names of the requested contrasts

Methods

Inherited methods


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

lfqdata

LFQData object (aggregated to protein level)

modelstr

model formula string (e.g. "~ group_")

contrasts

named character vector of contrasts

lod

numeric 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

weights

column name for per-observation weights (default: lfqdata$nr_children_col()). Pass NULL for unweighted.

...

passed to strategy_lm


Method clone()

The objects of this class are cloneable with this method.

Usage

ContrastsLMImputeFacade$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

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