Get the (decimal) combinatorial states of a list of univariate HMM models

Share:

Description

Get the combinatorial states of a list of models generated by callPeaksUnivariate. The function returns the decimal combinatorial states for each bin (see details for an explanation of combinatorial state).

Usage

1
combinatorialStates(hmm.list, binary = FALSE)

Arguments

hmm.list

A list of models generated by callPeaksUnivariate, e.g. 'list(model1,model2,...)'.

binary

If TRUE, a matrix of binary instead of decimal states will be returned.

Details

For a given model, each genomic bin can be either called 'unmodified' or 'modified', depending on the posterior probabilities estimated by the Baum-Welch. Thus, a list of models defines a binary combinatorial state for each bin. This binary combinatorial state can be expressed as a decimal number. Example: We have 4 histone modifications, and we run the univariate HMM for each of them. Then we use a false discovery rate of 0.5 to call each bin either 'unmodified' or 'modified'. The resulting binary combinatorial states can then be converted to decimal representation. The following table illustrates this:

bin modification state decimal state
model1 model2 model3 model4
1 0 0 1 0 2
2 0 0 0 0 0
3 0 1 1 0 6
4 0 1 1 1 7

Value

Output is a vector of integers representing the combinatorial state of each bin.

Author(s)

Aaron Taudt

See Also

dec2bin, bin2dec

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Get example BAM files for 3 different marks in hypertensive rat (SHR)
file.path <- system.file("extdata","euratrans", package='chromstaRData')
files <- list.files(file.path, full.names=TRUE, pattern='SHR.*bam$')[c(1,4,6)]
# Bin the data
data(rn4_chrominfo)
binned.data <- list()
for (file in files) {
 binned.data[[basename(file)]] <- binReads(file, binsizes=1000,
                                              assembly=rn4_chrominfo, chromosomes='chr12')
}
# Obtain the univariate fits
models <- list()
for (i1 in 1:length(binned.data)) {
 models[[i1]] <- callPeaksUnivariate(binned.data[[i1]], max.time=60, eps=1)
}
## Get the decimal representation of the combinatorial state of this combination of models
states <- chromstaR:::combinatorialStates(models, binary=FALSE)
## Show number of each state
table(states)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.