compute\(embedding\)obs

Compute Low-Dimensional Embeddings for Observations

Description

Computes dimensionality reduction embeddings (PCA, MDS, UMAP, t-SNE, PHATE) for observations in a PolyGeniusData object. Embeddings can be computed from any layer in obs/obsp, or from a pre-computed similarity matrix.

Computes dimensionality reduction embeddings for PRS models in a PolyGeniusData object. Embeddings can be computed from variant lists, score vectors, or pre-computed similarity matrices.

Usage

`compute$embedding$obs`(data, layer, method = "pca", similarity = NULL, n.components = 2, obs = NULL, ...)

`compute$embedding$mod`(data, layer, method = "pca", similarity = NULL, n.components = 2, models = NULL, ...)

Arguments

data

A PolyGeniusData object.

layer

Unquoted expression specifying the layer to use. Can reference scores (for score-based embedding), mod (for variant-based embedding), or modp (for pre-computed similarity).

method

Character string specifying the embedding method. One of: “pca”, “mds”, “umap”, “tsne”, “phate”.

similarity

Optional pre-computed similarity matrix (from compute.similarity.mod()). If provided, layer is ignored.

n.components

Integer, number of embedding dimensions to compute.

obs

Character vector, integer vector, or unquoted expression to subset observations. Behaves like subsetting a PolyGeniusData object. The returned matrix will be full-sized with NA for excluded observations.

Additional method-specific parameters (see compute.embedding.obs()).

models

Character vector or unquoted expression to subset models. The returned matrix will be full-sized with NA for excluded models.

Value

A numeric matrix with dimensions ⁠n_obs x n.components⁠ containing the embedding coordinates. Rows correspond to observations, columns to embedding dimensions. The matrix carries a log attribute accessible via slotLog().

A numeric matrix with dimensions ⁠n_models x n.components⁠. See compute.embedding.obs() for details on the return value structure.

See Also

compute.embedding.mod(), compute.similarity.obs()

compute.embedding.obs(), compute.similarity.mod()

Examples

## Not run: 
# PCA on PRS scores
pca.emb <- compute.embedding.obs(data, scores, method = "pca", n.components = 5)

# UMAP on PRS scores
umap.emb <- compute.embedding.obs(data, scores, method = "umap", n.components = 2)

# t-SNE with custom perplexity
tsne.emb <- compute.embedding.obs(data, scores,
    method = "tsne",
    n.components = 2, perplexity = 50
)

# MDS from pre-computed similarity
sim.mat <- compute.similarity.obs(data, scores, method = "correlation")
mds.emb <- compute.embedding.obs(data, similarity = sim.mat, method = "mds")

# Subset specific observations
pca.subset <- compute.embedding.obs(data, scores,
    method = "pca",
    obs = c("sample1", "sample2")
)

## End(Not run)

## Not run: 
# PCA on model scores (transpose of score matrix)
pca.models <- compute.embedding.mod(data, scores, method = "pca")

# MDS from model similarity
mod.sim <- compute.similarity.mod(data, mod, method = "snp.jaccard")
mds.models <- compute.embedding.mod(data, similarity = mod.sim, method = "mds")

# UMAP on subset of models
umap.subset <- compute.embedding.mod(data, scores,
    method = "umap",
    models = c("model1", "model2")
)

## End(Not run)