I found this explanation of cross-correlation metric in ChIP-seq.

Now, the definition of Pearson's correlation coefficient between two random variables $X$ and $Y$ is $$\rho_x = \frac{Cov(X,Y)}{\sigma_x\sigma_y}$$ where $Cov(X,Y) = \frac{1}{n}\sum_{i=1}^n(X_i-\mu_x)(Y_i-\mu_Y)$ and $\sigma_x = \sqrt{\frac{1}{n}\sum_{i=1}^n(X_i-\mu_x)^2}$ (similarly for $Y$).

Given this definition, I am not sure what is being computed when the above link says:

Strand cross-correlation is computed as the Pearson’s linear correlation between the minus strand and the plus strand, after shifting minus strand by k base pairs

Following my above notation, what would $X$ be? What would $Y$ be?


1 Answer 1


I'd read that page in a little more detail. They give an intuition here:

The concept is that if you have a read that maps uniquely on strand x at position $i$ (where $i$ is the starting position); it follows that you will have a read mapping to strand y at position $i+r$. Because the way the counts are stored, with the number of reads starting at each coordinate, you will get a bunch of reads at $x[i]$ and a bunch of reads at $y[i+r]$ that are $r$ distance away from each other.

It's not super well explained, but one presumes based on the explanations that relevant values of $r$ are the read length (how long individual reads are reading off the fragments) or the fragment length (how big the pieces of DNA that go into sequencing library preparation are on average, usually due to sonication or nucleosome positioning, based on how the cells are treated). Thinking about how ChIP-Seq works, you expect that the DNA is in a bunch of fragments of some length, and then you sequence each end of the fragment (of a chemically induced length) on opposite strands with reads (of a technologically specified length):

read1     >>>>>
fragment  --------------------- (length r)
read2                     <<<<<
positions i                   i+r

So you expect that at a certain distance corresponding to the average fragment length, there will be a correlation between reads mapping to the + and - strands some distance apart.

In terms of the statistical method, $X$ and $Y$ are the counts of reads at every position ($X$) and the counts of reads on the opposite strand at every position + some value $r$ ($Y$). Looking at their docs, you then vary $r$ systematically to obtain various datasets $X$ and $Y_r$ (a different $Y$ for each value of $r$) and see at which values you obtain maximal correlations, as shown in their figure where the X axis is $r$ and the Y axis is the corresponding correlation value:

cross-correlation plot varying <span class=$r$" />


I am less clear on why there is the artefactual "phantom" peak of read length (in addition to the more interesting peak from fragment length), as they call it. That is not well explained by the resource that you linked. I attempted to search the site you linked for more information about the utility of the cross-correlation method, but I was not able to find anything relevant. I find it plausible that read length would introduce some sort of signal, but the mechanism is not obvious (to me).

But as far as I can tell, fragment length is the quantity of interest that is most readily apparent from this method.

If you are interested in the mechanics of paired-end sequencing library preparation that lead to the architecture shown in the monospaced text figure, I would suggest looking into documentation on that subject (one random example from Illumina). If you are interested in chromatin immunoprecipitation (ChIP), which forms the input to the sequencing library prep, I would suggest going and looking at wikipedia. Those are rather different and more fundamental questions, regarding which there exists abundant reference material.

  • $\begingroup$ Thank you so much - that is very helpful! That is why there is a peak at the fragment length, for example - because it is when the shifted read1 overlaps most with read2? $\endgroup$
    – algebroo
    Oct 25, 2022 at 18:35
  • $\begingroup$ Moreover, how is read-length different from fragment-length? You seem to use it interchangeably but the graph has two different labels for them. $\endgroup$
    – algebroo
    Oct 25, 2022 at 18:37
  • $\begingroup$ Lastly, from what you wrote, I am assuming that read1 and read2 are on opposite strands, rather than the same one? You wrote this is because of how ChIP-seq works, but I was also curious about why this is the case, in case you can help me understand that too (as I have highlighted better here - biology.stackexchange.com/questions/110658/…). Thank you again - you have been very helpful! $\endgroup$
    – algebroo
    Oct 25, 2022 at 18:43
  • $\begingroup$ see update @AryanDugar $\endgroup$ Oct 25, 2022 at 19:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .