Skip to content
chromosomix

HiC score

Not yet compared with its referenceThe HiC score of Bignaud et al. 2024, after their R script. doi:10.1038/s41594-023-01178-2
In the app
Analysis panel, under 2D tasks: HiC score
Command
chromosomix hicscore
Reads
A contact map
Also known as
contact density, local contacts

The HiC score is the mean contact a bin makes with its nearest neighbours along the chromosome: how tightly a stretch is folded against itself, as Bignaud et al. (2024) read bacterial maps at 2 kb, which the default is set for. Where diamond insulation and the directionality index, ratios blind to depth, ask where a domain ends, this is a mean of the map’s own values: a region that has lost its local structure has a smaller HiC score and an unremarkable insulation score.

Open a contact map, choose HiC score in the 2D tasks card of the Analysis panel (4), tick the sequences and press run.

One track joins the Tracks card of the Annotations panel, marked *: HiC score · 3 diag, in contacts. The drawer notes how far the line reaches on this file and how many cells each value averages.

An E. coli contact map at 2 kb from 1.0 to 2.0 Mb with its HiC score, HiC score · 3 diag, in a lane to the left of the map on a scale of 0 to 0.369.

The same run from a shell:

Terminal window
chromosomix hicscore <map> [--<parameter> <value> …] --out <dir>

diagonals sets the reach: how many diagonals the bin’s line crosses, counting the main one. At 3, five cells reaching two bins each way, it is the bacterial reading at 2 kb; a map with much larger domains wants more. It is the authors’ R script’s num_diagonals plus one. diagonals to ignore matters more than its default of 0 suggests (below).

ParameterTakesDefaultWhat it does
General
diagonals--diagonals <n>a whole number, at least 13How many diagonals the bin’s line crosses, counting the main one — at 3 that is five cells, reaching two bins each way.
sequences--sequences <name,…>sequence names, comma-separatedEvery sequence of the file when left out.—
use balancing weights--no-balancea switchOn wherever the file carries balancing weights; --no-balance reads the raw counts.—
Quality
diagonals to ignore--ignoreDiags <n>a whole number, at least 000 counts every cell, including the bin’s contact with itself, which at three diagonals is most of the score and is where self-ligation lands.
minimum coverage of the line--minValid <n>a number, 0 to 10.5Below this fraction of usable cells the bin gets no score at all.
  • profile: a value per bin: TSV, bedGraph and bigWig

On the command line every file goes into --out as <file stem>.hicscore.<output>.<ext>, and each TSV opens with # lines naming the build, the file and every parameter that produced it.

Each bin’s value is the mean of the cells on its own line through the diagonal, out to diagonals − 1 bins either way: every cell on it involves the bin.

The value is in the map’s own units, counts on a raw map and balanced values on a balanced one, so it follows how deeply the map was sequenced. Read it against the rest of the same map: high where a stretch is folded tightly on itself, low where it has lost its local structure.

The first and last diagonals − 1 bins of a linear sequence are gaps, not values fading towards zero, and the drawer says so; a sequence ticked circular in the Chromosomes table has no ends. A cell the balancer dropped counts as nothing, and the mean is never scaled up for it. A bin with less of its line usable than minimum coverage of the line asks has no value.

At three diagonals the main diagonal is the bulk of each line. It is where self-ligation and undigested fragments land, and on a balanced map the one place the weights were never fitted. A peak carried by that cell is carried by the protocol: run it again with diagonals to ignore at 1 and see whether what you read survives.

The validation does not run it yet; at one locus of an E. coli map, the mean here times the number of cells is the authors’ R script’s sum to the last digit.

Documentation of chromosomix v0.20.0 · built from 40ec1ec · source