This lightweight R package provides a method for normalizing and denoising protein expression data from droplet based single cell experiments. Raw protein Unique Molecular Index (UMI) counts from sequencing DNA-conjugated antibodies in droplets (e.g. 'CITE-seq') have substantial measurement noise. Our experiments and computational modeling revealed two major components of this noise: 1) protein-specific noise originating from ambient, unbound antibody encapsulated in droplets that can be accurately inferred via the expected protein counts detected in empty droplets, and 2) droplet/cell-specific noise revealed via the shared variance component associated with isotype antibody controls and background protein counts in each cell. This package normalizes and removes both of these sources of noise from raw protein data derived from methods such as 'CITE-seq', 'REAP-seq', and data from the Mission Bio 'Tapestri' platform. See the vignette for tutorials on how to integrate dsb with 'Seurat', 'Bioconductor' and the AnnData class in 'Python'. Please also see our preprint Mulè M.P., Martins A.J., and Tsang J.S. (2020) < https://www.biorxiv.org/content/10.1101/2020.02.24.963603v1> for more details on the dsb method.