From a09987c22de822da546c3494d67da3fe1b62d7eb Mon Sep 17 00:00:00 2001 From: Lin Zhang Date: Thu, 29 Sep 2016 08:02:30 +0000 Subject: [PATCH] version 0.2.5 --- DESCRIPTION | 16 +++ MD5 | 19 +++ NAMESPACE | 10 ++ NEWS | 10 ++ R/BCubed_metric.r | 45 +++++++ R/DPBBM-internal.R | 126 +++++++++++++++++++ R/bbm_data_generate.r | 68 ++++++++++ R/choose_cluster_id_by_mode.r | 19 +++ R/dpbbm_mc_iterations.r | 108 ++++++++++++++++ R/dpbbm_mc_single_iter.r | 150 ++++++++++++++++++++++ R/dpbbm_update_likelihood.r | 9 ++ R/dpbbm_update_tau.r | 18 +++ R/generate_u_param.r | 15 +++ inst/doc/DPBBM_example.pdf | Bin 0 -> 173958 bytes inst/extdata/DPBBM_example.Rmd | 57 +++++++++ inst/extdata/DPBBM_example.html | 213 ++++++++++++++++++++++++++++++++ man/BCubed_metric.Rd | 46 +++++++ man/DPBBM-package.Rd | 30 +++++ man/bbm_data_generate.Rd | 87 +++++++++++++ man/dpbbm_mc_iterations.Rd | 105 ++++++++++++++++ 20 files changed, 1151 insertions(+) create mode 100644 DESCRIPTION create mode 100644 MD5 create mode 100644 NAMESPACE create mode 100644 NEWS create mode 100644 R/BCubed_metric.r create mode 100644 R/DPBBM-internal.R create mode 100644 R/bbm_data_generate.r create mode 100644 R/choose_cluster_id_by_mode.r create mode 100644 R/dpbbm_mc_iterations.r create mode 100644 R/dpbbm_mc_single_iter.r create mode 100644 R/dpbbm_update_likelihood.r create mode 100644 R/dpbbm_update_tau.r create mode 100644 R/generate_u_param.r create mode 100644 inst/doc/DPBBM_example.pdf create mode 100644 inst/extdata/DPBBM_example.Rmd create mode 100644 inst/extdata/DPBBM_example.html create mode 100644 man/BCubed_metric.Rd create mode 100644 man/DPBBM-package.Rd create mode 100644 man/bbm_data_generate.Rd create mode 100644 man/dpbbm_mc_iterations.Rd diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..fc64bc9 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,16 @@ +Package: DPBBM +Type: Package +Title: Dirichlet Process Beta-Binomial Mixture +Version: 0.2.5 +Date: 2016-09-21 +Author: Lin Zhang +Maintainer: Lin Zhang +Depends: R (>= 3.1.0) +Imports: tmvtnorm, VGAM, gplots, CEoptim +Description: Beta-binomial Mixture Model is used to infer the pattern from count data. + It can be used for clustering of RNA methylation sequencing data. +License: GPL (>= 2) +NeedsCompilation: no +Packaged: 2016-09-28 15:21:06 UTC; lin.zhang +Repository: CRAN +Date/Publication: 2016-09-29 08:02:30 diff --git a/MD5 b/MD5 new file mode 100644 index 0000000..c149123 --- /dev/null +++ b/MD5 @@ -0,0 +1,19 @@ +85deb92e49f8e80d11b68243156f69c3 *DESCRIPTION +fcd59f34600633e5b452a9bf4e4cb3d4 *NAMESPACE +788cd67fd78de3aafe4948565b0ff337 *NEWS +78f496dd38ec9c7aabeeb080122867d9 *R/BCubed_metric.r +04011008f379c8feaf9e067a109832d3 *R/DPBBM-internal.R +3a3617deef264facbf8f95f85a994d62 *R/bbm_data_generate.r +f5ff34ab69bca1f5b44a9a867ef977cc *R/choose_cluster_id_by_mode.r +fc08705e0767e837fa027a32304390d3 *R/dpbbm_mc_iterations.r +7957a39ac67fb28b507269aedd6eafaa *R/dpbbm_mc_single_iter.r +357b514d059c7822b73c99c3d4a3ccf0 *R/dpbbm_update_likelihood.r +6e29979330db426d7edd337475475716 *R/dpbbm_update_tau.r +92fe9c86d6e3d8a4ec99e895dcfaf640 *R/generate_u_param.r +1f2d26caa65c2917c620f1ad90244b06 *inst/doc/DPBBM_example.pdf +bee6206963313d57ffe574bc8a3390f7 *inst/extdata/DPBBM_example.Rmd +d5ef12392295c2229a4688452167ac99 *inst/extdata/DPBBM_example.html +bbcc89bad9adb4ebd99a0f5255cd3a30 *man/BCubed_metric.Rd +df26148160ed7c2c26598927518d999b *man/DPBBM-package.Rd +9e0994ac718f4cc6dea60772189ebe95 *man/bbm_data_generate.Rd +20c8fa19eb4a6e3d6cbe1d6b19fc1ff6 *man/dpbbm_mc_iterations.Rd diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..7b9c08e --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,10 @@ +exportPattern("^[[:alpha:]]+") +export(dpbbm_mc_iterations) +export(bbm_data_generate) +export(BCubed_metric) +import(tmvtnorm) +import(VGAM) +import(gplots) +importFrom(CEoptim,dirichletrnd) +importFrom("graphics", "par") +importFrom("stats", "cor", "rbeta", "rgamma", "rnbinom", "runif") diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..acf6947 --- /dev/null +++ b/NEWS @@ -0,0 +1,10 @@ + +version 0.0.13 (2016-09-12) +- bug fix + +version 0.1.0 (2016-09-18) +- pre-release + +version 0.2.0 (2016-09-21) +- added "Getting started with DPBBM package", including HTML, Rmd and PDF. + diff --git a/R/BCubed_metric.r b/R/BCubed_metric.r new file mode 100644 index 0000000..99c47ee --- /dev/null +++ b/R/BCubed_metric.r @@ -0,0 +1,45 @@ +########################################################################### +# calculate BCubed metric for clustering evaluation +# input : L, C, alpha +# L - real label of classes +# C - classification label of samples +# alpha - F metric parameter +# output: F metric score + +BCubed_metric <- function(L, C, alpha){ + snL <- length(L) + snC <- length(C) + + if(snL != snC){ + stop("length of category does not comply with length of cluster") + geterrmessage() + } + + # define the correctness of the relation between i and j + Correctness <- matrix(nrow = snL, ncol = snC) + ncluster <- c() + ncategory <- c() + for( i in 1:snL ){ + for( j in 1:snC ){ + + if((L[i] == L[j]) & (C[i] == C[j])) Correctness[i,j] <- 1 + else Correctness[i,j] <- 0 + } + } + + # define the num of each cluster + for(i in 1:snC){ + ncluster[i] <- length(which(C == C[i])) + } + + # define the num of each category + for(i in 1:snL){ + ncategory[i] <- length(which(L[i] == L)) + } + + Precision <- mean(rowSums(Correctness) / ncluster) + Recall <- mean(colSums(Correctness) / ncategory) + F <- 1/(alpha/Precision+(1-alpha)/Recall) + + return(F) +} \ No newline at end of file diff --git a/R/DPBBM-internal.R b/R/DPBBM-internal.R new file mode 100644 index 0000000..c9d54b1 --- /dev/null +++ b/R/DPBBM-internal.R @@ -0,0 +1,126 @@ +.Random.seed <- +c(403L, 1L, -1118861171L, -1550840121L, 440092590L, -1719578104L, +-62925301L, 1292639977L, 1706850744L, 451556966L, 647156481L, +1878381971L, 1004318274L, -236989964L, -681989129L, 1870008301L, +-479856508L, -880779606L, -1583361003L, -1688337233L, 389139126L, +1310181600L, -1989544925L, -1692095679L, -1661618640L, -430521266L, +-307508039L, 1043990731L, 801248634L, 774645884L, -1484948289L, +-2092516971L, -1042804308L, 2099979138L, 1853639005L, 547768407L, +208174910L, 1429956472L, 814500955L, 1507638201L, -1604105720L, +-1016508234L, -361658383L, 1490997795L, -121824654L, -2088656700L, +-778426745L, -1902829987L, -1433124780L, -1186454918L, 793147845L, +1023724319L, 1467213478L, -1731332048L, 1203792595L, 146292977L, +-783700960L, 1891252926L, -1975300407L, -2102899589L, 2002149962L, +-518580564L, 1283117487L, -1172899483L, -747215076L, -2027590798L, +1407485933L, -1599264729L, 1830236238L, -1599294296L, 2061056683L, +1688129481L, 1682940888L, -526630266L, 1933398881L, 1146443507L, +-96859806L, 382662612L, 1011057367L, -99792691L, 1943847012L, +674098762L, 1038154677L, 639256335L, -1321675754L, 890797760L, +1929980035L, 144098465L, -834934128L, 1085741422L, -1105479911L, +-709071957L, 1342273946L, -536175268L, -1520241569L, -1687917515L, +2077620172L, -2042649822L, 1289510269L, -1195610505L, -983312482L, +-2132052392L, -1504387141L, 1650012505L, -1960875288L, 1998271254L, +-1976191855L, -1127028413L, -603036590L, -1582975260L, -1987907289L, +-511254147L, 600860788L, 1000704602L, -135395675L, -598027073L, +-1693227194L, -1879620144L, 446044147L, 768929553L, -350556352L, +-1569876194L, 1552746473L, 806923547L, 2106230570L, -1255647156L, +-917393393L, -1728513211L, 183676156L, 286448466L, -1598866227L, +-1631830905L, 189400942L, 930265416L, -1352483509L, -2075909975L, +617398776L, 1488875814L, 558166593L, -1148339245L, -1309537918L, +1823997364L, -1045821129L, 2126306349L, 2056079684L, 189185642L, +-41797419L, 868324975L, 446645110L, 1905849504L, -137007773L, +-216662527L, 1531166064L, 144809230L, 965173113L, -257532149L, +94478394L, 637153084L, -656503681L, -1230331947L, 1394119148L, +213312322L, -99701603L, 1899484439L, 1508273278L, 1623835704L, +585835291L, 1227245689L, 425529544L, -731793162L, -857159375L, +-1710522013L, -752151758L, -628630396L, -850204473L, -2111941731L, +-780740844L, -215839302L, 764210181L, -754974241L, -609221530L, +1853047792L, 154991891L, 980312753L, -1752052384L, 1782334206L, +-1620869495L, -537548357L, -2139712630L, 963590764L, 921531375L, +-1585578971L, 1005642972L, -1934886222L, 52469165L, 429662567L, +-1381515634L, -816126104L, 525262699L, 755239177L, 201564056L, +-877533498L, -1740393439L, 1749819571L, -580027870L, -796738540L, +-687394665L, -591084915L, 242471844L, 1698688394L, -1984620043L, +1602548815L, 1769550678L, 1057729024L, 624231235L, 1814184673L, +439898192L, -1962118994L, 1810998361L, 1671910507L, -1983309350L, +1712300700L, 2137816223L, 383856373L, -247868532L, 1765040738L, +-642984387L, -1048266569L, 1088472926L, 492476788L, -1130393966L, +-361700768L, -564522868L, 172986720L, 757799138L, -1137857368L, +809215692L, -2125915652L, 693820338L, -288168976L, -935669308L, +868388184L, 1261805946L, 315240880L, -2101786180L, 1735327316L, +-1190700606L, -427678944L, 1959752636L, 1275916368L, -1852417054L, +500760424L, -607455412L, 1125027580L, 1611503346L, -1795080960L, +927140980L, 413765128L, -1821489734L, 1495266768L, 1943910380L, +-1575449708L, 2065647826L, -841882528L, 632130892L, -1787374816L, +333232770L, 975176168L, -105858068L, 800472636L, 109864562L, +235285360L, -776659676L, 2001926712L, -261279334L, 1164881360L, +-714750532L, -352096620L, 1832592002L, -1512874560L, -785467588L, +-1680002416L, 525334306L, 1976038920L, 961151756L, 1924514716L, +-1645634542L, -2115179648L, -1767613676L, -699534040L, -1831063494L, +897762256L, -623773076L, -1279751116L, -1846366062L, -1994589856L, +-1572348596L, -686172704L, 1954372514L, -1804248152L, -1288119156L, +-556338244L, 1978868850L, 195659760L, 1913037892L, -781055912L, +-837353414L, -1117550480L, 653131324L, -974035180L, 1391708866L, +557224672L, 2116338812L, -1512534832L, 66835362L, 280677928L, +1521189132L, 303433660L, -1556188878L, -1792288576L, -205794764L, +1762040520L, -693878086L, -1861432176L, -1470478612L, -272198060L, +-1783421294L, 951936800L, -584075316L, 715909344L, 1388613314L, +582980648L, 1741069228L, 2029423292L, -1947950606L, 98362928L, +-1750173788L, 1911570872L, -1586291878L, -972254064L, 1908284284L, +1635688212L, -63398590L, 1953484544L, -685261892L, -114450608L, +1040965922L, 966502984L, -1767843828L, -1040479140L, 228381138L, +-558557696L, -100830892L, 314122472L, -1750216454L, -707680560L, +895764780L, 1935292660L, -1083691630L, -24770208L, 561793036L, +722578144L, -826367390L, -70354264L, 1016035916L, -1140275332L, +-1878815438L, 2021058160L, 1826421572L, 324798424L, 1986764666L, +-1515803088L, 103471036L, 1334580820L, 460818498L, -199458656L, +1930751676L, 1870498256L, -1257479326L, -827391256L, 2114961612L, +-1565916676L, -479024654L, -1247511936L, 493942260L, 784557704L, +-713072838L, -2013887664L, 920941676L, 536377748L, 1502487634L, +-8033824L, 377240780L, -1112331104L, 1860408706L, -1008328472L, +-1054114068L, 1256820028L, -1959674766L, 938369136L, -287967196L, +1645816888L, -1760266470L, 167738576L, -1359210692L, -1490757740L, +-1158607998L, 1599189440L, 539577916L, -1901582960L, 646358562L, +1919589640L, 945260172L, 2077480732L, -1056300910L, 1287571840L, +458317332L, -1804775640L, -957345222L, -316271152L, -1936848532L, +-443767884L, 961595410L, 1640623584L, -1879097396L, -1892376352L, +1506793506L, -418676440L, -899203572L, 2073878332L, 411728882L, +2027924208L, -1464883644L, 1858839128L, -2011275462L, -1112345104L, +866242236L, 1461475604L, 1503394498L, -1185330080L, 1194161020L, +-174143536L, 1429913890L, -131757400L, -1682050164L, -1777751876L, +1765238578L, 732695104L, 760505524L, -506365368L, 170433978L, +1457519120L, 891865836L, 548686164L, -1365491438L, -1397080672L, +932186400L, 944433417L, -274153925L, 1075786636L, 399430170L, +-1068920177L, -1533854247L, -1503845778L, -1456541188L, -1179737235L, +-213496553L, 2062199008L, 1528139454L, -243540853L, 931535629L, +1029122874L, 380666744L, 1488884001L, -2013857325L, -110925580L, +1546086786L, 185941015L, 1439304417L, 1642976294L, 675311908L, +-2011303467L, -19649153L, -1783098344L, 1389050678L, 1125891523L, +666227717L, -1726156894L, -2146915440L, -627429575L, -647586837L, +-615314212L, -1535060726L, -1935074305L, 663674441L, 1723681758L, +953725836L, -236080291L, 612528999L, 339155088L, 753387182L, +162440027L, 820704061L, 1053981098L, -932211128L, -1410210191L, +-1491429405L, 215720676L, -1638188526L, -2063454745L, 986986929L, +-1000337418L, 1563546132L, 1473043749L, -1559171537L, 442866664L, +-1955992378L, 1324570995L, 890151381L, 1890645426L, -86373504L, +75812713L, -2010528805L, 1561979692L, -906431174L, -457602065L, +-833216903L, 1420552462L, -746850084L, -461476019L, 1465654967L, +-1447736256L, -585710306L, 1333092331L, -676322451L, -1985465894L, +-280024168L, -1154936319L, 1322632115L, -1840241964L, -558611486L, +-1322641801L, 1302597569L, -1598018234L, 1769012356L, 1028112949L, +-475968993L, 603491704L, 1435126870L, 1978077411L, -87591259L, +362756930L, -697609936L, 102181209L, 1772153547L, 116233020L, +860191594L, -19392097L, 1276661801L, -1685902658L, 830073772L, +35821821L, 2045285447L, 484471600L, 534901838L, 941201531L, -112550947L, +-1583840758L, 2059462440L, 1055750545L, 1440923523L, 861123716L, +-341413198L, -1006590457L, 203712081L, 463789526L, -375902028L, +-238392123L, -1636192753L, 1638065800L, 1953614758L, 1619002195L, +-1465545547L, -352392686L, 1921509344L, 1148402249L, -1900384133L, +-1814388404L, 98301146L, 1252422863L, -100261735L, -1850573650L, +-1014412868L, 1957966381L, 1308231127L, -656634848L, 1522266494L, +-1013981365L, -1757338291L, -807441542L, 265645496L, -861925535L, +-1031231725L, -2008629452L, 1861414210L, 8659287L, -1406276447L, +-1875053210L, -414427292L, 2013992597L, -139849793L, -1832955048L, +1590112630L, 1334293379L, -1083756091L, -1967237406L, 2032580432L, +-1087827335L, -1881631317L, -1305912548L, -1030509494L, -2087307201L, +-2080954231L, 726822046L, 1392908620L, 211732715L) diff --git a/R/bbm_data_generate.r b/R/bbm_data_generate.r new file mode 100644 index 0000000..98b02ca --- /dev/null +++ b/R/bbm_data_generate.r @@ -0,0 +1,68 @@ +########################################################################## +# generate data based on beta binomial mixture model +bbm_data_generate<- function(S=3, G=50, K=3, prob=rep(1,times=3), + alpha_band=c(2,6), + beta_band=c(2,6), + nb_mu=100,nb_size=0.2, plotf = FALSE, + max_cor=0.5){ + + prob = prob/sum(prob) + ff <- "repeat" + ct <- 1 # iteration limitation + while (ff=="repeat") { + # generate the starting point + # generate cluster ID + gamma <- sample.int(K, size = G, replace = TRUE, prob = prob) + # generate alpha + alpha <- exp(matrix(runif(K*S, min = alpha_band[1], max = alpha_band[2]),nrow=K)) + # generate_u_param(runif(S, min = alpha_band[1], max = alpha_band[2]), rep(4, S), n = K) + # alpha <- exp(abs(alpha)) + # + + # generate beta + beta <- exp(matrix(runif(K*S, min = beta_band[1], max = beta_band[2]),nrow=K)) + # generate_u_param(runif(S, min = beta_band[1], max = beta_band[2]), rep(4, S), n = K) + # beta <- exp(abs(beta)) + + mu <- alpha/(alpha+beta) # parameter for betabinomial + a <- abs(cor(t(mu))) + ID <- upper.tri(a,diag=F) + m <- a[ID] + # min_c <- min(m) + max_c = max(m) # keep the sampled data relatively correlated, not too high, not too low + if (max_c < max_cor) {ff = "go"; + # if (min_c > max_cor) {ff = "go"; + print(paste("after tried",ct,"times")) + print(paste("sample data generated with correlation smaller than:",max_cor))} + # print(paste("sample data generated with correlation larger than:",max_cor))} + if (ct > 1000) {ff = "go"; + print(paste("Fail to generate data with correlation smaller than:",max_cor)) + print("clusters can be highly correlated ...") + } + ct <- ct + 1 + } + + # generate the number of reads (total number of reads for samples) + n <- matrix(rnbinom(G*S, mu = nb_mu, size=nb_size),nrow=G) # generate the number of reads + alpha_g <- alpha[gamma,] + beta_g <- beta[gamma,] + + # generate the random number (number of reads for IP sample) + k <- matrix(rbetabinom.ab(n=G*S, size=n, shape1=alpha_g, shape2=beta_g, .dontuse.prob = NULL),nrow=G) + + if (plotf == TRUE) { + p <- k/n + par(mfrow= c(K,1)) + for (m in 1:K) { + plot( rep(1:S,sum(gamma==m)),t(p[gamma==m,]), main=m) + } + } + + + # save the data + mat=list(S=S, G=G, K=K, alpha_band=alpha_band, + beta_band=beta_band, nb_mu=nb_mu, nb_size=nb_size, + gamma=gamma, alpha=alpha, beta=beta, + k=k, n=n, c=n-k) + return(mat) +} \ No newline at end of file diff --git a/R/choose_cluster_id_by_mode.r b/R/choose_cluster_id_by_mode.r new file mode 100644 index 0000000..697f90f --- /dev/null +++ b/R/choose_cluster_id_by_mode.r @@ -0,0 +1,19 @@ +# function used to get the mode for each site +# +.getmode <- function(v) { + uniqv <- unique(v) + uniqv[which.max(tabulate(match(v, uniqv)))] +} + +.choose_cluster_id_by_mode <- function(param){ + + num_iter <- length(param) + num_site <- length(param[[num_iter]]$c) + c_mat <- matrix(NA, nrow= num_iter-1000, ncol = num_site) + for (i in 1:(num_iter-1000)){ + c_mat[i,] <- param[[i+1000]]$c + } + + c_final <- apply(c_mat, 2, .getmode) + return(c_final) +} \ No newline at end of file diff --git a/R/dpbbm_mc_iterations.r b/R/dpbbm_mc_iterations.r new file mode 100644 index 0000000..4362141 --- /dev/null +++ b/R/dpbbm_mc_iterations.r @@ -0,0 +1,108 @@ +# MC update for parameters +# input: x - input matrix 1 +# size.x - input matrix 2 +# param - latest parameters +# m - the number of empty cluster used in MC +# max_iter - the maximum iteration allowed +# debug - whether need to print the procedure +# output: param - updated parameters + +# author: Radford M. Neal +# title: Markov Chain Sampling Methods for Dirichlet Process Mixture Models +# published in: Journal of Computational and Graphical Statistics, vol. 9, No.2,pp.249-265 +# Algorithm 8 adopted here. +# define m, as used on page 262. + +dpbbm_mc_iterations <- function(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){ + + mat <- list() + + # first check the dimensional compatibility + if (dim(x)[[1]] != dim(size.x)[[1]] | dim(x)[[2]] != dim(size.x)[[2]]) { + stop("Dimension of matrix 1 should be the same as that of matrix 2!") + } + + if (dim(x)[[1]] < dim(x)[[2]]) { + warning("Number of features should be larger than number of samples for clustering") + } + + if (!is.na(pmatch(tau.method, "auto"))) + method <- "euclidean" + TAU.METHODS <- c("auto", "stable") + method <- pmatch(tau.method, TAU.METHODS) + if (is.na(method)) + stop("invalid update method for tau") + if (method == -1) + stop("ambiguous update method for tau") + + mat$k <- x + mat$n <- size.x + + S <- dim(x)[2] + + c <- c(1:dim(x)[1]) + c.cluster <- as.numeric(table(c)) + k <- length(c.cluster) + + u_alpha <- rep(0, S) + u_beta <- rep(0, S) + sigma_alpha <- rep(sig_alpha,S) + sigma_beta <- rep(sig_beta,S) + prior_dbeta <- list() + prior_dbeta$u_alpha <- u_alpha + prior_dbeta$u_beta <- u_beta + prior_dbeta$sigma_alpha <- sigma_alpha + prior_dbeta$sigma_beta <- sigma_beta + prior_dbeta$a <- a + prior_dbeta$b <- b + + Phi_alpha <- .generate_u_param(u_alpha,sigma_alpha,k, debug) + Phi_beta <- .generate_u_param(u_beta,sigma_beta,k, debug) + + Sigma_alpha <- matrix(rep(sigma_alpha,times = k),byrow = TRUE, ncol = S) + Sigma_beta <- matrix(rep(sigma_beta,times = k),byrow = TRUE, ncol = S) + + if (method == 1){ + tau <- .dpbbm_update_tau(c.cluster,prior_dbeta,1) + } + pi <- dirichletrnd(c.cluster + tau/k, 1) + likelihood <- c() + likelihood_total <- c() + for (index in 1:k){ + likelihood[index] <- (.dpbbm_update_likelihood(x[index,],size.x[index,],Phi_alpha[index,],Phi_beta[index,])) + } + likelihood_total[1] <- sum(pi * exp(likelihood[1:length(pi)])) + # likelihood_total[1] <- sum(likelihood[1:length(pi)]) + tmp <- list() + tmp$c <- c + tmp$k <- length(as.numeric(table(c))) + tmp$Phi_alpha <- Phi_alpha + tmp$Phi_beta <- Phi_beta + tmp$Sigma_alpha <- Sigma_alpha + tmp$Sigma_beta <- Sigma_beta + tmp$tau <- tau + tmp$likelihood <- likelihood + tmp$likelihood_total <- likelihood_total[1] + + + + param <- list() + param[[1]] <- tmp + k[1] <- length(as.numeric(table(param[[1]]$c))) + print("Gibbs sampling started. It will take a long time.") + print("Shown only the clustering information in the first 20 iterations.") + print(c(1, as.numeric(table(param[[1]]$c)))) + + for (iter in 2:max_iter){ + param[[iter]] <- .dpbbm_mc_single_iter(mat, param[[iter-1]], m, prior_dbeta, tau.method = method, debug = debug) + if (iter < 21) { + print(c(iter, as.numeric(table(param[[iter]]$c)))) + } + + k[iter] <- length(as.numeric(table(param[[iter]]$c))) + tmp <- param[[iter]]$k + } + #return(param) + cluster_result <- .choose_cluster_id_by_mode(param) + return(cluster_result) +} \ No newline at end of file diff --git a/R/dpbbm_mc_single_iter.r b/R/dpbbm_mc_single_iter.r new file mode 100644 index 0000000..1d1e230 --- /dev/null +++ b/R/dpbbm_mc_single_iter.r @@ -0,0 +1,150 @@ +# MC update for a single iteration +# input: data - +# param - latest parameters +# m - the number of empty cluster used in MC +# debug - whether need to print the procedure +# output: param - updated parameters + +# author: Radford M. Neal +# title: Markov Chain Sampling Methods for Dirichlet Process Mixture Models +# published in: Journal of Computational and Graphical Statistics, vol. 9, No.2,pp.249-265 +# Algorithm 8 adopted here. + +.dpbbm_mc_single_iter <- function(mat, param, m, prior_dbeta, tau.method, debug = FALSE){ + + x <- mat$k + size.x <- mat$n + S <- dim(x)[2] + c.length <- dim(x)[1] + + c <- param$c + Phi_alpha <- param$Phi_alpha + Phi_beta <- param$Phi_beta + Sigma_alpha <- param$Sigma_alpha + Sigma_beta <- param$Sigma_beta + tau <- param$tau + likelihood <- param$likelihood + + + u_alpha <- prior_dbeta$u_alpha + u_beta <- prior_dbeta$u_beta + sigma_alpha <- prior_dbeta$sigma_alpha + sigma_beta <- prior_dbeta$sigma_beta + sig_alpha <- prior_dbeta$sig_alpha + sig_beta <- prior_dbeta$sig_beta + a <- prior_dbeta$a + b <- prior_dbeta$b + + + # step one in Algorithm 8 + for (i in 1:c.length){ + if(debug) print("step one in Algorithm 8") + #if (debug) print(i) + c.cluster <- as.numeric(table(c)) + k <- length(c.cluster) + + # if(debug) print(c(i, k)) + if(c.cluster[c[i]] == 1){ + if(c[i] != k){ + # singleton for c[i] and c[i] is not the last cluster + # exchange c[i] with k, as well as Phi + id <- which(c == k) + c[id] <- c[i] + Phi_alpha[c[i],] <- Phi_alpha[k,] + Phi_beta[c[i],] <- Phi_beta[k,] + Sigma_alpha[c[i],] <- Sigma_alpha[k,] + Sigma_beta[c[i],] <- Sigma_beta[k,] + } + k <- k - 1 + } + h <- k + m + + # generate auxiliary parameters for c[i] + Phi_alpha <- rbind(Phi_alpha[1:k,], .generate_u_param(u_alpha, sigma_alpha, m, debug)) # G_0 + Phi_beta <- rbind(Phi_beta[1:k,], .generate_u_param(u_beta, sigma_beta, m, debug)) # G_0 + Sigma_alpha <- rbind(Sigma_alpha[1:k,], matrix(rep(sigma_alpha,times = m),byrow = TRUE, ncol = S)) + Sigma_beta <- rbind(Sigma_beta[1:k,], matrix(rep(sigma_beta,times = m),byrow = TRUE, ncol = S)) + + # probabilities to resample c[i] + if(debug) print("sampling the cluster label for current sample") + prop <- c() + for (index in 1:h){ + likelihood[index] <- exp(.dpbbm_update_likelihood(x[i,],size.x[i,],Phi_alpha[index,],Phi_beta[index,])) + } + c.cluster <- as.numeric(table(c[-i])) + prop[1:k] <- c.cluster*(likelihood[1:k]) + prop[(k+1):h] <- tau/m*(likelihood[(k+1):h]) + + c[i] <- sample(1:h,1,prob = prop) + if(c[i] > k + 1){ + # exchange all the settings to k+1 with c[i] + Phi_alpha[k+1,] <- .generate_u_param(u_alpha, sigma_alpha, 1, debug)#Phi_alpha[c[i],] + Phi_beta[k+1,] <- .generate_u_param(u_beta, sigma_beta, 1, debug)#Phi_beta[c[i],] + Sigma_alpha[k+1,] <- Sigma_alpha[c[i],] + Sigma_beta[k+1,] <- Sigma_beta[c[i],] + c[i] <- k + 1 + } + } + + param$c <- c + param$k <- length(as.numeric(table(c))) + param$Phi_alpha <- Phi_alpha + param$Phi_beta <- Phi_beta + param$Sigma_alpha <- Sigma_alpha + param$Sigma_beta <- Sigma_beta + + # update the c.cluster as well as k + c.cluster <- as.numeric(table(c)) + k <- length(c.cluster) + + if (tau.method == 1){ + # update \tau + tau <- .dpbbm_update_tau(c.cluster, prior_dbeta, tau) + param$tau <- tau + } + # update \pi + pi <- dirichletrnd(c.cluster + tau/k, 1) + param$pi <- pi + + # step 2 in Algorithm 8 + likelihood <- c() + for (i in 1:k){ + if(debug) print("step 2 in Algorithm 8") + # use metropolis hasting algorithm to sample Phi + # start point: Phi_xx[i,] + # expected end point: Phi_xx_new + idx <- which(c == i) + + # updating alpha + Phi_alpha_new <- .generate_u_param(Phi_alpha[i,], Sigma_alpha[i,], 1, debug) + # updating beta + Phi_beta_new <- .generate_u_param(Phi_beta[i,], Sigma_beta[i,], 1, debug) + + likelihood[i] <- .dpbbm_update_likelihood(x[idx,],size.x[idx,],Phi_alpha[i,],Phi_beta[i,]) + likelihood_new <- .dpbbm_update_likelihood(x[idx,],size.x[idx,], Phi_alpha_new, Phi_beta_new) + Fx <- dtmvnorm(Phi_alpha_new,mean=rep(0,S), sigma = diag(sigma_alpha),lower=rep(0,S))*dtmvnorm(Phi_beta_new,mean=rep(0,S), sigma = diag(sigma_beta),lower=rep(0,S)) + Fx_old <- dtmvnorm(Phi_alpha[i,],mean=rep(0,S), sigma = diag(sigma_alpha),lower=rep(0,S))* dtmvnorm(Phi_beta[i,],mean=rep(0,S), sigma = diag(sigma_beta), lower=rep(0,S)) + + + # accept the new cluster parameter + tmp <- runif(1) + if (tmp < exp(likelihood_new-likelihood[i])*exp(sum(Phi_alpha[i,]) + sum(Phi_beta[i,]) - sum(Phi_alpha_new) - sum(Phi_beta_new))*Fx/Fx_old) { + # accept the new value for Phi + Phi_alpha[i,] <- Phi_alpha_new + Phi_beta[i,] <- Phi_beta_new + + likelihood[i] <- likelihood_new + } + } + likelihood_total <- sum(pi * exp(likelihood[1:k])) + #likelihood_total <- sum(likelihood[1:k]) + + if(likelihood_total >= param$likelihood_total){ + # if likelihoold is larger this single iteration, accept the updated parameters + param$Phi_alpha <- Phi_alpha + param$Phi_beta <- Phi_beta + } + param$likelihood <- likelihood + param$likelihood_total <- likelihood_total + return(param) +} \ No newline at end of file diff --git a/R/dpbbm_update_likelihood.r b/R/dpbbm_update_likelihood.r new file mode 100644 index 0000000..1b5c38c --- /dev/null +++ b/R/dpbbm_update_likelihood.r @@ -0,0 +1,9 @@ +########################################################################## +# update likelihood for each cluster +# x - observations +# size.x - size of the observation +# Phi - parameters +.dpbbm_update_likelihood <- function(x,size.x,Phi_alpha,Phi_beta){ + likelihood <- sum(dbetabinom.ab(x=x,size=size.x,shape1 = exp(abs(Phi_alpha)),shape2 = exp(abs(Phi_beta)),log=TRUE)) + return(likelihood) +} diff --git a/R/dpbbm_update_tau.r b/R/dpbbm_update_tau.r new file mode 100644 index 0000000..f5eb12e --- /dev/null +++ b/R/dpbbm_update_tau.r @@ -0,0 +1,18 @@ +########################################################################## +# update tau parameters +.dpbbm_update_tau <- function(c.cluster, prior_dbeta, tau){ + # if(debug) print('resampling tau') + G <- sum(c.cluster) + k <- length(c.cluster) + a <- prior_dbeta$a + b <- prior_dbeta$b + + r <- rbeta(1,tau+1,G) + eta.r <- 1/(G*(b-log(r))/(a+k-1)+1) + if(runif(1) < eta.r){ + tau <- rgamma(1,shape=a+k,scale=b-log(r)) + } else{ + tau <- rgamma(1,shape=a+k-1,scale=b-log(r)) + } + return(tau) +} diff --git a/R/generate_u_param.r b/R/generate_u_param.r new file mode 100644 index 0000000..045d317 --- /dev/null +++ b/R/generate_u_param.r @@ -0,0 +1,15 @@ +########################################################################## +# generate mean for alpha and beta, also transform alpha and beta from N_alpha, N_beta +# u - mean vector +# sigma - covariance matrix +# n - # of samples +# debug - support debug print or not +## +## Note: should use rtmvnorm (truncated multivariate normal distribution) instead? (install.packages("tmvtnorm")) +.generate_u_param <- function(u, sigma, n, debug = FALSE){ + + N_param <- rtmvnorm(n, mean = u, sigma = diag(sigma),lower=rep(0, length = length(u)), + upper=rep( 10, length = length(u))) + + return(N_param) +} \ No newline at end of file diff --git a/inst/doc/DPBBM_example.pdf b/inst/doc/DPBBM_example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea5e237c774591028ecb5521cd34ac7fb4b333c7 GIT binary patch literal 173958 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 T&k86C21i1u`T13JRjL0Ec" +date: "September 21, 2016" +output: pdf_document +--- + +Load the package and generate a dataset. + +```{r, fig.width = 3, fig.height = 9} +library(DPBBM) +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 = TRUE, max_cor=0.5) +``` + +check the generated data. The color on the left shows the true clustering IDs of the site. + +```{r, fig.width = 4, fig.height = 5} +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. + +```{r} +cluster_label <- dpbbm_mc_iterations(mat$k, mat$n) +``` + +Show the cluster sizes. + +```{r} +table(cluster_label) +table(mat$gamma) +``` + +Compare the clustering result with the true clustering IDs. + +```{r, fig.width = 4, fig.height = 5} +id <- order(mat$gamma); +c <- cluster_label; +mat_ratio <- (mat$k+1)/(mat$n+1); +heatmap(mat_ratio[id,], Rowv = NA, Colv = NA, scale="none", + RowSideColors = as.character(cluster_label[id]), + xlab = "4 samples", ylab="100 RNA methylation sites") +``` + +As is shown, clustering results are consistent for most of the sites, but there exist a few misclassied sites as well. \ No newline at end of file diff --git a/inst/extdata/DPBBM_example.html b/inst/extdata/DPBBM_example.html new file mode 100644 index 0000000..b98e856 --- /dev/null +++ b/inst/extdata/DPBBM_example.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + +Getting started with DPBBM pcakge + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + +

