Type: Package
Title: Visualising How Nonlinear Dimension Reduction Warps Your Data
Version: 0.3.7
Description: To construct a model in 2-D space from 2-D nonlinear dimension reduction data and then lift it to the high-dimensional space. Additionally, provides tools to visualise the model overlay the data in 2-D and high-dimensional space. Furthermore, provides summaries and diagnostics to evaluate the nonlinear dimension reduction layout.
License: MIT + file LICENSE
URL: https://jayanilakshika.github.io/quollr/
BugReports: https://github.com/jayanilakshika/quollr/issues
Depends: R (≥ 4.1.0)
Imports: cli, crosstalk, dplyr, ggplot2, grid, htmltools, interp (≥ 1.1-6), langevitour, patchwork, plotly, proxy, purrr, Rcpp, rsample, stats, tibble, tidyr, tidyselect
Suggests: knitr, rmarkdown, testthat (≥ 3.0.0), vdiffr
LinkingTo: Rcpp, RcppArmadillo
VignetteBuilder: knitr
Config/testthat/edition: 3
Encoding: UTF-8
Language: en-GB
LazyData: true
RoxygenNote: 7.3.2
NeedsCompilation: yes
Packaged: 2025-07-22 12:21:41 UTC; jpiy0001
Author: Jayani P. Gamage ORCID iD [aut, cre], Dianne Cook ORCID iD [aut], Paul Harrison ORCID iD [aut], Michael Lydeamore ORCID iD [aut], Thiyanga S. Talagala ORCID iD [aut]
Maintainer: Jayani P. Gamage <jayanilakshika76@gmail.com>
Repository: CRAN
Date/Publication: 2025-07-22 13:00:44 UTC

GeomHexgrid: A Custom ggplot2 Geom for Hexagonal Grid

Description

This function defines a custom ggplot2 Geom, GeomHexgrid, for rendering hexagonal grid.

Usage

GeomHexgrid

Format

A ggproto object


GeomTrimesh: A Custom ggplot2 Geom for Triangular Meshes

Description

This function defines a custom ggplot2 Geom, GeomTrimesh, for rendering triangular meshes.

Usage

GeomTrimesh

Format

A ggproto object

Details

- required_aes: The required aesthetics for this geometry are "x", "y", "xend", and "yend". - default_aes: The default aesthetics for this geometry include shape = 19, linetype = 1, linewidth = 0.5, size = 0.5, alpha = NA, and colour = "black". - draw_key: The function describing how to draw the key glyph is ggplot2::draw_key_point. - draw_panel: The function describing how to draw the panel takes data, panel_scales, and coord. It creates a tibble of vertices and a tibble of trimesh. The final plot is constructed using ggplot2::GeomPoint$draw_panel for vertices and ggplot2::GeomSegment$draw_panel for trimesh.


Assign data to hexagons

Description

This function assigns the data to hexagons.

Usage

assign_data(nldr_obj, centroids_data)

Arguments

nldr_obj

A list of a tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data.

centroids_data

The dataset with centroid coordinates.

Value

A tibble contains embedding components (emb1, emb2) and corresponding hexagon ID (h).

Examples

all_centroids_df <- scurve_model_obj$hb_obj$centroids
assign_data(nldr_obj = scurve_model_obj$nldr_obj,
centroids_data = all_centroids_df)


Augment Data with Predictions and Error Metrics

Description

This function augments a dataset with predictions and error metrics obtained from a nonlinear dimension reduction (NLDR) model.

Usage

augment(highd_data, model_2d, model_highd)

Arguments

highd_data

The dataset containing high-dimensional coordinates and an unique identifier.

model_2d

Centroid coordinates of hexagonal bins in 2-D space.

model_highd

Centroid coordinates of hexagonal bins in high dimensions.

Value

A tibble containing the augmented data with predictions, error metrics, and absolute error metrics.

Examples

augment(highd_data = scurve, model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)


Create a tibble with averaged high-dimensional data

Description

This function calculates the average values of high-dimensional data within each hexagonal bin.

Usage

avg_highd_data(highd_data, scaled_nldr_hexid)

Arguments

highd_data

A tibble that contains the high-dimensional data.

scaled_nldr_hexid

A tibble that contains the scaled embedding with hexagonal bin IDs.

Value

A tibble with the average values of the high-dimensional data within each hexagonal bin.

Examples

umap_with_hb_id <- scurve_model_obj$hb_obj$data_hb_id
avg_highd_data(highd_data = scurve, scaled_nldr_hexid = umap_with_hb_id)


Calculate 2-D Euclidean distances between vertices

Description

This function calculates the 2-D distances between pairs of points in a data frame.

Usage

calc_2d_dist(
  trimesh_data,
  select_vars = c("from", "to", "x_from", "y_from", "x_to", "y_to", "from_count",
    "to_count", "distance")
)

Arguments

trimesh_data

A tibble that contains the x and y coordinates of start and end points.

select_vars

selected columns in the resulting data frame.

Value

A tibble with columns for the starting point, ending point, and calculated distances.

Examples

tr_from_to_df <- scurve_model_obj$trimesh_data
calc_2d_dist(trimesh_data = tr_from_to_df)


Calculate the effective number of bins along x-axis and y-axis

Description

