Skip to content
chromosomix

Cis and trans per sequence

Identical to its reference in the validationCis and trans sums as cooltools’ expected_cis and expected_trans make them (Open2C 2024). doi:10.1371/journal.pcbi.1012067
In the app
Analysis panel, under 2D tasks: Cis and trans per sequence
Command
chromosomix cistrans
Reads
A contact map
Also known as
interchromosomal, trans ratio, karyotype, cis/trans

How much of each chromosome’s contact stays on it (cis) and how much reaches the others (trans), and which pairs of sequences touch more than their depth predicts: whether a library worked, and whether the karyotype is what the assembly says. A pair well above the rest is a translocation, a fusion, a centromere cluster or a Rabl configuration, depending on the organism.

Open a contact map, choose Cis and trans per sequence in the 2D tasks card of the Analysis panel, untick any sequence to leave out of the results, and press run. The drawer shows the tables, the bars and the square below.

The drawer after a run on a chicken map of DT40 cells in G2 at 1 Mb: the cis fraction of its 36 sequences as bars, most between 50 and 80 % and a gap for one with no contact, then the ranked pairs table and the square between sequences against indifference, pale among the large chromosomes and reddest among the small ones in its lower right.

The same run from a shell:

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

off-diagonal value decides what the pairs table and the square show. against indifference, the default, is the contacts between two sequences over what their own trans contacts predict: 1 is what any two sequences of that depth would give, and a fusion is far above it. raw contacts is the count, and per bin pair the count divided by the two sequences’ bin counts. least contact worth listing keeps a pair with a few stray reads out of the top of the table, and bars per sequence draws the cis fraction, the trans fraction, or both stacked.

ParameterTakesDefaultWhat it does
sequences--sequences <name,…>sequence names, comma-separatedEvery sequence of the file when left out.—
bars per sequence--bars <value>cis, trans or bothcisFractions of each sequence’s own contact, so a deep sequence and a shallow one compare. both — the two sum to one, so every bar is full and the split is the cis fraction.
off-diagonal value--normalise <value>enrichment, raw or binsenrichmentenrichment — contacts over what the two sequences’ own trans coverage predicts. 1 is what any two sequences of that depth would give; a fusion is far above it; raw — raw contacts; bins — divided by the two sequences’ bin counts.
least contact worth listing--minContacts <n>a whole number, at least 010Raw contacts, before any normalisation, which keeps one stray read out of the table’s top.
pairs to list--maxEdges <n>a whole number, at least 10500—
draw the square--matrix / --no-matrixon or offonSkipped above 512 sequences, where it is not a picture.
use balancing weights--no-balancea switchOn wherever the file carries balancing weights; --no-balance reads the raw counts.—
  • table: a table: TSV
  • curve: a curve: TSV
  • matrix: a matrix, a pileup or a heatmap: TSV

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

The table lists the sequences in the file’s order, each with its Bins, its Cis, Trans and Total contacts, its Cis fraction (the share of its contacts that stay on it), Trans / cis and Contacts per bin. The bars draw the cis fractions in the same order, from 0 to 100 %. A sequence with no contact has no fraction: a gap among the bars and a blank in the table, never 0.

The square has a row and a column per ticked sequence, against indifference coloured blue below 1 and red above it; each sequence against itself, orders of magnitude above the rest, is left out. A cell well above 1 is a pair of sequences that touch more than their depths predict.

The pairs table ranks the same pairs, strongest first: both sequences, their raw Contacts and, against indifference, the Expected count beside Observed / expected. It says how many pairs passed the threshold when there are more than it lists.

  • A summary, not a caller. Pairs are ranked against a stated null with no significance attached: a pair that stands out is not proof of a translocation.
  • Balanced where the file is, unless you pass --no-balance. The map report runs this task on the raw counts.
  • The square stops at 512 sequences, and the run says so; the pairs table and the bars have no such limit.

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