% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/celda_G.R
\name{celda_G}
\alias{celda_G}
\alias{celda_G,SingleCellExperiment-method}
\alias{celda_G,matrix-method}
\title{Feature clustering with Celda}
\usage{
celda_G(x, ...)

\S4method{celda_G}{SingleCellExperiment}(
  x,
  useAssay = "counts",
  altExpName = "featureSubset",
  L,
  beta = 1,
  delta = 1,
  gamma = 1,
  stopIter = 10,
  maxIter = 200,
  splitOnIter = 10,
  splitOnLast = TRUE,
  seed = 12345,
  nchains = 3,
  yInitialize = c("split", "random", "predefined"),
  countChecksum = NULL,
  yInit = NULL,
  logfile = NULL,
  verbose = TRUE
)

\S4method{celda_G}{matrix}(
  x,
  useAssay = "counts",
  altExpName = "featureSubset",
  L,
  beta = 1,
  delta = 1,
  gamma = 1,
  stopIter = 10,
  maxIter = 200,
  splitOnIter = 10,
  splitOnLast = TRUE,
  seed = 12345,
  nchains = 3,
  yInitialize = c("split", "random", "predefined"),
  countChecksum = NULL,
  yInit = NULL,
  logfile = NULL,
  verbose = TRUE
)
}
\arguments{
\item{x}{A numeric \link{matrix} of counts or a
\linkS4class{SingleCellExperiment}
with the matrix located in the assay slot under \code{useAssay}.
Rows represent features and columns represent cells.}

\item{...}{Ignored. Placeholder to prevent check warning.}

\item{useAssay}{A string specifying the name of the
\link{assay} slot to use. Default "counts".}

\item{altExpName}{The name for the \link{altExp} slot
to use. Default "featureSubset".}

\item{L}{Integer. Number of feature modules.}

\item{beta}{Numeric. Concentration parameter for Phi. Adds a pseudocount to
each feature module in each cell. Default 1.}

\item{delta}{Numeric. Concentration parameter for Psi. Adds a pseudocount to
each feature in each module. Default 1.}

\item{gamma}{Numeric. Concentration parameter for Eta. Adds a pseudocount to
the number of features in each module. Default 1.}

\item{stopIter}{Integer. Number of iterations without improvement in the
log likelihood to stop inference. Default 10.}

\item{maxIter}{Integer. Maximum number of iterations of Gibbs sampling to
perform. Default 200.}

\item{splitOnIter}{Integer. On every `splitOnIter` iteration, a heuristic
will be applied to determine if a feature module should be reassigned and
another feature module should be split into two clusters. To disable
splitting, set to -1. Default 10.}

\item{splitOnLast}{Integer. After `stopIter` iterations have been
performed without improvement, a heuristic will be applied to determine if
a cell population should be reassigned and another cell population should be
split into two clusters. If a split occurs, then `stopIter` will be reset.
Default TRUE.}

\item{seed}{Integer. Passed to \link[withr]{with_seed}. For reproducibility,
a default value of 12345 is used. If NULL, no calls to
\link[withr]{with_seed} are made.}

\item{nchains}{Integer. Number of random cluster initializations. Default 3.}

\item{yInitialize}{Chararacter. One of 'random', 'split', or 'predefined'.
With 'random', features are randomly assigned to a modules. With 'split',
features will be split into sqrt(L) modules and then each module will be
subsequently split into another sqrt(L) modules. With 'predefined', values
in `yInit` will be used to initialize `y`. Default 'split'.}

\item{countChecksum}{Character. An MD5 checksum for the `counts` matrix.
Default NULL.}

\item{yInit}{Integer vector. Sets initial starting values of y. If NULL,
starting values for each feature will be randomly sampled from `1:L`.
`yInit` can only be used when `initialize = 'random'`. Default NULL.}

\item{logfile}{Character. Messages will be redirected to a file named
`logfile`. If NULL, messages will be printed to stdout.  Default NULL.}

\item{verbose}{Logical. Whether to print log messages. Default TRUE.}
}
\value{
A \linkS4class{SingleCellExperiment} object. Function
 parameter settings are stored in the \link{metadata}
 \code{"celda_parameters"} slot. Column \code{celda_feature_module} in
 \link{rowData} contains feature modules.
}
\description{
Clusters the rows of a count matrix containing single-cell data
 into L modules. The
 \code{useAssay} \link{assay} slot in
 \code{altExpName} \link{altExp} slot will be used if
 it exists. Otherwise, the \code{useAssay}
 \link{assay} slot in \code{x} will be used if
 \code{x} is a \linkS4class{SingleCellExperiment} object.
}
\examples{
data(celdaGSim)
sce <- celda_G(celdaGSim$counts, L = celdaGSim$L, nchains = 1)
}
\seealso{
\link{celda_C} for cell clustering and \link{celda_CG} for
 simultaneous clustering of features and cells. \link{celdaGridSearch} can
 be used to run multiple values of L and multiple chains in parallel.
}