This function calculates the effective number of bins along the x and y axes of a hexagonal grid.

Usage

calc_bins_y(nldr_obj, b1 = 4, q = 0.1)

Arguments

nldr_obj

A list of a tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data.

b1

Number of bins along the x axis.

q

The buffer amount as proportion of data range.

Value

A list of numeric values that represents the effective number of bins along the y axis, height and, width of the hexagon.

Examples

calc_bins_y(nldr_obj = scurve_model_obj$nldr_obj, b1 = 4, q = 0.1)


Create a tibble with averaged high-dimensional data and high-dimensional data, non-linear dimension reduction data

Description

This function combine the average values of high-dimensional data within each hexagonal bin and high-dimensional data, non-linear dimension reduction data.

Usage

comb_all_data_model(highd_data, nldr_data, model_highd, model_2d)

Arguments

highd_data

A tibble that contains the high-dimensional data.

nldr_data

A tibble that contains the non-linear dimension reduction data.

model_highd

A tibble that contains the high-dimensional coordinates of bin centroids.

model_2d

A tibble that contains hexagonal bin centroids in 2-D.

Value

A tibble with the average values of the high-dimensional data within each hexagonal bin and high-dimensional data, non-linear dimension reduction data.

Examples

comb_all_data_model(highd_data = scurve, nldr_data = scurve_umap,
model_highd = scurve_model_obj$model_highd, model_2d = scurve_model_obj$model_2d)


Create a tibble with averaged high-dimensional data and high-dimensional data, non-linear dimension reduction data, model error data

Description

This function combine the average values of high-dimensional data within each hexagonal bin and high-dimensional data, non-linear dimension reduction data, model error data.

Usage

comb_all_data_model_error(
  highd_data,
  nldr_data,
  model_highd,
  model_2d,
  error_data
)

Arguments

highd_data

A tibble that contains the high-dimensional data.

nldr_data

A tibble that contains the non-linear dimension reduction data.

model_highd

A tibble that contains the high-dimensional coordinates of bin centroids.

model_2d

A tibble that contains hexagonal bin centroids in 2-D.

error_data

A tibble that contains high-dimensional model error.

Value

A tibble with the average values of the high-dimensional data within each hexagonal bin and high-dimensional data, non-linear dimension reduction data, model error.

Examples

model_error <- augment(highd_data = scurve, model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)
comb_all_data_model_error(highd_data = scurve, nldr_data = scurve_umap,
model_highd = scurve_model_obj$model_highd, model_2d = scurve_model_obj$model_2d,
error_data = model_error)


Create a tibble with averaged high-dimensional data and high-dimensional data

Description

This function combine the average values of high-dimensional data within each hexagonal bin and high-dimensional data.

Usage

comb_data_model(highd_data, model_highd, model_2d)

Arguments

highd_data

A tibble that contains the high-dimensional data.

model_highd

A tibble that contains the high-dimensional coordinates of bin centroids.

model_2d

A tibble that contains hexagonal bin centroids in 2-D.

Value

A tibble with the average values of the high-dimensional data within each hexagonal bin and high-dimensional data.

Examples

comb_data_model(highd_data = scurve,
model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)


Compute mean density of hexagonal bins

Description

This function calculates the mean density of hexagonal bins based on their neighboring bins.

Usage

compute_mean_density_hex(model_2d, b1 = 5)

Arguments

model_2d

A tibble that contains information about hexagonal bin centroids, including the hexagon ID and the standardised counts (w_h).

b1

The number of bins along the x-axis for the hexagonal grid.

Value

A tibble contains hexagonal IDs and the mean density of each hexagonal bin based on its neighboring bins.

Examples

compute_mean_density_hex(model_2d = scurve_model_obj$model_2d, b1 = 5)


Compute standardise counts in hexagons

Description

This function computes the standardize number of points within each hexagon.

Usage

compute_std_counts(scaled_nldr_hexid)

Arguments

scaled_nldr_hexid

A tibble that contains the scaled embedding with hexagonal bin IDs.

Value

A tibble that contains hexagon IDs (h), bin counts (n_h), and standardize counts (w_h).

Examples

umap_with_hb_id <- scurve_model_obj$hb_obj$data_hb_id
compute_std_counts(scaled_nldr_hexid = umap_with_hb_id)


Extract hexagonal bin centroids coordinates and the corresponding standardise counts.

Description

Extract hexagonal bin centroids coordinates and the corresponding standardise counts.

Usage

extract_hexbin_centroids(centroids_data, counts_data)

Arguments

centroids_data

A tibble that contains all hexagonal bin centroid coordinates with hexagon IDs.

counts_data

A tibble that contains hexagon IDs with the standardise number of points within each hexagon.

Value

A tibble contains hexagon ID (h), centroid coordinates (c_x, c_y), bin counts (n_h), and standardise counts (w_h).

Examples

all_centroids_df <- scurve_model_obj$hb_obj$centroids
counts_data <- scurve_model_obj$hb_obj$std_cts
extract_hexbin_centroids(centroids_data = all_centroids_df,
counts_data = counts_data)


Extract hexagonal bin mean coordinates and the corresponding standardize counts.

Description

Extract hexagonal bin mean coordinates and the corresponding standardize counts.

Usage

extract_hexbin_mean(data_hb, counts_data, centroids_data)

