% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/lucid.R
\name{LUCID}
\alias{LUCID}
\title{LUCID: latent unknown clustering integrating omics with an outcome}
\usage{
LUCID(
  G,
  Z,
  Y,
  K,
  lucid_model = c("early", "parallel", "serial"),
  family = c("normal", "binary"),
  ...
)
}
\arguments{
\item{G}{Exposure/predictor matrix (objects in rows).}

\item{Z}{Omics matrix, or a list of matrices for the parallel/serial models
(objects in rows).}

\item{Y}{Outcome vector (length = number of objects).}

\item{K}{Number of latent clusters.}

\item{lucid_model}{One of \code{"early"}, \code{"parallel"}, \code{"serial"}.}

\item{family}{Outcome family, \code{"normal"} or \code{"binary"}.}

\item{...}{Further arguments forwarded to \code{LUCIDus::estimate_lucid}.}
}
\value{
A list of class \code{"LUCID"} with the fitted \code{model} and the
posterior \code{cluster} assignment per object.
}
\description{
Thin wrapper around \pkg{LUCIDus}' \code{estimate_lucid}. LUCID is a
\emph{model-based, supervised} integrative clustering method: it defines a
categorical latent variable (the clusters) jointly from upstream exposures
\code{G}, multi-omics data \code{Z} and an outcome \code{Y} via an EM
algorithm (a quasi-mediation model). Unlike the unsupervised methods in
MosaiClusteR it requires an outcome and returns posterior cluster membership.
}
\examples{
\dontrun{
# requires the 'LUCIDus' package
data(mosaic_toy)
Z <- mosaic_toy$List[[1]]
G <- mosaic_toy$List[[2]][, 1:3]
Y <- as.numeric(mosaic_toy$truth)
fit <- LUCID(G = G, Z = Z, Y = Y, K = 3)
table(fit$cluster)
}
}
\references{
Zhao, Y., Jia, K., Goodrich, J. & Conti, D. V. (2024). LUCIDus:
an R package for implementing LUCID with phenotypic traits. The R Journal
16(2).
}
\seealso{
\code{\link{M_ABCpp}}, \code{\link{intNMF}}
}
