% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/module1_preqc.R
\name{calc_robust_z_prime}
\alias{calc_robust_z_prime}
\title{Robust Z'-factor per plate}
\usage{
calc_robust_z_prime(
  hts_raw,
  signal_col = "signal",
  nc_label = "NC",
  pc_label = "PC",
  z_prime_min = 0.5
)
}
\arguments{
\item{hts_raw}{An \code{hts_raw} object.}

\item{signal_col}{Name of the signal column. Default \code{"signal"}.}

\item{nc_label, pc_label}{Well-type labels for the negative and positive
controls. Defaults \code{"NC"} and \code{"PC"}.}

\item{z_prime_min}{Acceptance threshold (\verb{>= 0.5} is the usual cut-off for an
excellent assay). Default \code{0.5}.}
}
\value{
A data frame with one row per plate: \code{plate_id}, \code{median_nc},
\code{median_pc}, \code{mad_nc}, \code{mad_pc}, \code{robust_z_prime} and a logical \code{pass}.
}
\description{
Median/MAD version of the Z'-factor. \strong{What it is for:} it answers the same
question as \code{\link[=calc_z_prime]{calc_z_prime()}} — how cleanly the positive and negative controls
separate — but because it uses the median and the median absolute deviation
instead of the mean and SD, a couple of splashed or crystallised control
wells cannot single-handedly sink an otherwise good plate. Prefer it when
control replicates occasionally contain outliers.
}
\examples{
calc_robust_z_prime(read_hts_plate(hts_primary_raw))

}
\seealso{
\code{\link[=calc_z_prime]{calc_z_prime()}}, \code{\link[=calc_plate_qc]{calc_plate_qc()}}, \code{\link[=plot_plate_qc]{plot_plate_qc()}}
}