Arguments

data_hb

A tibble with embedding components and hexagonal bin IDs.

counts_data

A tibble that contains hexagon IDs with the standardise number of points within each hexagon.

centroids_data

A tibble that contains all hexagonal bin centroid coordinates with hexagon IDs.

Value

A tibble contains hexagon ID (h), bin means (c_x, c_y), bin counts (n_h), and standardise counts (w_h).

Examples

all_centroids_df <- scurve_model_obj$hb_obj$centroids
counts_data <- scurve_model_obj$hb_obj$std_cts
umap_with_hb_id <- scurve_model_obj$hb_obj$data_hb_id
extract_hexbin_mean(data_hb = umap_with_hb_id, counts_data = counts_data,
centroids_data = all_centroids_df)


Find low-density Hexagons

Description

This function identifies hexagons with low density based on the mean density of their neighboring hexagons.

Usage

find_low_dens_hex(model_2d, b1 = 5, benchmark_mean_dens = 0.05)

Arguments

model_2d

The tibble that contains all hexagonal bin centroids.

b1

Number of bins along the x-axis for hexagon binning.

benchmark_mean_dens

A numeric value that contains

Value

A vector containing the IDs of hexagons to be removed after investigating their neighboring bins.

Examples

find_low_dens_hex(model_2d = scurve_model_obj$model_2d, b1 = 5,
benchmark_mean_dens = 0.05)


Find the number of bins required to achieve required number of non-empty bins.

Description

This function determines the number of bins along the x and y axes to obtain a specific number of non-empty bins.

Usage

find_non_empty_bins(nldr_obj, m = 2, q = 0.1)

Arguments

nldr_obj

A list of a tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data.

m

The desired number of non-empty bins.

q

The buffer amount as proportion of data range.

Value

The number of bins along the x and y axes needed to achieve a specific number of non-empty bins.

Examples

find_non_empty_bins(nldr_obj = scurve_model_obj$nldr_obj, m = 5)


Find points in hexagonal bins

Description

This function maps points to their corresponding hexagonal bins.

Usage

find_pts(scaled_nldr_hexid)

Arguments

scaled_nldr_hexid

A tibble that contains the scaled embedding with hexagonal bin IDs.

Value

A tibble with hexagonal bin IDs (h) and the corresponding points.

Examples

umap_with_hb_id <- scurve_model_obj$hb_obj$data_hb_id
find_pts(scaled_nldr_hexid = umap_with_hb_id)


Construct the 2-D model and lift into high-dimensions

Description

This function fits a high-dimensional model using hexagonal bins and provides options to customize the modeling process, including the choice of bin centroids or bin means, removal of low-density hexagons, and averaging of high-dimensional data.

Usage

fit_highd_model(highd_data, nldr_data, b1 = 4, q = 0.1, benchmark_highdens = 5)

Arguments

highd_data

A tibble that contains the high-dimensional data with a unique identifier.

nldr_data

A tibble that contains the embedding with a unique identifier.

b1

(default: 4) A numeric value representing the number of bins along the x axis.

q

(default: 0.1) A numeric value representing the buffer amount as proportion of data range.

benchmark_highdens

(default: 5) A numeric value using to filter high-density hexagons.

Value

A list containing a list of a tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data (nldr_obj), a object that contains hexagonal binning information (hb_obj), a tibble with high-dimensional model (model_highd) and a tibble containing hexagonal bin centroids in 2-D (model_2d), and a tibble that contains the edge information (trimesh_data).

Examples

fit_highd_model(highd_data = scurve, nldr_data = scurve_umap, b1 = 4,
q = 0.1, benchmark_highdens = 5)


Generate Axes for Projection

Description

Generate Axes for Projection

Usage

gen_axes(
  proj,
  limits = 1,
  axis_pos_x = NULL,
  axis_pos_y = NULL,
  axis_labels,
  threshold = 0
)

Arguments

proj

A projection matrix or data frame.

limits

Numeric value specifying axis limits (default: 1).

axis_pos_x

Optional numeric value for x-axis position.

axis_pos_y

Optional numeric value for y-axis position.

axis_labels

A vector of axis labels.

threshold

A numeric threshold value (default: 0).

Value

A modified projection with added axis elements.

Examples

projection_df <- cbind(
c(-0.17353,-0.02906,0.19857,0.00037,0.00131,-0.05019,0.03371),
c(-0.10551,0.14829,-0.02063,0.02658,-0.03150,0.19698,0.00044))

gen_axes(proj = projection_df, axis_labels = paste0("x", 1:7))

Generate centroid coordinate

Description

This function generates all possible centroids in the hexagonal grid.

Usage

gen_centroids(nldr_obj, b1 = 5, q = 0.1)

Arguments

nldr_obj

A list of a tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data.

b1

Number of bins along the x axis.

q

The buffer amount as proportion of data range.

Value

A tibble contains hexIDs (h), x and y coordinates (c_x, c_y respectively) of all hexagon bin centroids.

Examples

gen_centroids(nldr_obj = scurve_model_obj$nldr_obj, b1 = 5, q = 0.1)


Generate a design to layout 2-D representations

Description

This function generates a design which can be passed to 'plot_layout()' to arrange 2-D layouts.

Usage

