This skill calls topologically associating domain (TAD) boundaries from balanced Hi-C contact matrices using the diamond-window insulation score (cooltools insulation) and the multi-window TAD-separation score (HiCExplorer hicFindTADs). The key idea is that the boundary, not the domain, is the reproducible unit: a population TAD is the ensemble average over stochastic, cell-specific domains (Bintu 2018), and TAD number/size vary 2-5x across caller, resolution, and normalization with no ground truth (Forcato 2017; Zufferey 2018). The skill therefore favors the continuous boundary-strength track over hard domain partitions, runs a list of window sizes (the window is the scale dial), and compares conditions on the differential SCORE rather than by intersecting unstable domain calls.
pip install cooler cooltools bioframe
# For HiCExplorer:
conda install -c bioconda hicexplorer
The cooler MUST be balanced (a stored weight column) before insulation; analysis takes a single-resolution URI from an .mcool (file.mcool::/resolutions/10000).
Tell your AI agent what you want to do:
"I have a balanced .mcool at 10kb. Compute the insulation score at windows of 3x, 5x, 10x, and 25x the bin size, flag boundaries at the 100kb window, and save the strong boundaries (ranked by boundary_strength) as a BED file."
"Rank my TAD boundaries by boundary_strength at the 100kb window, drop any that fall in low-coverage bins by checking n_valid_pixels, and tell me how many strong boundaries survive."
"Run hicFindTADs on my corrected matrix, sweeping diamond depths from 30kb to 100kb in 10kb steps with FDR correction, and return the domains and boundaries BED files."
"I have insulation tracks for two conditions at matched resolution and depth. Compute the per-bin delta of the log2 insulation score at the 100kb window and tell me which boundaries strengthen or weaken - do NOT intersect domain partitions."
"Overlap my strong TAD boundaries with a CTCF ChIP-seq peak set and report what fraction of boundaries carry CTCF."
.mcool URI and confirm it is balanced.cooltools.insulation with a LIST of window sizes (3-25x the bin), producing log2_insulation_score_{W}, boundary_strength_{W}, and is_boundary_{W} per window.boundary_strength (not the per-dataset is_boundary flag) and inspect n_valid_pixels in sparse loci.hicFindTADs on the corrected matrix with a depth sweep and FDR correction for an alternative domain/boundary set.boundary_strength (valley prominence) for ranking and cross-sample comparison; is_boundary uses a per-dataset Li threshold and is NOT comparable across samples.