Using Mola
Mola is a sequence-to-distribution model. Give it 10 kb of human DNA and it returns single chromatin molecules, each a different state that sequence can take, rather than one average profile.
Three ways in
- Open Mola shows the KIF11 promoter at once: molecules already generated for that window, together with the observed Fiber-seq reads that span it.
- I'm Feeling Lucky opens a random human promoter from a pool of 455 promoter-centred DNase-hypersensitive sites on chromosomes 8 to 10, each already sampled 500 times and selected for close agreement between generated and observed accessibility.
- Variant demo compares the two alleles of a CTCF-motif mutation, chr17:19,447,245 CC>TT, with 500 molecules generated per allele.
Anything else is a run of your own: type a region, choose Reference or Variant, press Run.
The region
Regions use the Seqstr grammar: [hg38]chr:start-end strand, with 0-based, half-open coordinates. The genome defaults to hg38 and the strand to +.
[hg38]chr10:92587000-92597000 +
Mola takes exactly 10,000 bp. A longer interval is cropped to its central 10 kb; a shorter one is rejected. Raw sequences are accepted too, and segments joined with ; are concatenated. A single genomic interval keeps genomic coordinates, genes and observed reads; raw or concatenated sequences are shown in sequence coordinates without them.
Reference and variant
Reference generates molecules for the sequence as it is. Variant adds a box for mutations, one per line, in Seqstr form: @chr pos REF ALT with absolute 0-based positions. The reference allele is checked against the sequence, and alleles may differ in length, so insertions and deletions work. The two boxes become one Seqstr string, shown under the form and sent to the model.
[hg38]chr7:5525600-5535600 +
@chr7 5530108 A T
A variant run generates the reference and the variant with the same random draws per molecule, so the differences between the two stacks come from the sequence change alone. The page then shows both mean accessibility curves overlaid, a difference track, the two molecule stacks on one axis, and three co-accessibility maps: reference, variant and their difference.
Running
Type how many molecules to sample, 10 to 500, and press Run. Every Run on the server uses a fresh random seed, so sampling the same region again gives a different draw; the seed travels in the link. On a window that is already sampled (the default promoter, a lucky pick, the variant demo), Run with fewer molecules than loaded shows a random subset of them instead, a new draw each press, and the draw is reproducible from the link. Co-accessibility needs many molecules: correlations from 50 are noisy, and the paper's maps use 500. Sampling happens on the lab's GPU server: about 35 seconds per 100 molecules, and roughly two and a half minutes for 200 reference plus 200 variant molecules, including the footprint calls. The job state is shown while you wait, Cancel stops it, and the address bar carries the job, so the result can be reopened or shared later. Pre-sampled windows (the default promoter, the lucky pool and the variant demo) open without any waiting.
The tracks
| Ruler and genes | RefSeq curated transcripts collapsed to one row per gene: thick boxes are coding exons, thin boxes untranslated regions, chevrons give the strand. |
|---|---|
| Sequence | One colour per base across the view; the letters appear once zoomed to about 150 bp. In variant mode a second row shows the variant sequence with the changed bases in red. |
| Accessibility | The chosen accessibility signal averaged over all molecules at each position: the m6A density per A/T base, or the fraction of molecules with a FiberHMM accessible patch (pick one under Accessibility signal), with the transcription start marked; switch on TF footprints under Show to add their fraction. This is the population average, the quantity a sequence-to-function model would predict. |
| Molecules | One row per generated molecule; m6A is shown by default, and the FiberHMM calls (accessible patches, nucleosomes, TF footprints) are switched on under Show. accessiblenucleosomeTF footprintm6A Hover a row for its coordinates. |
| Co-accessibility | For every pair of 20-bp bins, the correlation across molecules of being accessible: positive where two sites open together, negative where they alternate. Colours follow the manuscript by default (the fall map from 0 to 0.6, difference maps ±0.4); Co-accessibility colours can switch to an automatic range set by the strongest off-diagonal values in view, shared across the matrices shown. The colour bar states the range either way. Click a cell to zoom to that pair of loci. |
| Observed molecules | Real Fiber-seq reads (GM12878) spanning the window, drawn in the same colours for a direct comparison. They are available for the pre-sampled windows. |
Navigation
- Drag across any track to zoom into the selection; double-click to zoom in at a point.
- Shift-drag to pan. ⌘ or Ctrl + mouse wheel, or a trackpad pinch, zooms at the cursor; a plain wheel scrolls the page.
- Click a co-accessibility cell to zoom to that pair of loci.
- Back or Backspace returns to the previous view;
0shows the whole window;+and−zoom in and out. The?in the results header repeats these gestures.
Downloading the data
The Download menu in the results header saves what is on screen, straight from the browser, for the reference, the variant and the observed reads when they are loaded:
| Molecules (JSON) | Every molecule with its m6A positions (offsets from the molecule start) and FiberHMM calls: accessible patches and nucleosomes as [start, length], TF footprints as [start, length, name]; plus the sequence, the Seqstr string and the model. |
|---|---|
| FiberHMM calls (BED) | One line per call, named version.molecule.type, in hg38 coordinates (0-based, half-open). |
| Mean tracks (TSV) | Per base: the number of molecules covering it and the fractions with m6A (per A/T), an accessible patch, a nucleosome and a TF footprint. |
| Co-accessibility (TSV) | The correlation matrix of the current view at the current bin size, one block per version. |
Sharing a view
The address bar always describes what is on screen, so a copied link reopens the same view:
mola.html?seqstr=…&mode=variant | a region, with its mutations, in either mode |
|---|---|
mola.html?job=… | a finished run on the server |
mola.html?lucky | a random pre-sampled promoter; ?lucky=<key> names one |
mola.html?demo=ctcf | the CTCF-motif variant comparison |
How the molecules are made
Mola generates each molecule as a pattern of m6A marks along the 10 kb, the signal a Fiber-seq experiment reads from a single chromatin fiber. FiberHMM then calls the nucleosomes, accessible patches and transcription-factor footprints on every generated molecule exactly as it does on real reads, so generated and observed fibers are summarised the same way. Mean accessibility and co-accessibility are computed from those calls.
Cite
Wang R, Jin J, Pott S, Zhou J. Predicting single-molecule chromatin distribution from DNA sequence. bioRxiv (2026). Preprint
Code for running and training the model: github.com/jzhoulab/mola. The trained model is archived at Zenodo, 10.5281/zenodo.23108712.
Mola · Zhou lab, University of Chicago. Questions and problems: open an issue on the site repository or write to the lab.