Illustration: This gif shows how extruders (yellow) load onto chromatin at target loci and begin extrusion, forming features in Hi-C contact maps under different scenarios. In the right panel, a wider loading region (indicated in blue) causes a ‘boundary’ to appear in the Hi-C contact map due to collisions between extruders that act as a ‘barrier’. In contrast, the scenario on the left produces a ‘fountain’-like pattern.
This GitHub repository contains tools for simulating chromatin loop extrusion with targeted loading loci for extruders, using a dynamic model of CTCF.
Preprint available here: <>
The structure of this repository follows as below:
- Analysis: notebooks and code for analyzing simulations and experimental data. This includes:
- Target Cohesin Loading: Single site, multiple site, domains targets, and target loading with association rate
- Sequential Barriers: Tandem configuration of barriers
- Realistic Distribution of Barriers: Different scenarios with the random and regular configuration of barriers
- Scripts: codes for performing simulations, and quantitative analysis.The simulation.py represent the simulation script for the general case of boosted loading at the target (center of the lattice), with association rate (if there is a pause between landing on chromatin and extrusion state), and dynamic barriers (CTCFs) with adjustable binding and unbinding time.
- Target_Cohesin_Loading: accessory scripts for the simulations
- Polychrom: A toolkit for polymer simulations. (https://github.com/open2c/polychrom)
- OpenMM: A library for molecular simulations. (https://github.com/openmm/openmm)
- Open2C analysis packages (see https://github.com/open2c)
- Chromoscores analysis package for Hi-C maps (see https://github.com/hrahmanin/chromoscores)
First,
git clone https://github.com/Fudenberg-Research-Group/Target_cohesin_loading.git
after navigating to the folder:
pip install -e .
See ./scripts for relevant code.
-
One-Dimensional Lattice Simulation: Parameters such as the lifetime, velocity, and density of extruders can be adjusted in the configuration file located at
scripts/simulation.py. The target loading size and the loading rate relevant to the other sites can be determined. Barriers are specified as dynamic barriers, and their parameters such as binding time, unbound time, and/or the occupancy can be adjusted. -
Run the coarse-grained molecular dynamics simulations to model loop extrusion. Uses extruder positions from 1D lattice simulations as an input.
After running the simulations, the simulated trajectories can be processed to generate in silico ChIP-seq profiles, and contact maps. Scripts for data processing available in notebooks in./Analysis. Instructions are provided with the relevant python code.
Once the data is processed, observable features can be quantified, including:
- FRiP (Fraction of Reads in Peaks)
- Extruders vs barrier reads
See Jupyter notebooks in ./Analysis.
