Working with Cooler and Juicer files — FAN-C 0.9.1-beta documentation

# Working with Cooler and Juicer files

FAN-C is fully compatible with Hi-C files from Cooler (`.cool` and `.mcool`) and Juicer (`.hic`). There is no need to convert them to FAN-C format, you can use them directly.

## Cooler `.cool` and `.mcool`

`.mcool` files are multi-resolution, i.e. they contain matrices for not just one, but multiple resolutions. Therefore there is a special `@` syntax for using these files, which allow you to set the resolution which should be used for this analysis:

    hic = fanc.load("/path/to/cooler.mcool@<resolution>")

For example, to load matrices at one megabase resolution

    hic = fanc.load("/path/to/cooler.mcool@1mb")

Both human-readable resolutions such as `100kb`, `1mb`, etc, and integers like `100000` and `1000000` are supported. Note that the resolution of your choice must be available in the object, which is generated outside of FAN-C.

Note

Currently, the Cooler file format specification does not intend for expected values to be stored in the file itself. A lot of FAN-C functions depend on expected values, but because they are not available in Cooler files they are generated on the fly each time a command is run. FAN-C tries to be clever about this by caching expected values for a single command, but expect some slowdowns due to this for some computations. If this becomes an issue, we recommend converting to FAN-C format (`fanc from-cooler`) or to Juicer `.hic`.

## Juicer `.hic` files

`.hic` files are multi-resolution, i.e. they contain matrices for not just one, but multiple resolutions. Therefore there is a special `@` syntax for using these files, which allow you to set the resolution which should be used for this analysis:

    hic = fanc.load("/path/to/juicer.hic@<resolution>")

For example, to load matrices at one megabase resolution

    hic = fanc.load("/path/to/juicer.hic@1mb")

Both human-readable resolutions such as `100kb`, `1mb`, etc, and integers like `100000` and `1000000` are supported. Note that the resolution of your choice must be available in the object, which is generated outside of FAN-C.

Juicer files also support multiple normalisation methods. Currently these are `VC` (vanilla coverage), `VC_SQRT` (square root vanilla coverage), `ICE` (ICE matrix balancing), and `KR` (Knight-Ruiz matrix balancing). You can choose between normalisation methods by adding another `@<norm>` to the file name like this:

    hic = fanc.load("/path/to/juicer.hic@1mb@VC")

Note that this only works for Juicer files, and is optional. If not specified, the KR norm will be used.