Load the package and generate a dataset.

+
library(DPBBM)
+
## Warning: replacing previous import by 'splines::splineDesign' when loading
+## 'VGAM'
+
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 = TRUE, max_cor=0.5) 
+
## [1] "after tried 42 times"
+## [1] "sample data generated with correlation smaller than: 0.5"
+

+

check the generated data. The color on the left shows the true clustering IDs of the site.

+
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.

+
cluster_label <- dpbbm_mc_iterations(mat$k, mat$n)
+
## [1] "Gibbs sampling started. It will take a long time."
+## [1] "Shown only the clustering information in the first 20 iterations."
+##   [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+##  [36] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+##  [71] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+##  [1]  2  1  1  1 13  1  1  2  4 11  2  1  1  1  4  2  1  1  1  1  1  1  3
+## [24]  6  1  4  1  3  1  1  1  1  2  1  1  1 15  1  1  4
+##  [1]  3  1  2  1 28  1  2  2  1 12  1  1  2  1  1  1  6  2 29  1  3  1  1
+##  [1]  4  1  4 31 33  4  6  2  4  9  1  1  3  1
+##  [1]  5  1  9 31 37  4  2  2  1  2  9  2
+## [1]  6 14  4 31 42  7  1  1
+## [1]  7 16  1 30 30 17  1  2  3
+## [1]  8 13  1 30 26 27  2  1
+## [1]  9 14  1 31 34 20
+## [1] 10 23  1 30 25 15  4  2
+##  [1] 11 12  3 32 24 25  1  1  1  1
+## [1] 12  9  1 30 26 30  2  1  1
+##  [1] 13  4  2 31 12 34  1 12  2  2
+##  [1] 14  2  1 30 10 40  3 11  2  1
+## [1] 15  1  1 30  9 35  1 22  1
+## [1] 16 20  1 32  1 45  1
+## [1] 17 21  1 32  1 45
+## [1] 18 20  1 31  1 46  1
+## [1] 19 17  3 30  1 47  2
+## [1] 20 25  1 32  1 41
+

