Skip to content

The LEF model

A loop-extrusion factor (LEF) is a protein complex that binds a chromatin polymer and extrudes a loop by walking two legs outward from a binding site. CTCF sites act as extrusion barriers, with different behavior depending on which side a leg meets them from. Upon unbinding, a LEF loads again elsewhere, simulating a steady state LEF density.

The concepts of backside eviction and effective distance draw heavily from Foldes et al., 2026 and the accompanying lefs-cython implementation.

The world

  • The lattice is a fixed 1D array of sites. Most are plain; some are CTCFs, each with a polarity (captures_from, its capture side) and a strength in [0, 1]. The lattice never changes during a run.
  • A LEF has two legs that face outward from where it bound: the left leg steps left, the right leg steps right, and neither steps backward.
  • A leg's mobility is Moving or Captured (held by a CTCF).
  • A moving leg is blocked while another leg sits on the next site ahead, or the lattice ends there. Blocking is derived from positions, not stored, so it lifts as soon as the obstruction moves.
  • A leg is protected while its partner is captured: it immune to eviction (see below).

Actions and their rates

Three kinds of action compete. Each fires after an exponential wait at its current rate; k below is the step rate, rates.step.

Step (per leg): the leg moves one site in the direction it faces. It is scheduled at rate k for a moving, unblocked leg.

Evict (per leg): when facing a CTCF's evict side, a leg may advance, but that advance can end in eviction instead of a translocation: the leg is ejected, and its LEF unbinds at once.

Respawn (per LEF): the LEF unbinds and rebinds at a site chosen by the spawn rule. Both legs rejoin the lattice on that one site. Respawn schedules at the first rate that applies:

  1. rates.respawn_captured if either leg is captured: capture protects the LEF;
  2. rates.respawn_blocked if either leg is blocked;
  3. rates.respawn, the basal rate, otherwise.

CTCFs

A CTCF's captures_from names its capture side; the other side evicts.

  • captures_from: Right: its right side captures, its left side evicts.
  • captures_from: Left: its left side captures, its right side evicts.

Capture. A leg stepping onto a CTCF from its capture side is captured with probability strength, else it passes through, still moving. A captured leg stays until its LEF respawns.

Eviction. A leg facing a CTCF from its evict side still advances at rate k, but each advance ends one of two ways: it passes onto the site (a Step) or it's ejected (an Evict). The two independent outcomes split k:

The CTCF Step Evict
Empty (1 − strength) · k: passes onto it, moving strength · k
Holds a captured leg never: every advance is an eviction k: the CTCF is certainly there
Holds a moving leg never: blocked, as traffic never

Two competing events at rates (1 − p)·k and p·k are exactly a step at k followed by a coin flip with probability p, so strength crudely models how often the site is occupied by CTCF, or more generally, is functional. Since eviction unbinds (respawns) the LEF in the same event, no transient state is ever stored.

Protection. A leg whose partner is captured ignores a CTCF's evict side: it steps onto an empty one at the full rate k, and a held one blocks it, as traffic. So once a LEF is held at one barrier, its free leg can extrude through the next one if it slips past the CTCF that would capture it.

Spawning

A spawn rule picks where a LEF rebinds. The built-in rule, UniformNonCtcf, rejection-samples until it finds an empty plain site (it needs 2n − 1 plain sites for n LEFs). Custom rules must implement the small Spawn trait. Unlike translocating legs, a spawned LEF landing on a CTCF may be captured there, but never evicted.

Validity

A world is checked as it's built, so it's always a state the dynamics could reach: legs on the lattice and not crossed, no two LEFs on one site (a LEF's own two legs may share one), and a captured leg only on a CTCF that could have captured it. A model also checks that its rates are positive and finite, and that its spawn rule can always place its LEFs.