Skip to content
chromosomix

chromosomix 0.18.0

What changed in chromosomix 0.18.0, released on 30 October 2026.

  • A domain pileup over the expected, as coolpuppy draws it (§18.8). APA scaled on a feature set took every normalisation but observed / expected, refused from when the finished pileup was divided by one expected a grid cell. Each window is divided cell by cell at its own diagonals before it is resampled, so the scaled window has an expected too, and choosing observed / expected now draws coolpuppy’s rescaled local pileup (rescale=True, ooe=True) and nothing else: each domain scaled about its middle by its flank each side, snapped out to whole bins, stretched evenly onto the grid by linear interpolation (cooltools’ zoom_array) and every grid cell a dropped bin or a near diagonal reaches left blank, the axis one straight line from −f to 1 + f. Over GM12878’s 305 TADs on chr19 at 2 kb it is coolpuppy’s within 5·10⁻⁶ in every cell, the same 151 cells blank, which § 24 of the validation notebook now holds; Fig. 2’s TAD panel is drawn this way on both sides. The pinned layout stays with the distance-matched control and the raw pileup. Pairs scaled over the expected are still refused, there being no pileup of coolpuppy’s like that window to hold them to.
  • APA’s anchor on is the row below mode. It sat between features and mode, so choosing the scaled mode closed a row above the control that had just been used, and the fixed mode opened it again.

  • Base composition is eight times faster, every number the same (§18.8). Over mm10 in 10 kb bins, chromosomix composition took 53 s of CPU and takes 6.5 s, against 68 s for bioframe and Biopython on the same machine — 1.3 times faster than them before, ten times now — and every file it writes is byte for byte what it wrote. The bases are counted a word at a time, as additions of packed counts, where a branch on each base was one the processor could not predict; a reference read by range in the shell — a FASTA with its .fai, or a .2bit — is counted a few megabases at a time rather than a chromosome held at a time; and a FASTA read through its .fai has its line endings gathered out by the index’s own arithmetic, a line at a time, rather than looked for byte by byte. The counting is the app’s too, for a FASTA held whole, and the origin and terminus call’s.

  • P(s) over a mammalian map is two and a half times faster, every number the same (§18.8). With balancing on, how many bin pairs each separation could hold was counted by walking every sequence once per separation, which on a mouse map at 10 kb was six of the run’s eleven seconds; it is now the pairs less those touching a dropped bin, from running counts, plus the pairs of dropped bins, and takes four hundredths of a second. chromosomix expected over that map took 11.0 s of CPU and takes 4.1 s, both files it writes the same; the yeast map’s, whose sequences are short, is as it was.

  • chromosight’s pattern detection is two and a half times faster, every number the same (§18.8). Over the yeast Micro-C at 800 bp, loops took 25 s of CPU and take 10, against 42 s for chromosight 1.6.3 on the same machine, and the six files the run writes are row for row what they were. The correlation, nine-tenths of the time, sums four neighbouring windows at once from the band copied row by row; masks a cell by multiplying by 0 rather than by a branch; and scores every window inside the square — where the undetectable bins put nearly half — by the two mask rules that can apply there rather than the five that can at the frame. Each window adds the same cells in the same order, and a test holds every window to the one-window computation bit for bit.

  • A TSV or bedGraph longer than a string is written (§18.7). chromosomix composition --resolution 200 over hg38 wrote the GC content’s files and stopped at the GC skew’s TSV with failed: Invalid string length: every text writer joined its file into one string before writing it, and V8 makes none past about 512 MB. The writers now hand their rows over a block at a time, which the shell writes as they are formatted and the browser makes a Blob of, so a file is as long as the disk allows; every file is byte for byte what it was.
  • Base composition runs on a FASTA dropped with its .fai (§8.8, §18.8). A genome over 64 MB is read by range from its index, and the browser offered the task, priced it as free over residues the worker did not hold, and ended the run in a note that they were not here whole. It counts by range, as the shell already did, a few megabases a read and the same counts as the sequence held whole, and the line beside Run prices the read as the motif search’s does: every base, its bytes, and over a network a request a read. A Stop is seen between two reads.
  • A pileup’s centre is coolpuppy’s bin (§18.8).** APA cut its window about a feature’s midpoint rounded to the nearest base, which put a feature an odd number of bases long into the next bin wherever its midpoint sat half a base before a bin edge; coolpuppy floors it. The midpoint is now rounded down, as the metaplot’s centre already was, for a feature set’s anchors and a loaded loop set’s alike. On Fig. 2’s pileup of consecutive CTCF peaks at 2 kb, one peak of 2,106 moved cells up to 1.4 % from coolpuppy’s; every cell is now within 5·10⁻⁶.

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