Show the cluster sizes.

+
table(cluster_label)
+
## cluster_label
+##  1  2  3 
+## 32 58 10
+
table(mat$gamma)
+
## 
+##  1  2  3 
+## 35 34 31
+

Compare the clustering result with the true clustering IDs.

+
id <- order(mat$gamma);
+c <- cluster_label;
+mat_ratio <- (mat$k+1)/(mat$n+1);
+heatmap(mat_ratio[id,], Rowv = NA, Colv = NA, scale="none",
+          RowSideColors = as.character(cluster_label[id]), 
+          xlab = "4 samples", ylab="100 RNA methylation sites")
+

+

As is shown, clustering results are consistent for most of the sites, but there exist a few misclassied sites as well.

+ + + + +
+ + + + + + + + diff --git a/man/BCubed_metric.Rd b/man/BCubed_metric.Rd new file mode 100644 index 0000000..169c0f1 --- /dev/null +++ b/man/BCubed_metric.Rd @@ -0,0 +1,46 @@ +\name{BCubed_metric} +\alias{BCubed_metric} +\title{ +BCubed_metric +} +\description{ +This is to evaluate the clustering method with Bcubed F sore. +} +\usage{ +BCubed_metric(L, C, alpha) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{L}{ real label of classes +%% ~~Describe \code{L} here~~ +} + \item{C}{ classification label of classes drawn by clustering method + %% ~~Describe \code{C} here~~ +} + \item{alpha}{ F metric parameter which used to average precision and recall + %% ~~Describe \code{alpha} +} +} +\value{ +The function returns Bcubed F score of the clustering method. The higher the value is, the better performance the clustering method can get. +} + +\details{ +The clustering evaluation method based on Bcubed F metric. +} + +\references{ +Reference coming soon! +} +\author{ Lin Zhang, PhD +%% ~~who you are~~ +} + +\examples{ +L <- c(1,1,2,1,1,2,2) +C <- c(2,2,1,2,2,1,1) +alpha <- 0.5 +Bcubed_score <- BCubed_metric(L, C, alpha) +Bcubed_score +} +\keyword{ statistical Inference } diff --git a/man/DPBBM-package.Rd b/man/DPBBM-package.Rd new file mode 100644 index 0000000..d7f5fcb --- /dev/null +++ b/man/DPBBM-package.Rd @@ -0,0 +1,30 @@ +\name{DPBBM-package} +\alias{DPBBM-package} +\alias{DPBBM} +\docType{package} +\title{ +DPBBM +} +\description{ +This package is developed for the beta-binomial mixture model based clustering +} +\details{ +\tabular{ll}{ +Package: \tab DPBBM\cr +Type: \tab Package\cr +Version: \tab 1.0.1\cr +Date: \tab 2016-06-26\cr +License: \tab GPL-2 \cr +} +} + +\references{ + +Coming soon! + +} + +\examples{ +# Please check the main function of the package +?dpbbm_mc_iterations +} \ No newline at end of file diff --git a/man/bbm_data_generate.Rd b/man/bbm_data_generate.Rd new file mode 100644 index 0000000..b804272 --- /dev/null +++ b/man/bbm_data_generate.Rd @@ -0,0 +1,87 @@ +\name{bbm_data_generate} +\alias{bbm_data_generate} +\title{ +bbm_data_generate +} +\description{ +This is to generate the simulation data based on Beta-bionomial mixture model +} +\usage{ +bbm_data_generate(S=3, G=50, K=3, prob=rep(1,times=3), + alpha_band=c(2,6), + beta_band=c(2,6), + nb_mu=100,nb_size=0.2, plotf = FALSE, + max_cor=0.5) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{S}{ Number of samples in the simulated data +%% ~~Describe \code{S} here~~ +} + \item{G}{ Number of sites in the simulated data +%% ~~Describe \code{G} here~~ +} + \item{K}{ Number of clusters that exist in the simulated data + %% ~~Describe \code{K} +} + \item{prob}{ the cluster weight for each cluster + %% ~~Describe \code{prob} prob should be a vector, which has the length of K +} + \item{alpha_band}{ the region used to generate the parameter of beta distribution alpha + %% ~~Describe \code{alpha_band} +} + \item{beta_band}{ the region used to generate the parameter of beta distribution beta + %% ~~Describe \code{beta_band} +} + \item{nb_mu}{ alternative parametrization via mean for Negative Binomial distribution + %% ~~Describe \code{nb_mu} +} + \item{nb_size}{ target for number of successful trials, or dispersion parameter (the shape parameter of the gamma mixing distribution) for Negative binomial distrition. Must be strictly positive, need not be integer. + %% ~~Describe \code{nb_size} +} + \item{plotf}{ option for whether plot the generated data according to clusters or not + %% ~~Describe \code{plotf} +} + \item{max_cor}{ The maximized correlation allowed for the simulated data, which used to guarantee the data is not highly correlated. + %% ~~Describe \code{max_cor} +} + +} +\value{ +The function returns simulation data generated based on beta binomial mixture model +} + +\details{ +The Dirichlet Process based beta-binomial mixture model clustering + +} + +\references{ +Reference coming soon! +} +\author{ Lin Zhang, PhD +%% ~~who you are~~ +} + +\examples{ +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 = TRUE, max_cor=0.5) +table(mat$gamma) +pie(mat$gamma) +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") +} + +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ statistical Inference } diff --git a/man/dpbbm_mc_iterations.Rd b/man/dpbbm_mc_iterations.Rd new file mode 100644 index 0000000..267e86c --- /dev/null +++ b/man/dpbbm_mc_iterations.Rd @@ -0,0 +1,105 @@ +\name{dpbbm_mc_iterations} +\alias{dpbbm_mc_iterations} +\title{ +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) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{x}{ a matrix of k for clustering, referring to IP reads in m6A seq data +%% ~~Describe \code{mat_1} here~~ +} + \item{size.x}{ a matrix of n for clustering, referring to the summation of IP reads and input reads in m6A seq data +%% ~~Describe \code{mat_2} here~~ +} + \item{m}{ a value indicating the auxiliary clusters used in DPBBM + %% ~~Describe \code{m} During auxiliary +} + \item{max_iter}{ maximized iterations in DPBBM + %% ~~Describe \code{max_iter} Maximized iterations allowed for DPBBM, max_iter should be larger than 1000 since we need 1000 burn in iterations +} + \item{a}{ Hyperparameter a for tau + %% ~~Describe \code{a} During auxiliary +} + \item{b}{ Hyperparameter b for tau + %% ~~Describe \code{b} During auxiliary +} + \item{tau}{ Prior for tau + %% ~~Describe \code{tau} If tau.method is "auto", tau will be updated in each iteration based on hyperparameters. If tau.method is "stable", tau will be fixed as the exact value. +} + \item{sig_alpha}{ variation for parameter alpha of beta distribution + %% ~~Describe \code{sig_alpha} During auxiliary +} + \item{sig_beta}{ variation for parameter beta of beta distribution + %% ~~Describe \code{sig_beta} During auxiliary +} + \item{tau.method}{ tau.method should be set to "auto" or "stable", refer to tau for detail description. + %% ~~Describe \code{tau.method} During auxiliary +} + \item{debug}{ whether DPBBM print the debug info or not. Default: FALSE + %% ~~Describe \code{debug} here~~ +} +} +\value{ +The function returns the cluster label withdrawn by DPBBM +} + +\details{ +The Dirichlet Process based beta-binomial mixture model clustering + +} + +\references{ +Reference coming soon! +} +\author{ Lin Zhang, PhD +%% ~~who you are~~ +} + +\examples{ +# 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)) +} +\keyword{ statistical Inference }