gen_design(n_right, ncol_right = 2)

Arguments

n_right

The number of plots in right side.

ncol_right

The number of columns in right side.

Value

A patchwork area object.

Examples

gen_design(n_right = 8, ncol_right = 2)


Generate erros and MSE for different bin widths

Description

This function augments a dataset with predictions and error metrics obtained from a nonlinear dimension reduction (NLDR) model.

Usage

gen_diffbin1_errors(highd_data, nldr_data, benchmark_highdens = 1)

Arguments

highd_data

A tibble that contains the high-dimensional data with a unique identifier.

nldr_data

A tibble that contains the embedding with a unique identifier.

benchmark_highdens

(default: 1) A numeric value using to filter high-density hexagons.

Value

A tibble containing the augmented data with predictions, error metrics, and absolute error metrics.

Examples

scurve_sample <- scurve |> head(100)
scurve_umap_sample <- scurve_umap |> head(100)
gen_diffbin1_errors(highd_data = scurve_sample, nldr_data = scurve_umap_sample)


Generate edge information

Description

This function generates edge information from a given triangular object, including the coordinates of the vertices and the from-to relationships between the vertices.

Usage

gen_edges(tri_object, a1)

Arguments

tri_object

The triangular object from which to generate edge information.

a1

A numeric value for bin width.

Value

A tibble that contains the edge information, including the from-to relationships and the corresponding x and y coordinates.

Examples

all_centroids_df <- scurve_model_obj$hb_obj$centroids
counts_data <- scurve_model_obj$hb_obj$std_cts
umap_with_hb_id <- scurve_model_obj$hb_obj$data_hb_id
df_bin_centroids <- extract_hexbin_centroids(counts_data = counts_data,
centroids_data = all_centroids_df)
tr1_object <- tri_bin_centroids(centroids_data = df_bin_centroids)
gen_edges(tri_object = tr1_object, a1 = scurve_model_obj$hb_obj$a1)


Generate hexagonal polygon coordinates

Description

This function generates the coordinates of hexagons after passing hexagonal centroids.

Usage

gen_hex_coord(centroids_data, a1)

Arguments

centroids_data

The dataset with all hexagonal bin IDs and centroid coordinates.

a1

The width of the hexagon.

Value

A tibble contains hexagon id (h), x and y coordinates (x, y) of hexagons.

Examples

width <- scurve_model_obj$hb_obj$a1
all_centroids_df <- scurve_model_obj$hb_obj$centroids
gen_hex_coord(centroids_data = all_centroids_df, a1 = width)


Scaling the NLDR data

Description

This function scales first and second columns.

Usage

gen_scaled_data(nldr_data)

Arguments

nldr_data

A tibble that contains embedding components in the first and second columns.

Value

A list of a tibble contains scaled first and second columns NLDR data, and numeric vectors representing the limits of the original NLDR data.

Examples

gen_scaled_data(nldr_data = scurve_umap)


Create a hexgrid plot

Description

Create a hexgrid plot

Usage

geom_hexgrid(
  mapping = NULL,
  data = NULL,
  stat = "hexgrid",
  position = "identity",
  show.legend = NA,
  na.rm = FALSE,
  inherit.aes = TRUE,
  ...
)

Arguments

mapping

Aesthetic mappings for the plot.

data

The data to be plotted.

stat

The statistical transformation to be applied.

position

The position adjustment to be applied.

show.legend

Whether to show the legend for this layer.

na.rm

Whether to remove missing values.

inherit.aes

Whether to inherit aesthetics from the plot or the layer.

...

Additional arguments to be passed to the 'layer' function.

Value

A 'ggplot2' layer object.

Examples

df_bin_centroids <- scurve_model_obj$model_2d |> dplyr::filter(n_h > 10)
ggplot2::ggplot() +
geom_hexgrid(data = df_bin_centroids, mapping = ggplot2::aes(x = c_x, y = c_y))


Create a trimesh plot

Description

Create a trimesh plot

Usage

geom_trimesh(
  mapping = NULL,
  data = NULL,
  stat = "trimesh",
  position = "identity",
  show.legend = NA,
  na.rm = FALSE,
  inherit.aes = TRUE,
  ...
)

Arguments

mapping

Aesthetic mappings for the plot.

data

The data to be plotted.

stat

The statistical transformation to be applied.

position

The position adjustment to be applied.

show.legend

Whether to show the legend for this layer.

na.rm

Whether to remove missing values.

inherit.aes

Whether to inherit aesthetics from the plot or the layer.

...

Additional arguments to be passed to the 'layer' function.

Value

A 'ggplot2' layer object.

Examples

df_bin_centroids <- scurve_model_obj$model_2d |> dplyr::filter(n_h > 10)
ggplot2::ggplot() +
geom_trimesh(data = df_bin_centroids, mapping = ggplot2::aes(x = c_x, y = c_y))


Compute Projection for High-Dimensional Data

Description

Compute Projection for High-Dimensional Data

Usage

get_projection(
  projection,
  proj_scale,
  highd_data,
  model_highd,
  trimesh_data,
  axis_param
)

Arguments

projection

A matrix or data frame representing the projection.

proj_scale

Scaling factor for the projection.

highd_data

A data frame or matrix of high-dimensional data.

model_highd

A model object or function used for high-dimensional transformation.

