Hi-C with imaging: GEM-FISH

GEM-FISH (Abbas et al. 2019, Nat Commun 10:2049) builds one model of a chromosome from its Hi-C map and the distances measured by chromatin tracing in the same cell type: first the TADs as beads, placed by Hi-C contacts and the FISH distances between TAD centres, then each TAD at bin resolution with its FISH radius of gyration. U-Chrom’s re-implementation runs on PyTorch.

import uchrom.datasets as ds
from uchrom.fea import rebin_map, compare_distances
from uchrom.recon.fish import reconstruct_gem_fish

hic = ds.load("rao2014_imr90_chr21")                         # Rao 2014 IMR90 Hi-C, hg19
fish = ds.load("bintu_imr90_hg19")                           # Bintu 2018 IMR90 tracing, hg19
rebin_map(hic, "bulk", resolution=30_000, anchor=fish.bins["start"].min())   # on the 30 kb segments
model = reconstruct_gem_fish(hic, contacts="bulk_30kb", chrom="chr21", fish=fish)
compare_distances(model, fish).scores                        # correlation with the imaged distances

Without fish the FISH terms are dropped and the result is a Hi-C-only model — the comparison the tutorial makes. Hi-C and imaging must come from the same cell type (and the same genome assembly).

Tutorial

API: GEM-FISH.