Contents

1 Introduction

Hi-C is a sequencing-based molecular assay designed to measure intra and interchromosomal interactions between the DNA molecule. In particular, the identification of Topologically-Associated Domains (TADs), that is, of regions of the genome in which physical interactions are frequent, provides insight into the three-dimensional organization of a genome [1].

Hi-C data are in the form of two-dimensional contact maps, i.e., matrices whose \(i,j\) entry quantifies the intensity of the physical interaction between two genome regions \(i\) and \(j\) at the DNA level. In this vignette, we demonstrate the use of adjclust::hicClust to perform adjacency-constrained hierarchical agglomerative clustering (HAC) of Hi-C contact maps. The output of this function is a dendrogram, which can be cut to identify TADs. The algorithm used for adjacency-constrained (HAC) is described in the third chapter of [2].

library("adjclust")
library("HiTC")

2 Loading and displaying a sample Hi-C contact map

The data set hic_imr90_40_XX is an object of class HTCexp which has been obtained from the HiTC package [3]. It is a contact map corresponding to chromosome X vs chromosome X.

data("hic_imr90_40_XX", package = "adjclust")

Now we have a look at the data.

HiTC::mapC(hic_imr90_40_XX)

3 Using hicClust

hicClust operates directly on objects of class HTCexp

fit <- hicClust(hic_imr90_40_XX)

It is also possible to work on binned data. Below we choose a bin size of \(5 \times 10^5\):

binned <- HiTC::binningC(hic_imr90_40_XX, binsize = 5e5)
HiTC::mapC(binned)

fitB <- hicClust(binned)
fitB
## 
## Call:
## adjClust(mat = x, type = "similarity", h = h)
## 
## Cluster method   : adjClust 
## Number of objects: 304

The output is of class chac. In particular, it can be plotted as a dendrogram silently relying on the function plot.dendrogram:

plot(fitB)

Moreover, the output contains an element named merge which describes the successive merges of the clustering, and an element gains which gives the improvement in the criterion optimized by the clustering at each successive merge.

head(cbind(fitB$merge, fitB$gains))
##      [,1] [,2]          [,3]
## [1,] -117 -118  0.000000e+00
## [2,] -115 -116  0.000000e+00
## [3,] -114    2  0.000000e+00
## [4,]    3    1 -6.258488e-08
## [5,]   -1   -2  9.644000e+03
## [6,] -100 -101  9.915000e+03

4 Other types of input

Contacts maps can also be stored as objects of class Matrix::dsCMatrix, or as plain text files. These types of input are also accepted as first argument to hicClust.

5 References

[1] Dixon J.R., et al (2012). Topological domains in mammalian genomes identified by analysis of chromatin interactions. Nature, 485(7398), 376.

[2] Dehman A. (2015). Spatial clustering of linkage disequilibrium blocks for genome-wide association studies. Phd Thesis, Université Paris Saclay.

[3] Servant N., et al (2012). HiTC: Exploration of High-Throughput ‘C’ experiments. Bioinformatics, 28(21), 2843-2844.

6 Session information

sessionInfo()
## R version 3.4.1 (2017-06-30)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: OS X El Capitan 10.11.6
## 
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats4    parallel  stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
## [1] HiTC_1.20.0          GenomicRanges_1.28.5 GenomeInfoDb_1.12.2 
## [4] IRanges_2.10.3       S4Vectors_0.14.4     BiocGenerics_0.22.0 
## [7] adjclust_0.5.2       BiocStyle_2.4.1     
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_0.12.13               compiler_3.4.1            
##  [3] RColorBrewer_1.1-2         XVector_0.16.0            
##  [5] bitops_1.0-6               tools_3.4.1               
##  [7] zlibbioc_1.22.0            digest_0.6.12             
##  [9] evaluate_0.10.1            lattice_0.20-35           
## [11] Matrix_1.2-11              DelayedArray_0.2.7        
## [13] yaml_2.1.14                GenomeInfoDbData_0.99.0   
## [15] rtracklayer_1.36.4         stringr_1.2.0             
## [17] knitr_1.17                 Biostrings_2.44.2         
## [19] snpStats_1.26.0            rprojroot_1.2             
## [21] grid_3.4.1                 Biobase_2.36.2            
## [23] survival_2.41-3            XML_3.98-1.9              
## [25] BiocParallel_1.10.1        rmarkdown_1.6             
## [27] magrittr_1.5               splines_3.4.1             
## [29] backports_1.1.0            Rsamtools_1.28.0          
## [31] htmltools_0.3.6            matrixStats_0.52.2        
## [33] GenomicAlignments_1.12.2   SummarizedExperiment_1.6.4
## [35] stringi_1.1.5              RCurl_1.95-4.8