trimesh_data

A data frame defining transformation from one space to another.

axis_param

A list of parameters for axis configuration.

Value

A data frame or matrix with the transformed projection.

Examples

projection_df <- cbind(
c(-0.17353,-0.02906,0.19857,0.00037,0.00131,-0.05019,0.03371),
c(-0.10551,0.14829,-0.02063,0.02658,-0.03150,0.19698,0.00044))

df_bin <- scurve_model_obj$model_highd
edge_data <- scurve_model_obj$trimesh_data

get_projection(projection = projection_df, proj_scale = 1,
highd_data = scurve, model_highd = df_bin,
trimesh_data = edge_data,
axis_param = list(limits = 1, axis_scaled = 3, axis_pos_x = -0.72,
axis_pos_y = -0.72,threshold = 0.09))


Generate evaluation metrics

Description

This function generates an evaluation data frame based on the provided data and predictions.

Usage

glance(highd_data, model_2d, model_highd)

Arguments

highd_data

The dataset containing high-dimensional coordinates and an unique identifier.

model_2d

Centroid coordinates of hexagonal bins in 2-D space.

model_highd

Centroid coordinates of hexagonal bins in high dimensions.

Value

A tibble contains Error, and MSE values.

Examples

glance(highd_data = scurve, model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)


Hexagonal binning

Description

This function generates the hexagonal object.

Usage

hex_binning(nldr_obj, b1 = 5, q = 0.1)

Arguments

nldr_obj

A list of a tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data.

b1

Number of bins along the x axis.

q

The buffer amount as proportion of data range.

Value

A object that contains numeric vector that contains binwidths (a1), vertical distance (a2), bins along the x and y axes respectively (bins), numeric vector that contains hexagonal starting point coordinates all hexagonal bin centroids (centroids), hexagonal coordinates of the full grid (hex_poly), embedding components with their corresponding hexagon IDs (data_hb_id), hex bins with their corresponding standardise counts (std_cts), total number of hex bins (b), number of non-empty hex bins (m) and points within each hexagon (pts_bins).

Examples

hex_binning(nldr_obj = scurve_model_obj$nldr_obj, b1 = 5, q = 0.1)


Plot Projected Data with Axes and Circles

Description

Plot Projected Data with Axes and Circles

Usage

plot_proj(
  proj_obj,
  point_param = c(1, 0.3, "#66B2CC"),
  line_param = c(0.5, 0.5, "#000000"),
  plot_limits,
  axis_text_size = 3,
  is_category = FALSE
)

Arguments

proj_obj

An object contains a tibble containing the projected data, a tibble containing the model reference data, a list specifying the axes details, and a list defining circle parameters.

point_param

A vector specifying point size, alpha, and color (default: c(1, 0.3, "#66B2CC")).

line_param

A vector specifying line width, alpha, and color (default: c(0.5, 0.5, "#000000")).

plot_limits

Limits for the plot axes.

axis_text_size

Size of axis text (default: 3).

is_category

Logical indicating if the data is categorical (default: FALSE).

Value

A ggplot object.

Examples

projection_df <- cbind(
c(-0.17353,-0.02906,0.19857,0.00037,0.00131,-0.05019,0.03371),
c(-0.10551,0.14829,-0.02063,0.02658,-0.03150,0.19698,0.00044))

df_bin <- scurve_model_obj$model_highd
edge_data <- scurve_model_obj$trimesh_data

proj_obj1 <- get_projection(projection = projection_df, proj_scale = 1,
highd_data = scurve, model_highd = df_bin,
trimesh_data = edge_data,
axis_param = list(limits = 1, axis_scaled = 3, axis_pos_x = -0.72,
axis_pos_y = -0.72, threshold = 0.09))

plot_proj(proj_obj = proj_obj1, plot_limits = c(-1, 1))

Arrange RMSE plot and 2-D layouts

Description

This function arranges RMSE plot in left and 2-D layouts in right.

Usage

plot_rmse_layouts(plots, design)

Arguments

plots

A list of plots which include RMSE plot and 2-D layouts.

design

The design of plots need to be arranged.

Value

A patchwork object.

Examples

design <- gen_design(n_right = 4, ncol_right = 2)
plot_rmse_layouts(plots = scurve_plts, design = design)


Predict 2-D embeddings

Description

Given a test dataset, the centroid coordinates of hexagonal bins in 2-D and high-dimensional space, predict the 2-D embeddings for each data point in the test dataset.

Usage

predict_emb(highd_data, model_2d, model_highd)

Arguments

highd_data

The tibble contains high-dimensional data and an unique identifier.

model_2d

Centroid coordinates of hexagonal bins in 2-D space.

model_highd

Centroid coordinates of hexagonal bins in high dimensions.

Value

A tibble contains predicted 2-D embeddings, ID in the test data, and predicted hexagonal IDs.

Examples

predict_emb(highd_data = scurve, model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)


Solve Quadratic Equation for Positive Real Roots

Description

This function solves a quadratic equation of the form 'ax^2 + bx + c = 0' and returns only the positive real roots. It handles complex intermediate calculations and returns real numbers if the roots are real.

Usage

quad(a = 3, b = 2, c = -1)

Arguments

a

The coefficient of the x^2 term. Can be complex.

b

