% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/MultiOmicsBridgeAnalysis.R
\name{MultiOmicsBridgeAnalysis}
\alias{MultiOmicsBridgeAnalysis}
\title{Full Multi-Omics Integration Analysis Pipeline}
\usage{
MultiOmicsBridgeAnalysis(
  mae,
  outcome,
  n_components = 2L,
  n_features_host = 50L,
  n_features_mb = 20L,
  n_biomarkers = 50L,
  cv_folds = 5L,
  host_assay = "voom",
  mb_assay = "CLR",
  design_off_diag = 0.1,
  seed = 42L,
  BPPARAM = SerialParam()
)
}
\arguments{
\item{mae}{A \code{MultiAssayExperiment} with \code{"host"} and
\code{"microbiome"} experiments, produced by \code{\link{matchSamples}}.}

\item{outcome}{A \code{character} or \code{factor} vector of outcome
labels, one per sample (ordered as \code{colnames(mae)}).
Must have exactly 2 levels for classification.}

\item{n_components}{An \code{integer(1)} number of DIABLO latent
components to extract. Default: \code{2}.}

\item{n_features_host}{An \code{integer(1)} number of host genes
to select per DIABLO component. Default: \code{50}.}

\item{n_features_mb}{An \code{integer(1)} number of microbial taxa
to select per DIABLO component. Default: \code{20}.}

\item{n_biomarkers}{An \code{integer(1)} total number of biomarkers
to report per omics layer in the ranked table. Default: \code{50}.}

\item{cv_folds}{An \code{integer(1)} number of cross-validation folds
for classifier evaluation. Default: \code{5}.}

\item{host_assay}{A \code{character(1)} name of the normalized host
assay in the MAE. Default: \code{"voom"}.}

\item{mb_assay}{A \code{character(1)} name of the normalized microbiome
assay in the MAE. Default: \code{"CLR"}.}

\item{design_off_diag}{A \code{numeric(1)} off-diagonal value for the
DIABLO design matrix (see \code{\link{jointDimReduction}}).
Default: \code{0.1}.}

\item{seed}{An \code{integer(1)} random seed. Default: \code{42}.}

\item{BPPARAM}{A \code{BiocParallelParam} object. Default:
\code{SerialParam()}.}
}
\value{
A \code{\link{MOBResult}} object with:
  \describe{
    \item{\code{integrationScores(result)}}{Matrix of DIABLO sample
      scores (samples x components).}
    \item{\code{featureLoadings(result)}}{Named list of host and
      microbiome loading matrices.}
    \item{\code{biomarkers(result)}}{Ranked multi-omics biomarker
      \code{DataFrame}.}
    \item{\code{performance(result)}}{Classifier performance list with
      AUC-ROC for host-only, microbiome-only, and joint models.}
  }
}
\description{
A one-call wrapper that executes the complete MultiOmicsBridge analysis
pipeline: joint dimensionality reduction, multi-omics biomarker
discovery, and integrated diagnostic classification. The function
accepts a \code{MultiAssayExperiment} (from \code{\link{matchSamples}})
and returns a \code{\link{MOBResult}} S4 object containing all results.
}
\details{
Internally, \code{MultiOmicsBridgeAnalysis} calls:
\enumerate{
  \item \code{\link{jointDimReduction}} — DIABLO sparse multi-block
    PLS-DA.
  \item \code{\link{biomarkerDiscovery}} — loading-based ranking and
    cross-omics correlation annotation.
  \item \code{\link{diagnosticClassifier}} — host-only, microbiome-only,
    and joint Random Forest classifiers with cross-validation.
}
Each step can also be called independently for fine-grained control.
}
\examples{
set.seed(42)
host_counts <- matrix(rpois(500 * 20, 100), nrow = 500, ncol = 20,
    dimnames = list(paste0("Gene", 1:500), paste0("S", 1:20)))
host_counts[1:20, 11:20] <- host_counts[1:20, 11:20] * 5L
mb_counts <- matrix(rpois(60 * 20, 40), nrow = 60, ncol = 20,
    dimnames = list(paste0("Taxon", 1:60), paste0("S", 1:20)))

host_se <- loadHostData(host_counts)
mb_se   <- loadMicrobiomeData(mb_counts)
mae     <- matchSamples(host_se, mb_se)
outcome <- rep(c("ctrl", "treat"), each = 10)

result <- MultiOmicsBridgeAnalysis(mae, outcome,
                                    n_components    = 2,
                                    n_features_host = 20,
                                    n_features_mb   = 10,
                                    n_biomarkers    = 15,
                                    cv_folds        = 3)
result
head(as.data.frame(biomarkers(result)))

}
\seealso{
\code{\link{matchSamples}}, \code{\link{jointDimReduction}},
  \code{\link{biomarkerDiscovery}}, \code{\link{diagnosticClassifier}},
  \code{\link{plotIntegration}}, \code{\link{plotClassifierComparison}}
}
