runibic: runibic: parallel row-based biclustering algorithm for...

Description Usage Arguments Details Value Functions Author(s) References See Also Examples

View source: R/runibic.R

Description

runibic is a package that contains much faster parallel version of one of the most accurate biclustering algorithms, UniBic. The original method was reimplemented from C to C++11, OpenMP was added for parallelization.

If you use this package, please cite it as: Patryk Orzechowski, Artur Pa<c5><84>szczyk, Xiuzhen Huang, Jason H Moore; "runibic: a Bioconductor package for parallel row-based biclustering of gene expression data"; Bioinformatics, 2018, bty512, doi: https://doi.org/10.1093/bioinformatics/bty512

Each of the following functions BCUnibic, BCUnibicD, runibic perform biclustering using UniBic biclustering algorithm. The major difference between the functions is that BCUnibicD require a discretized matrix, whilst BCUnibic (or runibic) could be applied to numeric one.

Usage

1
2
3
4
5
6
7
BCUnibic(x = NULL, t = 0.95, q = 0, f = 1, nbic = 100, div = 0,
  useLegacy = FALSE)

BCUnibicD(x = NULL, t = 0.95, q = 0, f = 1, nbic = 100, div = 0,
  useLegacy = FALSE)

runibic(x = NULL, t = 0.95, q = 0, f = 1, nbic = 100, div = 0, useLegacy=FALSE)

Arguments

x

numeric or integer matrix (depends on the function)

t

consistency level of the block (0.5-1.0].

q

a double value for quantile discretization

f

filtering overlapping blocks (default 1 do not remove any blocks)

nbic

maximum number of biclusters in output

div

number of ranks for up(down)-regulated genes: default: 0==ncol(x)

useLegacy

boolean value for using legacy parameter settings

Details

For a given input matrix we first perform discretization and create index matrix using runiDiscretize function. The discretization is performed taking into account quantiles of the data. The resulting index matrix allows to detect order-preserving trends between each pair of the rows irrespective to the order of columns. After the ranking, the matrix is split by rows into subgroups based on the significance of the future biclusters. In each of the chunks, we calculate pairwise calculations of Longest Common Subsequence LCS between all pairs of the rows. LCS calculations are performed using dynamic programming and determine the longest order-preserving trend between each pair of the rows. After partitioning the matrix strict order-preserving biclusters are determined and later expanded to approximate-trend biclusters within cluster function.

This package provides 3 main functions: runibic and BCUnibic perform UniBic biclustering algorithm on numeric data, whilst BCUnibicD could be applied to integer ones. The latter two methods are compatible with Biclust class.

Value

Biclust object with detected biclusters

Functions

Author(s)

Patryk Orzechowski patryk.orzechowski@gmail.com, Artur Pa<c5><84>szczyk panszczyk.artur@gmail.com

References

Wang, Zhenjia, et al. "UniBic: Sequential row-based biclustering algorithm for analysis of gene expression data." Scientific reports 6 (2016): 23466.

Patryk Orzechowski, Artur Pa<c5><84>szczyk, Xiuzhen Huang, Jason H. Moore: "runibic: a Bioconductor package for parallel row-based biclustering of gene expression data", bioRxiv (2017): 210682, doi: https://doi.org/10.1101/210682

See Also

runiDiscretize set_runibic_params BCUnibic-class BCUnibicD-class unisort

Examples

1
2
3
4
5
6
7
8
9
A <- matrix(replicate(100, rnorm(100)), nrow=100, byrow=TRUE)
runibic(A)
BCUnibic(A)
BCUnibic(A, t = 0.95, q = 0, f = 1, nbic = 100, div = 0)
B <- runiDiscretize(A)
runibic(B)
BCUnibicD(B, t = 0.95, q = 0, f = 1, nbic = 100, div = 0)
biclust::biclust(A, method=BCUnibic(), t = 0.95, q = 0, f = 1, nbic = 100, div = 0)
biclust::biclust(B, method=BCUnibicD(), t = 0.95, q = 0, f = 1, nbic = 100, div = 0)

runibic documentation built on Nov. 8, 2020, 5:38 p.m.