R/ti_slice.R

Defines functions ti_slice

Documented in ti_slice

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

#' @title SLICE
#' 
#' @description
#' Will generate a trajectory using [SLICE](https://doi.org/10.1093/nar/gkw1278).
#' 
#' This method was wrapped inside a
#' [container](https://github.com/dynverse/ti_slice).
#' The original code of this method is available
#' [here](https://research.cchmc.org/pbge/slice.html).
#' 
#' @references Guo, M., Bao, E.L., Wagner, M., Whitsett, J.A., Xu, Y., 2016.
#' SLICE: determining cell differentiation and lineage based on single cell
#' entropy. Nucleic Acids Research gkw1278.
#' 
#' @param lm.method Select "clustering" based or "graph" based method to infer
#' lineage model. Domain: {clustering, graph}. Default: clustering. Format:
#' character.
#' @param model.type The type of models that will be infered: "tree" - directed
#' minimum spanning tree based, "graph" - directed graph based. Domain: {tree,
#' graph}. Default: tree. Format: character.
#' @param ss.method The method for defining core cell set for stable state
#' detection: all - all the cells in a cluster constitute the core cell set; top -
#' cells with scEntropy lower than the ss.threshold quantile of all the values in
#' a cluster constitute the core cell set; pcst - cells with scEntropy lower than
#' the ss.threshold quantile of all the values in a cluster constitute the prize
#' nodes, linear prize-collecting steiner tree algorithm is used to approximate an
#' optimal subnetwork, the cells in the subnetwork constitute the core cell set.
#' Stable states are defined as the centroids of the core cell sets. Domain: {all,
#' top, pcst}. Default: all. Format: character.
#' @param ss.threshold The threshold used when ss.method is "top" or "pcst".
#' Default: 0.25. Domain: U(0, 1). Default: 0.25. Format: numeric.
#' @param community.method The method for network community detection. Most of the
#' community detection methods implemented in the igraph package are supported,
#' including "fast_greedy", "edge_betweenness", "label_prop",
#' "leading_eigen","louvain","spinglass", "walktrap". If this parameter is set to
#' "auto", the algorithm will perform all the community detection methods and
#' select the one that generates the communities with best modularity. Only take
#' effect when lm.method is "graph". Domain: {fast_greedy, edge_betweenness,
#' label_prop, leading_eigen, louvain, spinglass, walktrap, auto}. Default:
#' louvain. Format: character.
#' @param cluster.method Use "kmeans" or "pam" to divide cells into clusters. Only
#' take effect when lm.method is "clustering". Domain: {kmeans, pam}. Default:
#' kmeans. Format: character.
#' @param k The number of cell clusters. If NULL, Gap statistic will be used to
#' determine an optimal k. Domain: U(0, 20). Default: 0. Format: integer.
#' @param k.max The "k.max" parameter of cluster::clusGap(); used when k is NULL.
#' Domain: U(3, 20). Default: 10. Format: integer.
#' @param B The "B" parameter of cluster::clusGap(); used when k is NULL. Domain:
#' U(3, 500). Default: 100. Format: integer.
#' @param k.opt.method The "method" parameter of cluster::maxSE(); used when k is
#' NULL. Domain: {firstmax, globalmax, Tibs2001SEmax, firstSEmax, globalSEmax}.
#' Default: firstmax. Format: character.
#' 
#' @keywords method
#' 
#' @return A TI method wrapper to be used together with
#' \code{\link[dynwrap:infer_trajectories]{infer_trajectory}}
#' @export
ti_slice <- function(
    lm.method = "clustering",
    model.type = "tree",
    ss.method = "all",
    ss.threshold = 0.25,
    community.method = "louvain",
    cluster.method = "kmeans",
    k = 0L,
    k.max = 10L,
    B = 100L,
    k.opt.method = "firstmax"
) {
  method_choose_backend(
    package_repository = NULL,
    package_name = NULL,
    function_name = NULL,
    package_version = NULL,
    container_id = "dynverse/ti_slice:v0.9.9.01"
  )(
    lm.method = lm.method,
    model.type = model.type,
    ss.method = ss.method,
    ss.threshold = ss.threshold,
    community.method = community.method,
    cluster.method = cluster.method,
    k = k,
    k.max = k.max,
    B = B,
    k.opt.method = k.opt.method
  )
}
dynverse/dynmethods documentation built on Jan. 18, 2024, 4:44 a.m.