6 Quality control you can trust
This chapter describes EpiNexus 1.2.6. In 1.2.7, depth is counted in usable fragments against ENCODE’s lines for each kind of mark, and a sample fails only at ENCODE’s error level; the next edition will describe it.
Every sequencing run gives you numbers. Quality control tells you if you can trust them. This chapter explains the main quality metrics for chromatin data. For each metric, you will learn what it measures, which values are good, and where these values come from. You will also learn what to do when a library does not pass.
6.1 The question
Quality control answers two different questions:
- Did each library work? Are there enough reads? Do they come from enough different DNA molecules? Do they gather where the antibody or enzyme should have put them?
- Can the libraries be compared? Do the replicates agree with each other? Do the groups differ more than the replicates inside each group?
This chapter covers the first question. It looks at one library at a time. The second question comes back in peak calling (Chapter 7) and in differential analysis (Chapter 9).
Quality metrics cannot tell you if the antibody recognised the right protein. They also cannot tell you if a sample is what its label says. You test the antibody in the lab (Landt et al. 2012). You check the sample labels when you prepare the data (Chapter 3).
6.2 How it works
Depth: how many reads are enough?
More reads let you find weaker signals. Standards count usable reads. A usable read is aligned to the genome, is not a duplicate, and is not in a blacklisted region. A library with 20 million reads may have only 13 million usable reads.
The number you need depends on the target:
- Transcription factors bind at precise sites, so their reads gather in narrow peaks. For human and mouse, ENCODE used at least 10 million uniquely mapped reads per replicate (Landt et al. 2012).
- Histone marks cover larger regions. ENCODE asks for 20 million usable fragments per replicate for narrow marks such as H3K27ac, H3K4me3 and H3K9ac. It asks for 45 million for broad marks such as H3K27me3, H3K36me3 and H3K4me1 (ENCODE Project Consortium 2026b).
- ATAC-seq needs 25 million usable reads for single-end sequencing and 50 million for paired-end sequencing. Mitochondrial reads do not count (ENCODE Project Consortium 2026a).
- CUT&Tag has very little background. Its authors write that “typically 3 million paired-end reads suffice for nucleosome modifications, even for the human genome” (Kaya-Okur et al. 2019). A recent benchmark removed CUT&Tag samples with fewer than 0.2 million mapped reads (Murray et al. 2026).
Too few reads make you miss weak changes. They do not make the regions you find wrong.
Mapping rate
The mapping rate is the percentage of reads that align to the reference genome. A low mapping rate often means one of these problems: contamination, the wrong reference genome, adapter sequence left in the reads, or a large spike-in. For ATAC-seq, ENCODE expects more than 95 %, and accepts more than 80 % (ENCODE Project Consortium 2026a). Most good ATAC-seq libraries have more than 80 % of reads on the nuclear genome (Grandi et al. 2022). No standard gives a value for ChIP-seq, CUT&RUN or CUT&Tag.
Duplicates and library complexity
Two reads are duplicates when they start at the same position. For paired-end reads, both ends must match. In ChIP-seq and ATAC-seq, most duplicates are copies of one DNA molecule. The copies are made by PCR before sequencing. A few duplicates are different molecules that start at the same position by chance. These become more common in very deep libraries.
Library complexity means how many different DNA molecules a library contains. ENCODE uses three numbers to measure it (ENCODE Project Consortium 2026c):
- NRF (non-redundant fraction): the number of distinct reads divided by the number of all reads.
- PBC1: the number of positions with exactly one read, divided by the number of positions with at least one read.
- PBC2: the number of positions with exactly one read, divided by the number of positions with exactly two reads.
In a complex library, NRF and PBC1 are close to 1 and PBC2 is large. A library with few molecules does not improve with more sequencing. You only read the same molecules again. The duplicate rate goes up, but the number of usable reads does not.
For ATAC-seq, the authors of the Omni-ATAC protocol find that libraries from 50,000 cells “typically” have “less than 10% of aligned reads marked as duplicates”. But they “do not use this metric as a way to determine library quality”: the duplicate rate depends on how deeply a library is sequenced, and libraries from dead cells have few duplicates. A high rate (above 25 %) “may suggest that the transposition was inefficient” (Grandi et al. 2022). EpiNexus grades duplicates against these two numbers. Chapter 16 shows ATAC-seq libraries above 25 % that still give clear results.
CUT&Tag and CUT&RUN are different. The enzyme cuts the same accessible sites in many cells. So identical fragments are expected, and they can be real signal. A benchmark found that the peak caller MACS2 worked better when duplicates were removed. The peak caller SEACR, which is often used for these assays, worked better when they were kept (Murray et al. 2026). For this reason, EpiNexus keeps duplicates in CUT&Tag and CUT&RUN libraries. It shows their duplicate rate for information only.
Enrichment: is there signal above background?
Three measures show if reads gather where they should.
FRiP (fraction of reads in peaks) is the percentage of usable reads that fall inside peaks (ENCODE Project Consortium 2026c). In ENCODE, most transcription-factor datasets had a FRiP of 1 % or more. ENCODE looks more closely at any experiment below 1 % (Landt et al. 2012). This 1 % line was set for transcription factors. For other targets, FRiP depends a lot on how peaks are called. Use it to compare libraries of the same target that were analysed together.
Strand cross-correlation works on single-end ChIP-seq reads. Around a bound site, reads on the forward strand gather just before the site. Reads on the reverse strand gather just after it. The distance between the two groups is about one fragment length (Kharchenko et al. 2008). If you shift one strand against the other, the two strands match best at this distance. Two numbers summarise the result (Landt et al. 2012):
- NSC (normalised strand coefficient) compares the match at the fragment length with the background.
- RSC (relative strand correlation) compares the match at the fragment length with a second match at the read length. This second match is called the “phantom” peak. It comes from the genome sequence itself, not from the antibody.
ENCODE repeats replicates with NSC below 1.05 and RSC below 0.8 (Landt et al. 2012).
The fingerprint sorts the genome into bins by the number of reads in each bin. Then it plots how the reads add up from the emptiest bin to the fullest one (Diaz et al. 2012; Ramírez et al. 2016). A library without enrichment rises steadily, like the input in Figure 6.3. An enriched library stays low for most bins and rises sharply at the end, in the few bins that hold the peaks.
Checks for specific assays
ATAC-seq has three more checks (ENCODE Project Consortium 2026a; Grandi et al. 2022):
- TSS enrichment compares the reads at gene start sites (TSS) with the reads around them. ENCODE gives bands for each genome. For human (GRCh38), below 5 is “concerning” and above 7 is “ideal”. For mouse (mm10), the values are 10 and 15. The score depends on the tool and the list of start sites. So scores “may not be directly comparable across different tools or species” (Grandi et al. 2022).
- Fragment sizes must show a peak of nucleosome-free fragments and a second peak of fragments that span one nucleosome (147 to 294 bp).
- Mitochondrial reads should be below 15 % with the Omni-ATAC protocol.
Spike-ins. Some experiments add chromatin or DNA from another species to help normalise the data. Then the share of spike-in reads matters. One spike-in method removes samples with less than 0.5 % spike-in reads. It warns that below about 2 %, small changes in the spike-in change the result a lot (Tallan et al. 2025). Chapter 10 explains spike-ins in detail.
DNA methylation. Bisulfite libraries have their own checks: the conversion rate, the coverage per CpG, and the M-bias plot. ENCODE expects a conversion rate of at least 98 % for whole-genome bisulfite sequencing (ENCODE Project Consortium 2026d). Chapter 17 explains these checks.
6.3 What the field does
Table 6.1 lists the values EpiNexus uses to grade libraries. Values in bold come from published standards. Values in italics are EpiNexus’s own choices.
| Metric | ChIP-seq | ATAC-seq | CUT&Tag | CUT&RUN |
|---|---|---|---|---|
| Reads (good / fail below) | 20 M / 10 M | 50 M / 25 M | 3 M / 0.2 M | 3 M / 0.2 M |
| Mapping rate (good / fail below) | 85 % / 70 % | 95 % / 80 % | 80 % / 60 % | 85 % / 65 % |
| Duplicates (good / fail above) | 20 % / 40 % | 10 % / 25 % | for information | for information |
| NRF (good / fail below) | 0.8 / 0.5 | 0.9 / 0.7 | — | — |
| PBC1 (good / fail below) | 0.9 / 0.5 | 0.9 / 0.7 | — | — |
| PBC2 (good / fail below) | 10 / 1 | 3 / 1 | — | — |
| FRiP (good / fail below) | 5 % / 1 % | 30 % / 20 % | 30 % / 10 % | 30 % / 10 % |
| NSC / RSC (fail below) | 1.05 / 0.8 | — | — | — |
| Mitochondrial reads (good / fail above) | — | 15 % / 30 % | — | — |
| Peaks (good / fail below) | 10,000 / 3,000 | 20,000 / 5,000 | 5,000 / 1,000 | 5,000 / 1,000 |
Keep five points in mind when you read this table:
- Usable reads and total reads. The standards count usable reads. EpiNexus compares the total number of reads with them. A library can pass in total reads but fall short in usable reads. The example below shows this.
- ChIP-seq depth. EpiNexus uses ENCODE’s 20 million for all ChIP-seq libraries. This is the value for narrow histone marks. Broad marks need 45 million (ENCODE Project Consortium 2026b). So a broad-mark library graded “good” may still have fewer reads than ENCODE asks.
- ATAC-seq depth. ENCODE asks for 50 million reads for paired-end libraries and 25 million for single-end libraries (ENCODE Project Consortium 2026a). This is one requirement, 25 million fragments, written for the two read layouts. It is not a “good” and a “fail” value. EpiNexus uses 50 million as “good”; its “fail” value of 25 million is its own choice.
- ChIP-seq FRiP. The published value is ENCODE’s 1 % for transcription factors (Landt et al. 2012). The “good” value of 5 % is EpiNexus’s own.
- CUT&RUN. No standard exists. EpiNexus uses the CUT&Tag values for depth.
Grade libraries against published standards where they exist: ENCODE’s for ChIP-seq and ATAC-seq (Landt et al. 2012; ENCODE Project Consortium 2026b, 2026a), and the depth guidance for CUT&Tag (Kaya-Okur et al. 2019; Murray et al. 2026). No publication sets the values in italics, for example the mapping rates, the peak counts, FRiP for CUT&Tag and CUT&RUN, and the 30 % fail value for mitochondrial reads in ATAC-seq. EpiNexus uses them to point to libraries that deserve a second look. They do not prove that a library failed.
EpiNexus grades each metric as “good”, “marginal” or “poor”. If a metric cannot be measured, it is not graded. If one metric is poor, the whole sample fails QC. The same grades appear everywhere: on the QC page, in the run warnings, in the report, and in the decision to exclude a sample.
Inputs and IgG controls are background, so EpiNexus does not call peaks in them. Their FRiP and peak count stay empty.
- QC page. The Dashboard tab shows each metric for each sample, coloured by grade (Figure 6.1). The Metrics tab lists all values. The Interpretation tab gives each sample a score from 0 to 100. For each metric outside its range, it explains the problem, the likely causes and what to do (Figure 6.4). The MultiQC report (Ewels et al. 2016) opens from the same page.
- Samples that fail QC. In the run wizard, on the Parameters step, under Advanced Parameters (Figure 6.5). Choose Keep them and flag the results (the default) or Exclude them from the statistics.
- Downloads. The file
qc/qc_report.csvon the Export page holds every metric of every sample. The QC section of the report lists the verdicts, with controls listed apart.
6.4 Reading the result: H3K27ac in the young mouse heart
Our example is GEO series GSE155100 (Boogerd et al. 2023). It is H3K27ac ChIP-seq of mouse heart ventricles at postnatal day 7. One group lacks the gene Arid1a in heart muscle cells (cKO). The other group is the control. Each group has two replicates, and each replicate has its own input. The reads are single-end and 75 bp long. We aligned them to the mm10 mouse genome. Table 6.2 shows the metrics. Figure 6.2 shows some of them as bars.
| Library | Reads (M) | Usable (M) | Mapped (%) | Dup. (%) | FRiP (%) | Peaks | NRF | PBC1 | PBC2 | NSC | RSC |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ChIP Ctrl 1 | 15.4 | 12.0 | 97.8 | 9.0 | 37.4 | 58,598 | 0.889 | 0.931 | 15.6 | 1.95 | 1.63 |
| ChIP Ctrl 2 | 17.5 | 13.2 | 94.7 | 9.5 | 44.6 | 66,954 | 0.878 | 0.912 | 12.2 | 1.93 | 1.63 |
| ChIP cKO 1 | 16.3 | 12.6 | 97.9 | 9.2 | 36.3 | 54,372 | 0.886 | 0.927 | 14.8 | 1.97 | 1.59 |
| ChIP cKO 2 | 16.6 | 12.6 | 94.3 | 8.2 | 38.8 | 62,591 | 0.897 | 0.927 | 14.7 | 1.89 | 1.72 |
| Input Ctrl 1 | 17.1 | 12.4 | 98.2 | 11.7 | — | — | 0.879 | 0.962 | 28.8 | 2.78 | 1.13 |
| Input Ctrl 2 | 18.5 | 13.7 | 98.4 | 10.9 | — | — | 0.887 | 0.961 | 28.1 | 2.84 | 1.23 |
| Input cKO 1 | 15.1 | 11.0 | 98.2 | 11.3 | — | — | 0.883 | 0.962 | 29.0 | 4.45 | 0.92 |
| Input cKO 2 | 19.2 | 14.2 | 98.2 | 10.4 | — | — | 0.891 | 0.961 | 27.8 | 3.90 | 1.20 |
Read the table in three steps.
1. The enrichment is strong. FRiP is 36–45 %. This is far above ENCODE’s 1 %. RSC is 1.59–1.72 in the H3K27ac libraries, well above ENCODE’s 0.8. In the inputs, RSC is close to 1 (0.92–1.23). This means that, in the inputs, the match at the fragment length is no stronger than the phantom peak, which is what we expect when there is no enrichment. The fingerprint in Figure 6.3 shows the same thing. The H3K27ac library stays low for most of the genome and rises sharply at the end. Its input rises steadily.
EpiNexus 1.2 also grades the NSC and RSC of inputs. In this example all inputs are graded “good” (Figure 6.4). But an input should not be enriched, so a “good” NSC or RSC says nothing useful about an input. Compare each ChIP library with its own input instead.
2. The libraries are complex. NRF is 0.88–0.90. This is in ENCODE’s “compliant” band, just below “ideal”. PBC1 (0.91–0.93) and PBC2 (12–16) show no PCR problem. Duplicates are 8–10 %.
3. Depth is the weak point. Each H3K27ac library has 15–17.5 million reads, and 12–13 million usable reads. ENCODE asks for 20 million usable fragments for a narrow histone mark (ENCODE Project Consortium 2026b). So EpiNexus grades every library “marginal” on depth. This is the only QC warning in the run (Figure 6.4). With fewer reads, weaker changes in H3K27ac are harder to find. Chapter 14 shows what this means when we compare our differential regions with the published ones.
Verdict. All eight libraries pass. The only QC warning is depth. Low depth limits how much we can find. It does not make what we find less reliable. We do not need to exclude any library.
The screenshots in this chapter come from a second run of the same data with EpiNexus 1.2. The values they show are the same as in Table 6.2.
6.5 Pitfalls
ENCODE looks more closely at libraries below its values, and repeats replicates that fail (Landt et al. 2012). It does not throw them away automatically. A marginal value is a reason to look closer. Check the fingerprint, look at the peaks in a genome browser, and compare the library with its replicates. Then decide.
FRiP depends on the peak caller, its settings, the depth and the target. The same library can have a FRiP of 8 % in one pipeline and 15 % in another. Only compare FRiP between libraries of the same target that were analysed together.
CUT&Tag and CUT&RUN libraries have more identical fragments than ChIP-seq. This is normal. A high duplicate rate is not a failure here. Watch for few unique fragments and a low FRiP instead.
The standards count usable reads. Suppose a library has 20 million reads, a 70 % mapping rate and 40 % duplicates. It has far fewer than 10 million usable reads.
If you remove one of two replicates, that group has a single library. Then you cannot see how much the replicates differ. With two replicates per group, it is often better to keep a marginal library and report it. It is even better to sequence it more deeply, if its complexity is good.
6.6 What to do with a library that fails
| What failed | Likely cause | What to do |
|---|---|---|
| Only depth; complexity is good | Not sequenced deeply enough | Sequence the same library again, more deeply |
| Complexity (low NRF and PBC1, many duplicates) | Too little starting material, too many PCR cycles | Make a new library from more material. More sequencing will not help |
| Enrichment (low FRiP, NSC or RSC; flat fingerprint) | Weak antibody or pull-down, too much fixation or digestion | Repeat the experiment. Exclude the library from the statistics |
| Mapping rate | Contamination, wrong reference genome, adapters, a large spike-in | Check the species, the reference genome, the trimming and the spike-in share |
| ATAC-seq: mitochondrial reads | Nuclei preparation | Use a protocol that removes mitochondria, such as Omni-ATAC (Grandi et al. 2022) |
In EpiNexus, you decide what happens to failing samples before the run starts (Figure 6.5). Whatever you decide, report it. Say which libraries were flagged, why, and if you kept them. EpiNexus records the QC verdicts and your choice with the run. Its methods text names any excluded samples.
6.7 Further reading
- Landt et al. (2012): the ENCODE ChIP-seq guidelines. They explain FRiP, strand cross-correlation and library complexity.
- The ENCODE standards for histone ChIP-seq and ATAC-seq (ENCODE Project Consortium 2026b, 2026a), and the definitions of the metrics (ENCODE Project Consortium 2026c).
- Grandi et al. (2022): the Omni-ATAC protocol, with quality checks for each step.
- Kaya-Okur et al. (2019) and Murray et al. (2026): CUT&Tag, how many reads it needs, and how duplicates affect peak callers.