The coefficient of the x term.

c

The constant term.

Value

A numeric vector containing the positive real root(s) of the quadratic equation. Returns 'numeric(0)' if no positive real roots are found. Returns a single value if both positive roots are identical.

Examples


# Example 1: With specific coefficients
quad(a = 1, b = -3, c = 2) # x^2 - 3x + 2 = 0


S-curve dataset with noise dimensions

Description

The 'scurve' dataset contains a 3-dimensional S-curve with added noise dimensions. Each data point is represented by seven dimensions (x1 to x7) and an ID.

Usage

data(scurve)

Format

A data frame with 5000 rows and 8 columns:

ID

Identification number

x1, x2, x3, x4, x5, x6, x7

High-dimensional coordinates

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve dataset
data(scurve)

# Display the first few rows of the dataset
head(scurve)


Object for S-curve dataset

Description

The 'scurve_model_obj' contains object of scaled umap embedding, x and y limits, range of y; object of hexagonal binning information, object of high-d model fitted to umap embedding for the training data, the triangular object representing the triangulated bin centroids, a tibble that contains the edge information, a tibble with edge distance information.

Usage

data(scurve_model_obj)

Format

## 'scurve_model_obj' An object of five elements

nldr_obj

A tibble contains scaled first and second columns of NLDR data, and numeric vectors representing the limits of the original NLDR data.

hb_obj

A object that contains hexagonal binning information.

model_highd

A tibble with high-dimensional model.

model_2d

A tibble containing hexagonal bin centroids in 2-D

trimesh_data

A tibble that contains the edge information.

Source

This object is generated for illustrative purposes.

Examples

# Load the scurve_model_obj
data(scurve_model_obj)


List of plots

Description

The 'scurve_plts' contains the RMSE plot and the 2-D NLDR layouts for 'scurve_umap', 'scurve_umap2', 'scurve_umap3', and 'scurve_umap4'

Usage

scurve_plts

Format

## 'scurve_plts' A list of 5 elements:

scurve_plts[[1]]

ggplot object, RMSE plot.

scurve_plts[[2]]

ggplot object, 2-D NLDR layout for 'scurve_umap'.

scurve_plts[[3]]

ggplot object, 2-D NLDR layout for 'scurve_umap2'.

scurve_plts[[4]]

ggplot object, 2-D NLDR layout for 'scurve_umap3'.

scurve_plts[[5]]

ggplot object, 2-D NLDR layout for 'scurve_umap4'.

Source

This list of plots is generated for illustrative purposes.

Examples

# Show the scurve_plts
scurve_plts


UMAP embedding for 'scurve' with n_neighbors = 15 and min_dist = 0.1

Description

The 'scurve_umap' dataset contains the UMAP (Uniform Manifold Approximation and Projection) embeddings of a three-dimensional S-curve with added noise. Each data point is represented by two UMAP coordinates (UMAP1 and UMAP2) and an ID.

Usage

data(scurve_umap)

Format

## 'scurve_umap' A data frame with 5000 rows and 3 columns:

UMAP1

Numeric, first UMAP 2-D embeddings.

UMAP2

Numeric, second UMAP 2-D embeddings.

ID

Numeric, identifier for each data point.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap dataset
data(scurve_umap)

# Display the first few rows of the dataset
head(scurve_umap)


UMAP embedding for 'scurve' with n_neighbors = 10 and min_dist = 0.4

Description

The 'scurve_umap2' dataset contains the UMAP (Uniform Manifold Approximation and Projection) embeddings of a three-dimensional S-curve with added noise. Each data point is represented by two UMAP coordinates (UMAP1 and UMAP2) and an ID.

Usage

data(scurve_umap2)

Format

## 'scurve_umap2' A data frame with 5000 rows and 3 columns:

UMAP1

Numeric, first UMAP 2-D embeddings.

UMAP2

Numeric, second UMAP 2-D embeddings.

ID

Numeric, identifier for each data point.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap2 dataset
data(scurve_umap2)

# Display the first few rows of the dataset
head(scurve_umap2)


UMAP embedding for 'scurve' with n_neighbors = 62 and min_dist = 0.1

Description

The 'scurve_umap3' dataset contains the UMAP (Uniform Manifold Approximation and Projection) embeddings of a three-dimensional S-curve with added noise. Each data point is represented by two UMAP coordinates (UMAP1 and UMAP2) and an ID.

Usage

data(scurve_umap3)

Format

## 'scurve_umap3' A data frame with 5000 rows and 3 columns:

UMAP1

Numeric, first UMAP 2-D embeddings.

UMAP2

Numeric, second UMAP 2-D embeddings.

ID

Numeric, identifier for each data point.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap3 dataset
data(scurve_umap3)

# Display the first few rows of the dataset
head(scurve_umap3)


UMAP embedding for 'scurve' with n_neighbors = 30 and min_dist = 0.5

Description

The 'scurve_umap4' dataset contains the UMAP (Uniform Manifold Approximation and Projection) embeddings of a three-dimensional S-curve with added noise. Each data point is represented by two UMAP coordinates (UMAP1 and UMAP2) and an ID.

Usage

data(scurve_umap4)

Format

## 'scurve_umap4' A data frame with 5000 rows and 3 columns:

UMAP1

