## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, 
                      message=FALSE, 
                      warning=FALSE)

## -----------------------------------------------------------------------------
library(methFuse)

## -----------------------------------------------------------------------------
k0_file <- system.file("examples/k0.tsv.gz", package = "methFuse")
k1_file <- system.file("examples/k1.tsv.gz", package = "methFuse")

K0 <- read.table(k0_file, header = TRUE)
K1 <- read.table(k1_file, header = TRUE)

head(K0)

## -----------------------------------------------------------------------------
segment_result <- fuse.segment(
  as.matrix(K0),
  as.matrix(K1),
  chr = sub("\\..*$", "", rownames(K0)),
  pos = as.integer(sub("^.*\\.", "", rownames(K0))),
  method = "BIC"
)

head(segment_result$summary)

## -----------------------------------------------------------------------------
head(segment_result$betas_per_segment)

## ----fig.height=10, fig.width=8-----------------------------------------------
plot(segment_result, segments_to_plot = 1:nrow(segment_result$summary))
plot(segment_result, segments_to_plot = 50:60)

## ----bsseq-example, eval = requireNamespace("bsseq", quietly = TRUE)----------
library(bsseq)

set.seed(1)
M <- matrix(c(sample(0:10, 1000, TRUE),
              sample(50:60, 1000, TRUE),
              sample(0:10, 1000, TRUE),
              sample(20:30, 1000, TRUE))
            , nrow = 1000, byrow = T)
Cov <- M + matrix(sample(50:60, 4000, TRUE), nrow = 1000)
  
  
bs <- BSseq(
    chr = rep("chr1", 1000),
    pos = seq_len(1000),
    M = M,
    Cov = Cov,
    sampleNames = colnames(M)
  )

res <- fuse.segment(bs)
head(res$summary)

## ----methrix-example, eval = requireNamespace("methrix", quietly = TRUE)------
library(methrix)

data(methrix_data, package = "methrix")

res <- fuse.segment(methrix_data)
head(res$summary)


## -----------------------------------------------------------------------------
tree <- fuse.cluster(as.matrix(K0), 
                     as.matrix(K1),
                     chr = sub("\\..*$", "", rownames(K0)), 
                     pos = as.integer(sub("^.*\\.", "", rownames(K0))))
names(tree)
head(tree$merge)
head(tree$height)

## -----------------------------------------------------------------------------
optimal_num_of_segments <- number.of.clusters(tree, ncol(K0), 'BIC')
optimal_num_of_segments

## -----------------------------------------------------------------------------
segments <- fuse.cut.tree(tree, optimal_num_of_segments)
head(segments, 100)

## -----------------------------------------------------------------------------
result <- fuse.summary(as.matrix(K0), 
                       as.matrix(K1), 
                       chr = sub("\\..*$", "", rownames(K0)), 
                       pos = as.numeric(sub("^.*\\.", "", rownames(K0))), 
                       segments)

head(result$summary)

## -----------------------------------------------------------------------------
head(result$betas_per_segment)

## -----------------------------------------------------------------------------
identical(segment_result$summary, result$summary)

## -----------------------------------------------------------------------------
identical(segment_result$betas_per_segment, result$betas_per_segment)

## ----fig.width=8, fig.height=3------------------------------------------------
plot(result, segments_to_plot = 1:50)

