## ----dependencies, warning=FALSE, message=FALSE-------------------------------
library(bnbc)
library(HiCBricks)
library(BSgenome.Hsapiens.UCSC.hg19)

hg19 <- BSgenome.Hsapiens.UCSC.hg19

## ----dataLoad-----------------------------------------------------------------
data(cgEx)
cgEx

## ----create-------------------------------------------------------------------
cgEx <- ContactGroup(rowData=rowData(cgEx),
                     contacts=contacts(cgEx),
                     colData=colData(cgEx))

## ----print--------------------------------------------------------------------
cgEx

## ----contactTriang------------------------------------------------------------
mat <- matrix(1:9, nrow = 3, ncol = 3)
mat[lower.tri(mat)] <- 0
mat
## Now we fill in the lower triangular matrix with the upper triangular
mat[lower.tri(mat)] <- mat[upper.tri(mat)]
mat

## ----data_to_bnbc, eval=FALSE, echo=TRUE--------------------------------------
#  ## Example not run
#  ## Convert upper triangles to symmetry matrix
#  MatsList <- lapply(upper.mats.list, function(M) {
#      M[lower.tri(M)] <- M[upper.tri(M)]
#  })
#  ## Use ContactGroup constructor method
#  cg <- ContactGroup(rowData = LociData, contacts = MatsList, colData = SampleData)

## ----cooler_get_genome_index--------------------------------------------------
coolerDir <- system.file("cooler", package = "bnbc")
cools <- list.files(coolerDir, pattern="mcool$", full.names=TRUE)

step <- 4e4

ixns <- bnbc:::getChrIdx(seqlengths(hg19)["chr22"], "chr22", step)

## ----cooler_get_cg------------------------------------------------------------
dir.create("tmp")

cool.cg <- bnbc:::getChrCGFromCools(files = cools,
                                    chr = "chr22",
                                    step = step,
                                    index.gr = ixns,
                                    work.dir = "tmp",
                                    exp.name = "example",
                                    coldata = colData(cgEx)[1:2,])
all.equal(contacts(cgEx)[[1]], contacts(cool.cg)[[1]])

## ----band_example-------------------------------------------------------------
mat.1 <- contacts(cgEx)[[1]]
mat.1[1000:1005, 1000:1005]
b1 <- band(mat=mat.1, band.no=2)
band(mat=mat.1, band.no=2) <- b1 + 1
mat.1[1000:1005, 1000:1005]

## ----logcpm-------------------------------------------------------------------
cgEx.cpm <- logCPM(cgEx)

## ----smoothing----------------------------------------------------------------
cgEx.smooth <- boxSmoother(cgEx.cpm, h=5)
## or
## cgEx.smooth <- gaussSmoother(cgEx.cpm, radius=3, sigma=4)

## ----bnbc---------------------------------------------------------------------
cgEx.bnbc <- bnbc(cgEx.smooth, batch=colData(cgEx.smooth)$Batch,
                  threshold=1e7, step=4e4, nbands=11, verbose=FALSE)

## ----sessionInfo, echo=FALSE--------------------------------------------------
sessionInfo()