Numeric, first UMAP 2-D embeddings.

UMAP2

Numeric, second UMAP 2-D embeddings.

ID

Numeric, identifier for each data point.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap4 dataset
data(scurve_umap4)

# Display the first few rows of the dataset
head(scurve_umap4)


Predicted UMAP embedding for 'scurve' data

Description

The 'scurve_umap_predict' dataset contains the predicted UMAP (Uniform Manifold Approximation and Projection) embeddings of a three-dimensional S-curve with added noise. Each data point is represented by two UMAP coordinates (UMAP1 and UMAP2) and an ID.

Usage

data(scurve_umap_predict)

Format

## 'scurve_umap_predict' A data frame with 5000 rows and 3 columns:

UMAP1

Numeric, predicted first UMAP 2-D embeddings.

UMAP2

Numeric, predicted second UMAP 2-D embeddings.

ID

Numeric, identifier for each data point.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap_predict dataset
data(scurve_umap_predict)

# Display the first few rows of the dataset
head(scurve_umap_predict)


Summary with different number of bins for 'scurve_umap'

Description

The 'scurve_umap_rmse' dataset contains error, RMSE, b2, b, m, a1, a2, and mean density (d_bar) for different number of bins in x-axis (b1).

Usage

data(scurve_umap_rmse)

Format

## 'scurve_umap_rmse' A data frame with 70 rows and 10 columns:

Error

Numeric, model error.

RMSE

Numeric, Root Mean Square Error.

b1

Numeric, number of bins along x-axis.

b2

Numeric, number of bins along y-axis.

b

Numeric, number of total bins.

m

Numeric, number of non-empty bins.

a1

Numeric, hexagon bin width.

a2

Numeric, hexagon bin height.

d_bar

Numeric, mean desnity.

method

Character, NLDR method.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap_rmse dataset
data(scurve_umap_rmse)

# Display the first few rows of the dataset
head(scurve_umap_rmse)


Summary with different number of bins for 'scurve_umap2'

Description

The 'scurve_umap_rmse2' dataset contains error, RMSE, b2, b, m, a1, a2, and mean density (d_bar) for different number of bins in x-axis (b1).

Usage

data(scurve_umap_rmse2)

Format

## 'scurve_umap_rmse2' A data frame with 70 rows and 10 columns:

Error

Numeric, model error.

RMSE

Numeric, Root Mean Square Error.

b1

Numeric, number of bins along x-axis.

b2

Numeric, number of bins along y-axis.

b

Numeric, number of total bins.

m

Numeric, number of non-empty bins.

a1

Numeric, hexagon bin width.

a2

Numeric, hexagon bin height.

d_bar

Numeric, mean desnity.

method

Character, NLDR method.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap_rmse2 dataset
data(scurve_umap_rmse2)

# Display the first few rows of the dataset
head(scurve_umap_rmse2)


Summary with different number of bins for 'scurve_umap3'

Description

The 'scurve_umap_rmse3' dataset contains error, RMSE, b2, b, m, a1, a2, and mean density (d_bar) for different number of bins in x-axis (b1).

Usage

data(scurve_umap_rmse3)

Format

## 'scurve_umap_rmse3' A data frame with 70 rows and 10 columns:

Error

Numeric, model error.

RMSE

Numeric, Root Mean Square Error.

b1

Numeric, number of bins along x-axis.

b2

Numeric, number of bins along y-axis.

b

Numeric, number of total bins.

m

Numeric, number of non-empty bins.

a1

Numeric, hexagon bin width.

a2

Numeric, hexagon bin height.

d_bar

Numeric, mean desnity.

method

Character, NLDR method.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap_rmse3 dataset
data(scurve_umap_rmse3)

# Display the first few rows of the dataset
head(scurve_umap_rmse3)


Summary with different number of bins for 'scurve_umap4'

Description

The 'scurve_umap_rmse4' dataset contains error, RMSE, b2, b, m, a1, a2, and mean density (d_bar) for different number of bins in x-axis (b1).

Usage

data(scurve_umap_rmse4)

Format

## 'scurve_umap_rmse4' A data frame with 70 rows and 10 columns:

Error

Numeric, model error.

RMSE

Numeric, Root Mean Square Error.

b1

Numeric, number of bins along x-axis.

b2

Numeric, number of bins along y-axis.

b

Numeric, number of total bins.

m

Numeric, number of non-empty bins.

a1

Numeric, hexagon bin width.

a2

Numeric, hexagon bin height.

d_bar

Numeric, mean desnity.

method

Character, NLDR method.

Source

This dataset is generated for illustrative purposes.

Examples

# Load the scurve_umap_rmse4 dataset
data(scurve_umap_rmse4)

# Display the first few rows of the dataset
head(scurve_umap_rmse4)


Description

This function generates a LangeviTour visualisation based on different conditions and input parameters with 2-D wireframe.

Usage

show_error_link_plots(
  point_data,
  edge_data,
  point_colours = c("#66B2CC", "#FF7755"),
  point_sizes = c(0, 1)
)

Arguments

point_data

A tibble that contains the high-dimensional data, no-linear dimension reductions and model in high-dimensions.

edge_data

A tibble that contains the wireframe data (from and to).

point_colours

A character vector that contains the colours of points in the high-dimensional data and model.

