8  Signal tracks and the genome browser

Numbers and tables can hide problems that your eyes find at once. Looking at the signal along the genome is one of the best checks of any analysis. This chapter explains signal tracks, what their units mean, how to read profiles and heatmaps, and how to use a genome browser.

8.1 The question

What does the signal look like, and can I compare it between samples? A track shows how many reads cover each position of the genome. But the raw number depends on how deeply each library was sequenced. So tracks must be normalised before you compare them. The choice of normalisation changes what the comparison means.

8.2 How it works

Coverage tracks

A coverage track counts the reads that cover each small window of the genome, called a bin. For single-end reads, each read is first extended to the length of the original fragment, so that the signal covers the whole fragment, not just the read. The result is saved as a bigWig file (Kent et al. 2010).

Normalisation of tracks

Raw counts depend on depth: a library with twice as many reads has twice the signal. deepTools offers several ways to correct for this (Ramírez et al. 2016; deepTools developers 2026):

Table 8.1: Normalisation methods for coverage tracks in deepTools (deepTools developers 2026).
Method Formula (per bin) Use
RPKM reads ÷ (million mapped reads × bin length in kb) Compare samples of different depth
CPM reads ÷ million mapped reads Same, without the bin length
BPM reads ÷ (sum of all bin counts, in millions) Like TPM in RNA-seq
RPGC reads ÷ the factor that gives 1× average coverage Coverage relative to the genome

All these methods assume that the total amount of signal is similar in all samples. When a treatment changes a mark everywhere, this is not true. Then a spike-in is needed to scale the tracks (Chapter 10).

Ratio tracks

A ratio track divides the ChIP signal by the input signal in each bin, usually on a log2 scale. A value of 1 means twice as many reads as the input. A value of 0 means the same as the input. Ratio tracks remove background that is also in the input. But in regions with very few input reads, the ratio can jump up and down.

Profiles and heatmaps

A profile (also called a metagene plot) shows the average signal around many regions at once, for example around all peak summits. A heatmap (or tornado plot) shows the same regions one row at a time. Profiles show the typical shape. Heatmaps show how much the regions differ.

Sample correlation

To see which samples are similar, count the reads in large bins across the whole genome. Then compute the correlation between each pair of samples. Replicates should correlate well with each other. Samples should group by condition, not by batch.

NoteIn EpiNexus 1.2

Tracks. For each sample, EpiNexus makes a coverage track with deepTools bamCoverage: RPKM, in bins of 10 bp, with reads extended to 200 bp for single-end data. When a sample has an input, EpiNexus also makes a ratio track: log2(ChIP / input), scaled by the number of reads. For ATAC-seq, tracks use the shifted reads (Chapter 5). When spike-in normalisation is used, the spike-in scale replaces RPKM.

Signal Profiles page. For each mark, EpiNexus takes the peak summits of the ChIP samples and merges summits that lie within 1 kb of each other. If there are more than 20,000, it uses a random but repeatable set of 20,000. Then it computes the signal around them with deepTools computeMatrix:

  • histone marks: ±5 kb around each summit, in bins of 100 bp;
  • transcription factors and ATAC-seq: ±2 kb, in bins of 50 bp.

All samples of a mark use the same regions, the same row order and the same colour scale, so you can compare them directly. Inputs are shown next to their ChIP samples. The heatmap has 200 rows; each row is the average of a block of neighbouring regions in this order. The page has three tabs: Metagene (the profile), Tornado (the heatmaps) and Sample Correlation (Figure 8.1).

Correlation. EpiNexus summarises each sample’s signal track in 10 kb bins across the genome (deepTools multiBigwigSummary) and computes the Spearman correlation between samples.

The Signal Profiles page with the tabs Metagene, Tornado and Sample Correlation. The Metagene tab shows the mean signal of eight libraries from −4,850 to 4,950 bp around the peak summits: four H3K27ac lines peak at about 125 to 145 at the summit, and the inputs are flat near 9.
Figure 8.1: The Signal Profiles page for the GSE155100 run, Metagene tab. The text above the tabs says which regions were used: 20,000 of the 75,781 merged summits. EpiNexus 1.2 interface; not covered by the book’s licence.

8.3 The genome browser

A genome browser shows tracks, peaks and genes along the genome. You can zoom in on a gene and see if the signal looks real. Two common browsers are IGV, which also runs inside web pages as igv.js (Robinson et al. 2023), and the UCSC Genome Browser (Kent et al. 2002).

