Firth-penalized detection-count facade for nested input
Source:R/ContrastsChildToParentFacades.R
ContrastsBinomialFirthNestedFacade.RdSame pipeline as ContrastsBinomialNestedFacade: child-feature
detection is collapsed into detected and undetected counts per parent and
sample, so the dispersion and the residual degrees of freedom come from the
samples, not from the number of child features. The fixed pseudo-count is
replaced by Firth's bias reduction (StrategyBinomialFirth),
which gives finite log odds ratios under complete separation, as
ContrastsFirthNestedFacade does. Unlike
firth_nested, child identity is not modelled.
Super classes
ContrastsInterface -> ContrastsFacadeBase -> ContrastsBinomialFirthNestedFacade
Methods
Inherited methods
ContrastsInterface$column_description()ContrastsInterface$contrast_summary_table()ContrastsInterface$extra_artifacts()ContrastsInterface$filter_significant()ContrastsInterface$get_contrast_sides()ContrastsInterface$get_ora()ContrastsInterface$get_rank()ContrastsFacadeBase$get_Plotter()ContrastsFacadeBase$get_config()ContrastsFacadeBase$get_contrasts()ContrastsFacadeBase$get_missing()ContrastsFacadeBase$to_wide()
ContrastsBinomialFirthNestedFacade$new()
Fit the Firth-penalized nested detection-count model and its contrasts.
Usage
ContrastsBinomialFirthNestedFacade$new(
lfqdata,
modelstr,
contrasts,
binomial_bound = TRUE,
...
)Arguments
lfqdatanested
LFQDatamodelstrright-hand-side model formula
contrastsnamed contrast expressions
binomial_boundbound posterior dispersion below by one
...passed to
strategy_binomial_firth
Examples
istar <- sim_lfq_data_peptide_config(Nprot = 20, weight_missing = 0.5, seed = 3)
#> creating sampleName from file_name column
#> completing cases
#> completing cases done
#> setup done
lfqdata <- LFQData$new(istar$data, istar$config)
contrasts <- c("A_vs_Ctrl" = "group_A - group_Ctrl")
facade <- ContrastsBinomialFirthNestedFacade$new(lfqdata, "~ group_", contrasts)
#> completing cases
head(facade$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 binomial_firth_nested observed 0GRprF~7339 A_vs_Ctrl -8.47e- 1 0.424
#> 2 binomial_firth_nested observed 4JK499~3111 A_vs_Ctrl 5.04e- 1 -0.704
#> 3 binomial_firth_nested observed 7IZdVV~6818 A_vs_Ctrl -5.73e- 1 1.32
#> 4 binomial_firth_nested observed AZPG26~9461 A_vs_Ctrl 8.51e-16 2.20
#> 5 binomial_firth_nested observed AoNKbb~3497 A_vs_Ctrl -1.18e+ 0 2.63
#> 6 binomial_firth_nested observed CibL2O~2149 A_vs_Ctrl -1.44e+ 0 -0.718
#> # ℹ 10 more variables: std.error.unmoderated <dbl>, df.unmoderated <int>,
#> # std.error <dbl>, statistic <dbl>, df <dbl>, p.value <dbl>, conf.low <dbl>,
#> # conf.high <dbl>, sigma <dbl>, FDR <dbl>