Generic scatter plot for kernel PCA, UMAP, or any 2D embedding of TCR repertoire data. Supports continuous (viridis) and categorical (tab10/tab20) coloring with optional centroid labels, faceting, and clone highlighting.
Usage
plot_tcr_scatter(
coords,
color_by = NULL,
title = NULL,
point_size = 1,
alpha = 1,
axis_label_prefix = "KPCA",
legend_title = NULL,
palette = NULL,
show_labels = FALSE,
label_size = 3,
na_color = "#DDDDDD",
metadata = NULL,
facet_by = NULL,
highlight = NULL,
highlight_color = "#E41A1C",
background_alpha = 0.15
)Arguments
- coords
Numeric matrix with 2 columns (embedding coordinates).
- color_by
Optional vector of length
nrow(coords). Numeric for continuous coloring (viridis), factor/character for categorical coloring (tab10/tab20).NULLplots all points in gray. Whenmetadatais provided, can be a column name string.- title
Optional plot title.
- point_size
Numeric. Point size. Default
1.- alpha
Numeric. Point opacity. Default
1.- axis_label_prefix
Character string. Prefix for axis labels. Default
"KPCA".- legend_title
Optional legend title.
- palette
Character vector of colors to override default palette.
- show_labels
Logical. If
TRUEandcolor_byis categorical, add centroid labels. DefaultFALSE.- label_size
Numeric. Label text size. Default
3.- na_color
Character. Color for NA values. Default
"#DDDDDD".- metadata
Optional data.frame with
nrow(coords)rows. When provided,color_byandfacet_bycan be column name strings, andhighlightcan be a named list of filter conditions applied to these columns.- facet_by
Optional faceting variable(s). Either a character/factor vector for single-variable faceting (
facet_wrap), or a data.frame with 1–2 columns for grid faceting (facet_grid). Whenmetadatais provided, can be a character vector of 1–2 column names.- highlight
Optional. Which points to highlight, with non-highlighted points faded to a gray background. Accepts a logical vector, integer indices, or a named list for multi-column filtering (requires
metadata; e.g.,list(epitope = "PA", subject = c("S1", "S2"))).- highlight_color
Character. Color for highlighted points when
color_byisNULL. Default"#E41A1C".- background_alpha
Numeric. Alpha for non-highlighted points. Default
0.15.
Examples
if (FALSE) { # \dontrun{
kpca <- compute_tcrdist_kernel_pca(tcr_df, "human")
plot_tcr_scatter(kpca$embeddings[, 1:2], color_by = tcr_df$epitope)
# Faceting by epitope
plot_tcr_scatter(kpca$embeddings[, 1:2], color_by = tcr_df$epitope,
facet_by = tcr_df$epitope)
# Highlight specific clones
plot_tcr_scatter(kpca$embeddings[, 1:2],
highlight = tcr_df$epitope == "PA")
# Using metadata for column-name lookups
plot_tcr_scatter(kpca$embeddings[, 1:2],
metadata = tcr_df,
color_by = "epitope",
facet_by = c("epitope", "subject"),
highlight = list(epitope = "PA"))
} # }