Matrix and score comparisons — FAN-C 0.9.1-beta documentation

# Matrix and score comparisons

FAN-C provides a central utility named `fanc compare` to compare Hi-C matrices and measures derived from them between two conditions, such as different cell types, treatments, etc.

    usage: fanc compare [-h] [-c COMPARISON] [-o OUTPUT_FORMAT] [-S] [-l]
                        [--log-matrix] [-Z] [-I] [-e] [-u] [-tmp]
                        input input output

## Positional Arguments

`input`

  Input matrix (e.g. Hic) files.

`output`

  Output ComparisonMatrix file.

## Named Arguments

`-c, --comparison`

  Type of comparison. Default: fold-change, other options are: difference

`-o, --output-format`

  Output format for region-based comparisons. Only relevant when using BED, GFF, or another region-based format as input.

`-S, --no-scale`

  Do not scale input matrices to the same number of valid pairs

`-l, --log`

  Log2-convert comparison values (AFTER the comparison)

`--log-matrix`

  Log2-convert matrices (BEFORE the comparison)

`-Z, --ignore-zero`

  Do not consider pixels where one matrix entry is zero

`-I, --ignore-infinite`

  Do not consider pixels where the comparison yields “inf”

`-e, --observed-expected`

  O/E transform matrix values before comparison. Only has an effect on matrix comparisons.

`-u, --uncorrected`

  Compare uncorrected matrices. Only has an effect on matrix comparisons.

`-tmp, --work-in-tmp`

  Work in temporary directory

## Compare matrices

When you provide `fanc compare` with two matrix files (e.g. Hic), these need to have the same binning (more specifically, they must have identical regions). The comparison is then done on a per-pixel basis. By default, the fold-change between pixels in the two matrices is calculated, but you can also calculate the difference using `-c difference` (you can also use “fc” and “diff” as short-hand).

The output is a FAN-C matrix object (that can be used like a Hic object in most cases) where entries are the fold-change (or difference) of pixels in both matrices. The comparison is matrix1/matrix2 (or matrix1 - matrix2). For fold-change comparisons, it might be useful to log-transform pixel values using `-l`. Also, if pixel entries are zero in one matrix, the fold-change could return NaN values. You can simply ignore comparisons where one or both pixels are zero using `-Z`. Or you can ignore infinite values resulting from a comparison using `-I`.

For a fair comparison, matrix entries are scaled to the total number of valid pairs on each chromosome. This corrects for different coverage of the two matrices. If you have chosen a normalisation that takes care of this directly, you can save some computation time by specifying `-S` to omit the calculation of a scaling factor.

## Compare scores

You can also use `fanc compare` to compare scores in any compatible region-based file, such as BED, GFF, BigWig, or any region-based FAN-C output (e.g. insulation scores). By default, the output will be a FAN-C `RegionsTable` object, but you can change this behavior using the `-o` option, which you can use to output BED, GFF, or BigWig files.

## Compare multi-score files

The output of `fanc insulation` and `fanc directionality` for multiple window sizes is a FAN-C multi-score file, which contains the insulation/directionality scores for multiple windows sizes at once. You can directly compare all scores against each other by providing two multi-score files as input to `fanc compare` - every window size will be compared independently and the comparisons output in yet another multi-score file.