MAnorm2 models ChIP-seq samples as grouped by biological conditions. It
constructs a bioCond
object to represent each biological
condition, which contains a set of ChIP-seq samples belonging to the
condition.
Given multiple bioCond
objects, MAnorm2 could fit a single curve to
model the mean-variance dependence across genomic intervals.
Each genomic interval in
each bioCond
object that contains replicate samples serves as an
observation for the fitting process.
To account for the global difference in variation level of signal
intensities between two conditions, MAnorm2 involves a "variance ratio
factor" for each condition. Specifically, given two bioCond
objects associated with the same mean-variance curve
(say condition 1 and 2), we have
$$cov(Xi,1 | vi) = (r1 * vi) * Si,1$$
and
$$cov(Xi,2 | vi) = (r2 * vi) * Si,2$$
for any genomic interval \(i\) that is not
differentially represented between the two conditions. Here, \(Xi,j\)
is the vector of signal intensities of interval \(i\)
in condition \(j\),
\(rj\) is the variance ratio factor (a scalar) of condition \(j\),
\(vi\) is the unscaled variance (a scalar) of signal intensities in
interval \(i\), and \(Si,j\) is the structure matrix of interval \(i\)
in condition \(j\) (see bioCond
and setWeight
for a detailed description of structure matrix).
Under this formulation, varRatio
estimates the ratio of the
variance ratio factor of cond2
to that of cond1
, using the
intervals with invariant signal intensities across the two conditions. The
argument invariant
controls the set of such intervals.
By default, intervals
occupied by both conditions constitute the set. Alternatively, giving
invariant
a non-negative value
specifies these intervals to be invariant
that have a difference in average signal intensity between the two
conditions less than or equal to the value.
In most cases, you don't need to call this function directly. It's typically
used by fitMeanVarCurve
for fitting a mean-variance trend on a
set of bioCond
objects.