PolyGeniusModelSet

PolyGeniusModelSet R6 class representing multiple PRS models

Description

PolyGeniusModelSet is an R6 container for multiple PolyGeniusModel objects (and/or nested sets). It provides a small grammar to filter/select/mutate the per-model variants tables, filter models by model-level conditions, fetch overview data across models, and print a tidy overview.

This S3 method supports:

  1. Subsetting leaf models by index (i numeric/logical),

  2. Filtering variants across all models by a variant-level expression (i quosure),

  3. Selecting variant columns across all models (j), and

  4. Filtering models by a model-level expression (k).

Usage

PolyGeniusModelSet(..., name = NULL)

## S3 method for class 'PolyGeniusModel'
c(..., recursive = FALSE, name = NULL)

## S3 method for class 'PolyGeniusModelSet'
c(..., recursive = FALSE, name = NULL)

## S3 method for class 'PolyGeniusModelSet'
length(x)

## S3 method for class 'PolyGeniusModelSet'
names(x)

## S3 replacement method for class 'PolyGeniusModelSet'
names(x) <- value

## S3 method for class 'PolyGeniusModelSet'
x[[i, ...]]

## S3 method for class 'PolyGeniusModelSet'
x[i, j, k, ...]

Arguments

Unused.

name

Optional name for the resulting set.

recursive

Ignored (for base c() S3 compatibility).

x

A PolyGeniusModelSet.

value

Character vector of new model names.

i

Optional model index (numeric/logical) or variant-level logical expression.

j

Optional character vector or unquoted expression selecting variant columns.

k

Optional model-level logical expression.

Details

Operations are applied in order: ijk.

Value

A PolyGeniusModelSet instance.

A PolyGeniusModelSet.

Integer length.

Character vector of model names.

A PolyGeniusModel.

A PolyGeniusModelSet.

Grammar

  • filter_variants(expr)

  • select_variants(cols)

  • filter_models(expr)

  • mutate_variants(…)

  • mutate_models(…)

  • fetch(…)

  • modelsOverview(…)

  • split_models(expr)

Operators and subsetting

  • c() combines models/sets into a new set.

  • length(), names(), ⁠names<-()⁠ manage model collections.

  • [[ extracts a single model.

  • [ subsets models or filters variants across models.

Verbs and utilities

  • filter_variants(), select_variants(), mutate_variants() for model variants.

  • filter_models(), mutate_models() for model metadata.

  • fetch(), modelsOverview(), split_models() for summaries and grouping.

Public fields

models

List of PolyGeniusModel objects.

name

Optional name for this set.

Methods

Public methods


Method new()

Initialize a new PolyGeniusModelSet

Usage
PolyGeniusModelSet.class$new(..., name = NULL)
Arguments

Unnamed: PolyGeniusModel or PolyGeniusModelSet (or lists of these). Named arguments become metadata fields on the set object.

name

Optional set name.


Method print()

Print summary and overview

Usage
PolyGeniusModelSet.class$print(...)
Arguments

Unquoted expressions passed to self$modelsOverview().


Method modelsOverview()

Data-frame overview per model.

Usage
PolyGeniusModelSet.class$modelsOverview(...)
Arguments

Unquoted expressions passed to self$fetch().

Returns

A tibble with one row per model and columns such as name, build, nvars, plus any custom expressions.


Method fetch()

Fetch arbitrary fields or computed values from each model.

Supply any number of unquoted expressions (optionally named). Each expression is evaluated per model in a data mask that exposes all public fields and variants (e.g. name, build, nrow(variants), variants$chr, algorithm$name).

Named arguments become column names; unnamed use their expression text. Scalar results simplify to vectors; others become list-columns. Columns with any errors carry an “errors” attribute listing unique messages. The tibble itself carries an “errors” list attribute (column -> messages).

Usage
PolyGeniusModelSet.class$fetch(...)
Arguments

Unquoted expressions, optionally named.

Returns

A vector/list (if one expression) or a tibble (if multiple) with class “PolyGeniusModelSetFetchTbl”.


Method filter.variants()

Filter variant rows across all models.

Usage
PolyGeniusModelSet.class$filter.variants(expr)
Arguments
expr

Variant-level expression (unquoted).

Returns

A new PolyGeniusModelSet with filtered variants.


Method select.variants()

Select variant columns across all models.

Usage
PolyGeniusModelSet.class$select.variants(cols)
Arguments
cols

Character vector or unquoted expression yielding names.

Returns

A new PolyGeniusModelSet with selected columns in variants.


Method filter.models()

Filter models by a model-level logical condition.

Usage
PolyGeniusModelSet.class$filter.models(expr)
Arguments
expr

Unquoted model-level logical expression (e.g. nrow(variants) > 1000).

Returns

A new PolyGeniusModelSet containing only models where expr is TRUE.


Method mutate.variants()

Mutate variant-level columns across all models.

Usage
PolyGeniusModelSet.class$mutate.variants(...)
Arguments

Mutate expressions (unquoted).

Returns

A new PolyGeniusModelSet with mutated variants.


Method mutate.models()

Mutate model-level fields across all models.

Usage
PolyGeniusModelSet.class$mutate.models(...)
Arguments

Named mutate expressions evaluated in the model’s field list.

Returns

A new PolyGeniusModelSet.


Method split.models()

Split models by a model-level expression.

Usage
PolyGeniusModelSet.class$split.models(expr)
Arguments
expr

Unquoted expression evaluated per model; coerced to character key.

Returns

A named list of PolyGeniusModelSet objects, one per key.


Method length()

Number of models stored.

Usage
PolyGeniusModelSet.class$length()
Returns

Integer count.


Method remove.models()

Remove models by indices.

Usage
PolyGeniusModelSet.class$remove.models(...)
Arguments

Indices of models to remove (numeric/logical; vectors ok).

Returns

self (invisibly).


Method clone()

The objects of this class are cloneable with this method.

Usage
PolyGeniusModelSet.class$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Examples

## Not run: 
# Suppose m1, m2 are PolyGeniusModel objects
s <- PolyGeniusModelSet(m1, m2, name = "my models")
s
s2 <- s$filter_variants(beta > 0)
s3 <- s$filter_models(nrow(variants) > 1000)
ov <- s$modelsOverview()
print(ov)  # nicely formatted, including any fetch errors

## End(Not run)