Learn R Programming

CNVrd2 (version 1.10.2)

groupBayesianCNVs: groupBayesianCNVs

Description

Cluster segmentation scores into different groups by using prior information from one population.

Usage

groupBayesianCNVs(xData, nGroups, lambda0, sd0, alpha0, distanceBetweenGroups, inits = NULL, precisionOfGroupMeans = 3000, sdOftau = NULL, n.adapt = 100, nUpdate = 1000, n.iter = 20000, thin = 5, n.chains = 1, heidel.diag = FALSE, leftLimit = NULL, rightLimit = NULL)

Arguments

xData
a numeric vector of observations (segmentation scores).
nGroups
an integer indicating a number of groups.

lambda0
Prior means of groups.

sd0
Prior standard deviations of groups.

alpha0
Prior parameters for mixing proportions.

distanceBetweenGroups
Prior value for the distance between groups.

inits
A list of initial values of parameters.
precisionOfGroupMeans
Prior parameter of group means (default = 3000).

sdOftau
Prior parameter of the standard deviations of group precisions.

n.adapt
the number of iterations for adaptation (rjags's parameter)

nUpdate
the number of iterations for burn-in process.

n.iter
the number of iterations for sampling (rjags's parameter)

thin
thinning interval for monitors (rjags's parameter)

n.chains
the number of parallel chains for the model (rjags's parameter, default = 1)

heidel.diag
If heidel.diag = TRUE then Heidelberger and Welch's convergence diagnostic is used.
leftLimit
Values which are less than this value will be allocated to the smallest group.
rightLimit
Values which are larger than this value will be allocated to the largest group.

Value

mcmcChains
A list of mcarray objects for means, standard deviations, proportions
m1
Means of groups
s1
Standard deviations of groups
p1
Proportions of groups
allGroups
A data.frame includes samples and their corresponding groups
hTest
Results of Heidelberger and Welch's convergence diagnostic

Details

This function assumes that users already know the information of groups' means, standard deviations; the distances between groups.

References

Martyn Plummer (2013). rjags: Bayesian graphical models using MCMC. R package version 3-10. http://CRAN.R-project.org/package=rjags.

Lunn, David J., et al. WinBUGS-a Bayesian modelling framework: concepts, structure, and extensibility. Statistics and Computing 10.4 (2000): 325-337.

See Also

groupCNVs

Examples

Run this code
## Not run: 
# data(ccl3l1data)
# 
# xyEuro <- ccl3l1data[grep("CEU|TSI|IBS|GBR|FIN", ccl3l1data[, 2]), ]
# 
# names(yEuro) <- rownames(xyEuro)
# 
# ##Clustering European segmentation scores into group: 5 groups were chosen
# 
# objectClusterEuroCCL3L1 <- new("clusteringCNVs", x = yEuro, k = 5)
# 
# europeanCCL3L1Groups <- groupCNVs(Object = objectClusterEuroCCL3L1)
# 
# ##Obtain prior information
# #Means
# lambda0 <- as.numeric(europeanCCL3L1Groups$m)
# #SD
# sdEM <- as.numeric(europeanCCL3L1Groups$sigma)
# #Proportions
# pEM <- as.numeric(europeanCCL3L1Groups$p)
# 
# 
# ###Calculate the distances between groups
# for (ii in 2:5){print(lambda0[ii] - lambda0[ii-1])}
# 
# ###All segmentation scores
# ccl3l1X <- ccl3l1data$SS
# names(ccl3l1X) <- as.character(ccl3l1data$Name)
# range(ccl3l1X)
# 
# 
#  
# ##Set prior information: 
# #prior for the sd of the means of groups: 
# #5 was set for the third group = 2 CN
# sd <- c(1, 1, 5, 1, 1) 
# ccl3l1X <- sort(ccl3l1X)
# ###Data
# xData <- ccl3l1X
# ###Number of groups
# nGroups <- 10 
# ###prior for means of groups
# lambda0 <- lambda0 
# ###Prior for mixing proportions
# alpha0 <-  c(3, 29, 44, 18, 7,  5, rep(2, nGroups -length(pEM) -1))
# ##Prior for the distances between groups
# distanceBetweenGroups = 0.485
# 
# sdEM = sdEM
# 
# 
# ##Adjust standard deviation for the fifth group
# sdEM[5] <- sdEM[4]
#  
#  set.seed(123)
#  groupCCL3L1allPops <- groupBayesianCNVs(xData = xData, nGroups = nGroups,
#                                          lambda0 = lambda0,
#                                          sd0 = sdEM, alpha0 = alpha0,
#                                          distanceBetweenGroups = distanceBetweenGroups,
#                                          sdOftau = sd,
#                                         rightLimit = 4)
# 
# 
# 
# ## End(Not run)

Run the code above in your browser using DataLab