## ----style, echo = FALSE, results = 'asis'------------------------------------
BiocStyle::markdown()

## ----env, message = FALSE-----------------------------------------------------
library(MsCoreUtils)
library(QFeatures)

## ----imputeMethods------------------------------------------------------------
imputeMethods()

## ----mkdata-------------------------------------------------------------------
m <- matrix(1:50, nrow = 10)
diag(m) <- NA
m[which(is.na(m)) + 5] <- NA
dimnames(m) <- list(paste0("F", 1:10), paste0("S", 1:5))
randna <- rep(c(TRUE, FALSE), each = 5)
se <- SummarizedExperiment(assays = m,
                           rowData = data.frame(randna))
se

## ----se-----------------------------------------------------------------------
assay(se)

## ----simpleImputation---------------------------------------------------------
impute(se, method = "zero") |> assay()

## ----imputeWith---------------------------------------------------------------
impute(se, method = "with", val = 0.5) |> assay()

## ----imputeMinDet-------------------------------------------------------------
impute(se, method = "MinDet", q = 0) |> assay()

## ----imputeMinDetMargin2------------------------------------------------------
impute(se, method = "MinDet", q = 0, MARGIN = 2) |> assay()

## ----imputeMinDetDefaultMargin------------------------------------------------
getImputeMargin("impute_MinDet")

## ----imputeKnnDetDefaultMargin------------------------------------------------
getImputeMargin("impute_knn")

## ----imputeMinDetMargin1------------------------------------------------------
impute(se, method = "MinDet", q = 0, MARGIN = 1) |> assay()

## ----defaultMargins-----------------------------------------------------------
getImputeMargin()

## ----randna-------------------------------------------------------------------
rowData(se)$randna

## ----imputeMixedSimple--------------------------------------------------------
impute(se, method = "mixed",
       randna = rowData(se)$randna,
       mar = "MinDet",
       mnar = "zero") |>
    assay()

## ----defaultMixedMargins------------------------------------------------------
getImputeMargin("impute_mixed")

## ----imputeMixedWithMargins---------------------------------------------------
impute(se, method = "mixed",
       randna = rowData(se)$randna,
       mar = "MinDet",
       mnar = "zero",
       MARGIN = c(2, NA)) |>
    assay()

## ----mixedWithArgs------------------------------------------------------------
impute(se,
       method = "mixed",
       randna = rowData(se)$randna,
       mar = "MinDet",
       mnar = "MinDet",
       marArgs = list(q = 0),
       mnarArgs = list(q = 1),
       MARGIN = c(1, 1)) |>
    assay()

## ----mixedNoSplit-------------------------------------------------------------
impute(se,
       method = "mixed",
       randna = rowData(se)$randna,
       mar = "MinDet",
       mnar = "MinDet",
       marArgs = list(q = 1),
       mnarArgs = list(q = 0),
       MARGIN = c(2, 1),
       split = FALSE) |>
    assay()

## ----sessioninfo, echo=FALSE--------------------------------------------------
sessionInfo()

