Learn R Programming

DPBBM (version 0.2.5)

dpbbm_mc_iterations: dpbbm_mc_iterations

Description

This is the Markov Chain Monte Carlo iterations for DPBBM

Usage

dpbbm_mc_iterations(x, size.x, m = 1, max_iter = 2000, a = 0.1, b = 1, tau = 1, sig_alpha = 25/9, sig_beta = 25/9, tau.method = "auto", debug = FALSE)

Arguments

x
a matrix of k for clustering, referring to IP reads in m6A seq data

size.x
a matrix of n for clustering, referring to the summation of IP reads and input reads in m6A seq data

m
a value indicating the auxiliary clusters used in DPBBM
max_iter
maximized iterations in DPBBM
a
Hyperparameter a for tau
b
Hyperparameter b for tau
tau
Prior for tau
sig_alpha
variation for parameter alpha of beta distribution
sig_beta
variation for parameter beta of beta distribution
tau.method
tau.method should be set to "auto" or "stable", refer to tau for detail description.
debug
whether DPBBM print the debug info or not. Default: FALSE

Value

The function returns the cluster label withdrawn by DPBBM

Details

The Dirichlet Process based beta-binomial mixture model clustering

References

Reference coming soon!

Examples

Run this code
# generate a simulated dataset
set.seed(123455)
S <- 4
G <- 100
K <- 3
nb_mu <- 100
nb_size <- 0.8
prob <- c(1,1,1)
mat <- bbm_data_generate(S=S,G=G,K=K,prob=prob,alpha_band=c(2,6),beta_band=c(2,6),
                     nb_mu=nb_mu,nb_size=nb_size, plotf = FALSE, max_cor=0.5) 
# check generated data
id <- order(mat$gamma);
c <- mat$gamma[id]
mat_ratio <- (mat$k+1)/(mat$n+1);
heatmap(mat_ratio[id,], Rowv = NA, Colv = NA, scale="none", RowSideColors=as.character(c), 
        xlab = "4 samples", ylab="100 RNA methylation sites")

## Run the DPBBM result. This step takes a really long time.
## You are suggested to check the pre-prepared example for a quick start
F=system.file("extdata", "DPBBM_example.html", package="DPBBM")
browseURL(url=F)

## Alternatively
# cluster_label <- dpbbm_mc_iterations(mat$k, mat$n)
# # Show the clustering result. 
# table(cluster_label)
# pie(table(mat$gamma))
# 
# # Compare the clustering result with the true clustering IDs.
# id <- order(mat$gamma);
# c <- cluster_label
# r <- rainbow(3, start = 0, end = 0.3)
# mat_ratio <- (mat$k+1)/(mat$n+1);
# heatmap(mat_ratio[id,], Rowv = NA, Colv = NA, scale="none",
#         RowSideColors = as.character(cluster_label[id]), 
#         margins = c(3,25))

Run the code above in your browser using DataLab