4C profile from an anchor
- In the app
- Analysis panel, under 2D tasks: 4C profile from an anchor
- Command
chromosomix fourc- Reads
- A contact map
- Also known as
- virtual 4C, v4C, viewpoint, anchor
A virtual 4C profile is one row of the map: everything one locus, the anchor, touches, as a track along the genome that you can export as a bigWig. It is computed once, over the anchor’s sequence or the whole genome, so panning does not change it.
Running it
Section titled “Running it”Open a contact map, choose 4C profile from an anchor in the 2D tasks card of the Analysis
panel, and name the anchor: type a locus, 1-based and inclusive as IGV and samtools write it, such as
IV:1,200,001-1,210,000, or a sequence’s name; or press pick on map and Shift-drag along either
axis of the map, which fills the box instead of zooming. Leave cis only on to read the anchor’s own
sequence, or turn it off for the whole genome. Press run.
The profile is a row of the Tracks card in the Annotations panel, marked * and named after its
anchor, 4C · IV:1,200,001-1,210,000, then (with trans), · O/E, · per coverage or · anchor
excluded as they apply. Its bigWig, bedGraph and TSV are in the row’s settings. The same anchor run
again replaces its row.

The same run from a shell:
chromosomix fourc <map> --anchor <locus> [--<parameter> <value> …] --out <dir>Parameters
Section titled “Parameters”normalisation: by P(s) divides each bin by what its separation from the anchor predicts on the anchor’s own sequence, taking distance out of the shape; by coverage divides it by how much the bin is seen at all, centred on one, so a bin every contact misses is not a dip; by P(s) and coverage does both; none, the default, is the contacts as counted, as in a 4C bigWig. exclude anchor region leaves the anchor and one bin either side empty.
| Parameter | Takes | Default | What it does |
|---|---|---|---|
anchor--anchor <locus> | a locus, display form | None. | — |
normalisation--normalise <value> | none, coverage, ps or ps+coverage | none | none — contacts as they were counted; coverage — each bin divided by how much it is seen at all, so a dead bin is not a dip; ps — observed over expected at that separation, from this sequence’s own decay; ps+coverage — both divisions: the decay out of the shape, the depth out of each bin. |
cis only--cis / --no-cis | on or off | on | On, this reads one sequence and costs a handful of requests; off, it walks the pixel table for the contacts leaving that sequence. |
exclude anchor region--excludeAnchor / --no-excludeAnchor | on or off | off | Leave the anchor and one bin either side empty, so its contact with itself does not set the scale. |
use balancing weights--no-balance | a switch | On wherever the file carries balancing weights; --no-balance reads the raw counts. | — |
What it writes
Section titled “What it writes”- profile: a value per bin: TSV, bedGraph and bigWig
On the command line every file goes into --out as <file stem>.fourc.<output>.<ext>, and each TSV opens with # lines naming the build, the file and every parameter that produced it.
Reading the result
Section titled “Reading the result”Raw, a bin’s value is its contacts with the anchor, summed over the anchor’s bins, balanced where the file has weights. On a log scale it is a triangle with its apex at the anchor, and the contacts you are after are bumps on its flanks.
Over P(s), the profile is centred on 1: a bin above 1 touches the anchor more than its distance predicts. Off the anchor’s sequence, the expected is the mean of what the anchor reaches on the other sequences.
Dips left on a raw map are mostly coverage, such as repeats and bins with few restriction sites, exactly where a spurious contact is most tempting. by coverage takes them out, most usefully on a raw map, since balancing does much the same.
The anchor’s own bins are the brightest by orders of magnitude and set an autoscaled track’s scale; exclude anchor region leaves them out.
Gaps and zeros. With cis only on, every bin off the anchor’s sequence is a gap, not 0. A bin with no stored contact with the anchor is 0, and a bin the balancer dropped is a gap.
Compared with cooltools
Section titled “Compared with cooltools”In the validation, over the whole genome, the profile is cooltools.virtual4c’s to float32, except at
the viewpoint itself and where cooltools leaves a bin without a value: chromosomix writes 0 there.
Documentation of chromosomix v0.20.0 · built from 40ec1ec · source
