Build a hierarchical tree based on the position of the variables.
a data frame with two columns specifying the variable names and the corresponding position or a list of data frames for multiple data sets. The first column is required to contain the variable names and to be of type character. The second column is required to contain the position and to be of type numeric.
a data frame or matrix specifying the second level of the hierarchical tree. The first column is required to contain the variable names and to be of type character. The second column is required to contain the group assignment and to be a vector of type character or numeric. If not supplied, the second level is built based on the data.
a logical indicating whether the values are sorted with respect to the size of the block. This can reduce the run time for parallel computation.
type of parallel computation to be used. See the 'Details' section.
number of processes to be run in parallel.
an optional parallel or snow cluster used if
The hierarchical tree is built based on recursive binary partitioning of consecutive variables w.r.t. their position. The partitioning consists of splitting a given node / cluster into two children of about equal size based on the positions of the variables. If a node contains an odd number of variables, then the variable in the middle w.r.t. position is assigned to the cluster containing the closest neighbouring variable. Hence, clusters at a given depth of the binary hierarchical tree contain about the same number of variables.
If the argument
block is supplied, i.e. the second level of the
hierarchical tree is given, the function can be run in parallel across
the different blocks by specifying the arguments
ncpus. There is an optional argument
parallel = "snow". There are three possibilities to set the
parallel = "no" for serial evaluation
parallel = "multicore" for parallel evaluation
using forking, and
parallel = "snow" for parallel evaluation
using a parallel socket cluster. It is recommended to select
RNGkind("L'Ecuyer-CMRG") and set a seed to ensure that
the parallel computing of the package
hierinf is reproducible.
This way each processor gets a different substream of the pseudo random
number generator stream which makes the results reproducible if the arguments
ncpus) remain unchanged. See the vignette
or the reference for more details.
The returned value is an object of class
consisting of two elements, the argument
"block" and the
"block" defines the second level of the hierarchical
tree if supplied.
"res.tree" contains a
for each of the blocks defined in the argument
If the argument
NULL (i.e. not supplied),
the element contains only one
Renaux, C. et al. (2018), Hierarchical inference for genome-wide association studies: a view on methodology with software. (arXiv:1805.02988)
1 2 3 4 5 6 7 8 9 10
# The column names of the data frames position and block are optional. position <- data.frame("var.name" = paste0("Var", 1:500), "position" = seq(from = 1, to = 1000, by = 2), stringsAsFactors = FALSE) dendr1 <- cluster_position(position = position) block <- data.frame("var.name" = paste0("Var", 1:500), "block" = rep(c(1, 2), each = 250), stringsAsFactors = FALSE) dendr2 <- cluster_position(position = position, block = block)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.