Just to expand on this answer, controls in DiffBind are used in two possible ways:
- Generation of greylists. Used to exclude peaks in regions that appear to have anomalous levels of enrichment in the control. This is the default usage of controls if specified.
- Read subtraction. Control read counts may be subtracted from the associated sample read counts. In this case, control reads are scaled based on the ratio of library size between the sample and control.
In general, control reads are most useful in modelling the "background" signal in the peak calling step, which occurs outside of DiffBind.