View source: R/visualization.R
plot_cluster_mapping | R Documentation |
Antigenic Mapping and Antigenic Velocity Function. Creates a visualization of points colored by cluster assignment using dimension reduction, with optional antigenic velocity arrows. Points are colored by cluster with different shapes for antigens and antisera.
plot_cluster_mapping(
df_coords,
ndim,
dim_config = new_dim_reduction_config(),
aesthetic_config = new_aesthetic_config(),
layout_config = new_layout_config(),
annotation_config = new_annotation_config(),
output_dir,
show_shape_legend = TRUE,
cluster_legend_title = "Cluster",
draw_arrows = FALSE,
annotate_arrows = TRUE,
phylo_tree = NULL,
sigma_t = NULL,
sigma_x = NULL,
clade_node_depth = NULL,
show_one_arrow_per_cluster = FALSE,
cluster_legend_order = NULL
)
df_coords |
Data frame containing: - V1, V2, ... Vn: Coordinate columns - antigen: Binary indicator for antigen points - antiserum: Binary indicator for antiserum points - cluster: Factor or integer cluster assignments |
ndim |
Number of dimensions in input coordinates |
dim_config |
Dimension reduction configuration object specifying method and parameters |
aesthetic_config |
Aesthetic configuration object controlling plot appearance |
layout_config |
Layout configuration object controlling plot dimensions and style. Use x_limits and y_limits in layout_config to set axis limits. |
annotation_config |
Annotation configuration object for labeling notable points |
output_dir |
Character. Directory for output files. Required if |
show_shape_legend |
Logical. Whether to show the shape legend (default: TRUE) |
cluster_legend_title |
Character. Custom title for the cluster legend (default: "Cluster") |
draw_arrows |
logical; if TRUE, compute and draw antigenic drift vectors |
annotate_arrows |
logical; if TRUE, show names of the points having arrows |
phylo_tree |
Optional; phylo object in Newick format. Does not need to be rooted. If provided, used to compute antigenic velocity arrows. |
sigma_t |
Optional; numeric; bandwidth for the Gaussian kernel discounting on time in years or the time unit of the data. If NULL, uses Silverman's rule of thumb. |
sigma_x |
Optional; numeric; bandwidth for the Gaussian kernel discounting on antigenic distance in antigenic units. If NULL, uses Silverman's rule of thumb. |
clade_node_depth |
Optional; integer; number of levels of parent nodes to define clades. Antigens from different clades will be excluded from the calculation antigenic velocity arrows. (Default: Automatically calculated mode of leaf-to-backbone distance of the tree) |
show_one_arrow_per_cluster |
Shows only the largest antigenic velocity arrow in each cluster |
cluster_legend_order |
in case you prefer a certain order for clusters in the legend, provide a list with that order here; e.g., c("cluster 2", "cluster 1") |
The function performs these steps:
Validates input data structure and types
Applies dimension reduction if ndim > 2
Creates visualization with cluster-based coloring
Applies specified aesthetic and layout configurations
Applies custom axis limits if specified in layout_config
Different shapes distinguish between antigens and antisera points, while color represents cluster assignment. The color palette can be customized through the aesthetic_config.
A ggplot
object containing the cluster mapping visualization.
plot_temporal_mapping
for temporal visualization
plot_3d_mapping
for 3D visualization
new_dim_reduction_config
for dimension reduction options
new_aesthetic_config
for aesthetic options
new_layout_config
for layout options
new_annotation_config
for annotation options
# Basic usage with default configurations
data <- data.frame(
V1 = rnorm(100), V2 = rnorm(100), V3 = rnorm(100), name = 1:100,
antigen = rep(c(0,1), 50), antiserum = rep(c(1,0), 50),
cluster = rep(1:5, each=20)
)
p1 <- plot_cluster_mapping(data, ndim=3)
# Save plot to a temporary directory
temp_dir <- tempdir()
# Custom configurations with specific color palette and axis limits
aesthetic_config <- new_aesthetic_config(
point_size = 4,
point_alpha = 0.7,
color_palette = c("red", "blue", "green", "purple", "orange"),
show_labels = TRUE,
label_size = 3
)
layout_config_save <- new_layout_config(save_plot = TRUE,
width = 10,
height = 8,
coord_type = "fixed",
show_grid = TRUE,
grid_type = "major",
x_limits = c(-10, 10),
y_limits = c(-8, 8)
)
p_saved <- plot_cluster_mapping(data, ndim=3,
layout_config = layout_config_save,
aesthetic_config = aesthetic_config,
output_dir = temp_dir
)
list.files(temp_dir)
unlink(temp_dir, recursive = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.