Standard curves, detection limits and omics
ELISA curves, values below the detection limit, flow cytometry, CFU, sequencing and proteomics data.
- Choose a methodELISA standard curve: fitting a 4PL curve, reading off concentrations, and values outside the rangeFit an ELISA standard curve with a four-parameter logistic (4PL) model, weighted for the larger scatter at high signal, read concentrations only inside the range of the standards that pass, and average replicate wells first. Python and R code.
- Choose a methodValues below the detection limit: why LOD/2 is a shortcut, and how to analyse non-detectsA value below the limit of detection is censored, known only to be lower than the limit. Count them, then use a censored-data model, or a rank test when all share one limit, instead of LOD/2. Python and R code.
- Choose a methodComparing flow cytometry MFI between groups: median fluorescence, log scale, staining day and the mouse as nSummarise each mouse by its median (or geometric mean) fluorescence, compare groups on the log scale with the mouse as n, and block by staining day when MFI shifts between staining days. Events are not replicates. Python and R code.
- Choose a methodCFU counts and bacterial burden: log10 scale, dilution series, limit of detection and mice as nConvert colonies to CFU per organ, analyse log10 burden with mice as n, and record mice with no colonies on the least dilute plate as below the detection limit. Python and R code with a simulation.
- Choose a methodMicrobiome relative abundance in mouse studies: compositional data, cage effects and the false discovery rateCompare taxa between groups on a log-ratio (CLR) scale, control the false discovery rate across taxa, and treat the cage, not the mouse, as the unit when groups are caged separately. Python and R code.
- Choose a methodReading RNA-seq differential expression results: padj, fold-change cutoffs, NA values and batchUse the adjusted p-value (padj), not the raw p-value; a fold-change cutoff applied afterwards describes genes but does not test a 2-fold claim; test against a threshold when the size of the change matters. Python and R code.
- Choose a methodMissing values in label-free proteomics: missing not at random, imputation and filteringMany missing intensities in label-free proteomics are low-abundance values, not random gaps. Filter proteins by valid values per group and test observed values, or use a method that models missingness; constant imputation changes the results. Python and R code.