Identifies both highly informative (differentially expressed) features and features with stable expression across cohorts, supporting ratio-based panel design. Stability can be measured via precision-weighted inverse t-statistics, coefficient-of-variation penalties, or inverse t-statistic standard errors.

select_features_for_ratios(
  x_list,
  y_list,
  contrast = NULL,
  n_stable = 50L,
  n_informative = 50L,
  stability_method = c("precision_weighted", "cv_t_stats", "inverse_t_se"),
  combination_method = c("OSP", "Stouffer", "Fisher", "maxP"),
  assay = NULL
)

Arguments

x_list

A matrix-like object, SummarizedExperiment, or list of such objects. Rows represent samples and columns represent features.

y_list

A binary response aligned with x_list. Must be a factor with levels c("No", "Yes"). Provide a list when x_list is a list.

contrast

Optional contrast string (or list of strings) passed to limma::makeContrasts(). Defaults to "Yes-No".

n_stable

Number of approximately invariant features to return (default 50).

n_informative

Number of informative features to return (default 50).

stability_method

Method used to score stability. One of "precision_weighted", "cv_t_stats", or "inverse_t_se".

combination_method

Method for combining cohort-specific z-scores. One of "OSP", "Stouffer", "Fisher", or "maxP".

assay

For SummarizedExperiment inputs, the assay name or index to extract prior to modelling.

Value

A list with elements stable and informative, each containing a character vector of feature identifiers.