R/ti_embeddr.R

Defines functions ti_embeddr

Documented in ti_embeddr

######################################### DO NOT EDIT! #########################################
#### This file is automatically generated from data-raw/2-generate_r_code_from_containers.R ####
################################################################################################

#' @title Embeddr
#' 
#' @description
#' Will generate a trajectory using [Embeddr](https://doi.org/10.1101/027219).
#' 
#' This method was wrapped inside a
#' [container](https://github.com/dynverse/ti_embeddr).
#' The original code of this method is available
#' [here](https://github.com/kieranrcampbell/embeddr).
#' 
#' @references Campbell, K., Ponting, C.P., Webber, C., 2015. Laplacian eigenmaps
#' and principal curves for high resolution pseudotemporal ordering of single-cell
#' RNA-seq profiles.
#' 
#' @param ndim Dimension of the embedded space, default is 2. Domain: U(2, 10).
#' Default: 2. Format: integer.
#' @param kernel The choice of kernel. 'nn' will give nearest neighbours, 'dist'
#' gives minimum distance and'heat' gives a heat kernel. Discussed in detail in
#' 'Laplacian Eigenmaps and Spectral Techniques for Embedding and
#' Clustering',Belkin & Niyogi. Domain: {nn, dist, heat}. Default: nn. Format:
#' character.
#' @param metric The metric with which to assess 'closeness' for nearest neighbour
#' selection, one of'correlation' (pearson) or 'euclidean'. Default is
#' 'correlation'. Domain: {correlation, euclidean, cosine}. Default: correlation.
#' Format: character.
#' @param nn_pct The percentage of cells to use as tge number of nearest
#' neighbours if kernel == 'nn'. Domain: U(-2, 1). Default: 0. Format: numeric.
#' @param eps Maximum distance parameter if kernel == 'dist'. Domain: U(-5, 5).
#' Default: 0. Format: numeric.
#' @param t "time" for heat kernel if kernel == "heat". Domain: U(-5, 5). Default:
#' 0. Format: numeric.
#' @param symmetrize How to make the adjacency matrix symmetric. Note that
#' slightlycounterintuitively, node i having node j as a nearest neighbour doesn't
#' guarantee nodej has node i. There are several ways to get round this;* `mean`
#' If the above case occurs make the link weight 0.5 so the adjacency matrix
#' becomes $0.5(A + A')$* `ceil` If the above case occurs set the link weight to 1
#' (ie take the ceiling of the mean case)* `floor` If the above case occurs set
#' the link weight to 0 (ie take the floor of the mean case). Domain: {mean, ceil,
#' floor}. Default: mean. Format: character.
#' @param measure_type Type of laplacian eigenmap, which corresponds to the
#' constraint on the eigenvalue problem. Iftype is 'unorm' (default), then the
#' graph measure used is the identity matrix, while if type is 'norm' then the
#' measureused is the degree matrix. Domain: {unorm, norm}. Default: unorm.
#' Format: character.
#' @param thresh Convergence threshold on shortest distances to the curve. Domain:
#' e^U(-11.51, 11.51). Default: 0.001. Format: numeric.
#' @param maxit Maximum number of iterations. Domain: U(0, 50). Default: 10.
#' Format: integer.
#' @param stretch A factor by which the curve can be extrapolated when points are
#' projected.  Default is 2 (times the last segment length). The default is 0 for
#' `smoother` equal to `"periodic_lowess"`. Domain: U(0, 5). Default: 2. Format:
#' numeric.
#' @param smoother Choice of smoother. The default is `"smooth_spline"`, and other
#' choices are `"lowess"` and `"periodic_lowess"`. The latter allows one to fit
#' closed curves. Beware, you may want to use `iter = 0` with `lowess()`. Domain:
#' {smooth.spline, lowess, periodic.lowess}. Default: smooth.spline. Format:
#' character.
#' 
#' @keywords method
#' 
#' @return A TI method wrapper to be used together with
#' \code{\link[dynwrap:infer_trajectories]{infer_trajectory}}
#' @export
ti_embeddr <- function(
    ndim = 2L,
    kernel = "nn",
    metric = "correlation",
    nn_pct = 0L,
    eps = 0L,
    t = 0L,
    symmetrize = "mean",
    measure_type = "unorm",
    thresh = 0.001,
    maxit = 10L,
    stretch = 2L,
    smoother = "smooth.spline"
) {
  method_choose_backend(
    package_repository = NULL,
    package_name = NULL,
    function_name = NULL,
    package_version = NULL,
    container_id = "dynverse/ti_embeddr:v0.9.9.01"
  )(
    ndim = ndim,
    kernel = kernel,
    metric = metric,
    nn_pct = nn_pct,
    eps = eps,
    t = t,
    symmetrize = symmetrize,
    measure_type = measure_type,
    thresh = thresh,
    maxit = maxit,
    stretch = stretch,
    smoother = smoother
  )
}
dynverse/dynmethods documentation built on Jan. 18, 2024, 4:44 a.m.