What to look for:

  • Peaks have a clear shape. A real peak stands out from its surroundings and is absent or weak in the input.
  • Replicates agree. The same peaks appear in each replicate of a condition.
  • Known genes behave as expected. Pick a gene you know is active in your cells. Its promoter should carry H3K4me3 and H3K27ac, and be open in ATAC-seq.
  • Empty regions may be unmappable. Repeats lose their reads during filtering (Chapter 5). A gap in all samples, including the input, is often a repeat.
NoteIn EpiNexus 1.2

The Genome Browser page shows the run’s tracks in igv.js: coverage tracks, ratio tracks and peaks. Aligned reads (BAM files) are large, so they are not shown by default; you can add them. The page also offers:

  • IGV session: a file that opens the same tracks in the IGV desktop application. Its links work for 24 hours.
  • Open in UCSC: opens the tracks in the UCSC Genome Browser. Anyone who has these links can use them for 24 hours, so do not use this for data you may not share. BAM files are never sent to UCSC.

Figure 8.2 shows our example near the gene Atp1a2. Each H3K27ac library has a signal track, a ratio track and its peaks, and the gene track is at the bottom. Look at the numbers at the left of each signal track: 178 and 190 for the two knockout libraries, 311 and 440 for the two controls. The browser scaled each track to its own maximum, so the peaks look about equally high. This is the autoscale pitfall described below. To compare tracks by eye, use the gear button at the right of each track to give all tracks the same data range.

The Genome Browser page. On the left, a list of tracks with check boxes. On the right, igv.js shows chr1:172,270,709-172,299,064 in mm10. For each of the four H3K27ac libraries there is a signal track, a log2 ChIP/input track and a peaks track. The signal tracks reach 178 and 190 in the knockout libraries and 311 and 440 in the control libraries, with strong signal at the right end of the region. The bottom track shows the genes LOC115487369 and Atp1a2.
Figure 8.2: The Genome Browser page for the GSE155100 run, at a 28 kb region on chromosome 1 that includes Atp1a2. Each H3K27ac library has a signal track, a log2(ChIP/input) track and a peaks track. Each track is scaled to its own maximum. EpiNexus 1.2 interface; not covered by the book’s licence.

8.4 Reading the result: GSE155100

Figure 8.3 shows the average H3K27ac signal around the peak summits of our example.

Line chart of mean signal against distance from peak summit, from −5,000 to 5,000 bp. The four H3K27ac lines rise from about 27–30 RPKM at the edges to a sharp peak of about 125–145 RPKM at the summit. The four input lines are flat at about 9 RPKM.
Figure 8.3: Average H3K27ac signal (RPKM) within 5 kb of the peak summits, for the four H3K27ac libraries (solid lines) and their inputs (dashed lines). Figure from the EpiNexus report, run 93a23cb5.

Three things stand out:

  1. The signal is centred on the summits. All four H3K27ac libraries rise sharply at the summit, from about 27–30 RPKM at the edges to 125–145 RPKM. The signal stays above the input for several kilobases on each side.
  2. The inputs are flat. All four inputs stay at about 9 RPKM. So the peaks are not caused by background that is also in the input.
  3. One library is higher than the others. Control replicate 2 rises higher than the other three libraries. It also has the highest FRiP (44.6 %, Table 6.2). This is a difference between libraries, not between conditions: the other control replicate has the same height as the two knockout libraries.

Point 3 is important. RPKM corrects for depth, but not for how well each pull-down worked. If you compared conditions by eye on RPKM tracks, one strong library could make a whole condition look higher. Differential analysis handles this with normalisation and replicates (Chapter 9).

8.5 Pitfalls

WarningPitfall: comparing conditions by eye

Tracks are good for checking data, not for proving a difference. Differences in pull-down efficiency between libraries look like differences in signal. Use differential analysis to test differences.

WarningPitfall: autoscale in the browser

Genome browsers often scale each track to its own maximum. Two tracks then look equally high even when one has much more signal. Set the same scale for all tracks you compare.

WarningPitfall: RPKM tracks after a global change

RPKM assumes the total signal is the same in all samples. If a treatment removes a mark everywhere, RPKM hides the loss. Use spike-in scaled tracks in that case (Chapter 10).

8.6 Further reading

  • Ramírez et al. (2016) and deepTools developers (2026): deepTools, its normalisation methods, profiles and heatmaps.
  • Kent et al. (2010): the bigWig format.
  • Robinson et al. (2023) and Kent et al. (2002): the IGV and UCSC genome browsers.