point_sizes

A numeric vector that contains the sizes of points in the high-dimensional data and model.

Value

A browsable HTML element.

Examples

model_error <- augment(highd_data = scurve, model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)
df_exe <- comb_all_data_model_error(highd_data = scurve, nldr_data = scurve_umap,
model_highd = scurve_model_obj$model_highd, model_2d = scurve_model_obj$model_2d,
error_data = model_error)
edge_data <- scurve_model_obj$trimesh_data
if (interactive()) {
  show_error_link_plots(point_data = df_exe, edge_data = edge_data)
}


Visualise the model overlaid on high-dimensional data

Description

This function generates a langevitour which visualise the model overlaid on high-dimensional data.

Usage

show_langevitour(
  point_data,
  edge_data,
  point_colours = c("#66B2CC", "#FF7755"),
  point_sizes = c(2, 1)
)

Arguments

point_data

A tibble that contains the high-dimensional data and model in high-dimensions.

edge_data

A tibble that contains the wireframe data (from and to).

point_colours

A character vector that contains the colours of points in the high-dimensional data and model.

point_sizes

A numeric vector that contains the sizes of points in the high-dimensional data and model.

Value

A langevitour object with the model and the high-dimensional data.

Examples

df_exe <- comb_data_model(highd_data = scurve, model_highd = scurve_model_obj$model_highd,
model_2d = scurve_model_obj$model_2d)
edge_data <- scurve_model_obj$trimesh_data
if (interactive()) {
  show_langevitour(point_data = df_exe, edge_data = edge_data)
}


Description

This function generates a LangeviTour visualisation based on different conditions and input parameters with 2-D wireframe.

Usage

show_link_plots(
  point_data,
  edge_data,
  point_colours = c("#66B2CC", "#FF7755"),
  point_sizes = c(0, 1)
)

Arguments

point_data

A tibble that contains the high-dimensional data, non-linear dimension reductions and model in high-dimensions.

edge_data

A tibble that contains the wireframe data (from and to).

point_colours

A character vector that contains the colours of points in the high-dimensional data and model.

point_sizes

A numeric vector that contains the sizes of points in the high-dimensional data and model.

Value

A browsable HTML element.

Examples

df_exe <- comb_all_data_model(highd_data = scurve, nldr_data = scurve_umap,
model_highd = scurve_model_obj$model_highd, model_2d = scurve_model_obj$model_2d)
edge_data <- scurve_model_obj$trimesh_data
if (interactive()) {
  show_link_plots(point_data = df_exe, edge_data = edge_data)
}


stat_hexgrid Custom Stat for hexagonal grid plot

Description

stat_hexgrid Custom Stat for hexagonal grid plot

Usage

stat_hexgrid(
  mapping = NULL,
  data = NULL,
  geom = GeomHexgrid$default_aes(),
  position = "identity",
  show.legend = NA,
  outliers = TRUE,
  inherit.aes = TRUE,
  ...
)

Arguments

mapping

Aesthetic mappings for the plot.

data

The data to be plotted.

geom

The geometry to be used in the plot.

position

The position adjustment to be applied.

show.legend

Whether to show the legend for this layer.

outliers

Whether to include outliers.

inherit.aes

Whether to inherit aesthetics from the plot or the layer.

...

Additional arguments to be passed to the 'layer' function.

Value

A 'ggplot2' layer object.


stat_trimesh Custom Stat for trimesh plot

Description

stat_trimesh Custom Stat for trimesh plot

Usage

stat_trimesh(
  mapping = NULL,
  data = NULL,
  geom = GeomTrimesh$default_aes(),
  position = "identity",
  show.legend = NA,
  outliers = TRUE,
  inherit.aes = TRUE,
  ...
)

Arguments

mapping

Aesthetic mappings for the plot.

data

The data to be plotted.

geom

The geometry to be used in the plot.

position

The position adjustment to be applied.

show.legend

Whether to show the legend for this layer.

outliers

Whether to include outliers.

inherit.aes

Whether to inherit aesthetics from the plot or the layer.

...

Additional arguments to be passed to the 'layer' function.

Value

A 'ggplot2' layer object.


Triangulate bin centroids

Description

This function triangulates the bin centroids using the x and y coordinates provided in the input data frame and returns the triangular object.

Usage

tri_bin_centroids(centroids_data)

Arguments

centroids_data

The tibble containing the all the bin centroids.

Value

A triangular object representing the triangulated bin centroids.

Examples

all_centroids_df <- scurve_model_obj$hb_obj$centroids
counts_data <- scurve_model_obj$hb_obj$std_cts
umap_with_hb_id <- scurve_model_obj$hb_obj$data_hb_id
df_bin_centroids <- extract_hexbin_mean(data_hb = umap_with_hb_id,
counts_data = counts_data, centroids_data = all_centroids_df)
tri_bin_centroids(centroids_data = df_bin_centroids)


Update from and to values in trimesh data

Description

This function update the from and to indexes.

Usage

update_trimesh_index(trimesh_data)

Arguments

trimesh_data

A tibble that contains wireframe data.

Value

A tibble that contains the updated edge information.

Examples

tr_from_to_df <- scurve_model_obj$trimesh_data
update_trimesh_index(trimesh_data = tr_from_to_df)