Basically this is an auxiliary function used by heattile: It extracts the cluster indices from a biclust object and optimizes the order of the rows and columns in the data matrix with respect to these clusters. Uses the Measure of Effectiveness as an optimization criterion. See ME and optME.
getIs2(bic, dim, nstart = 20, solver = "nn", cpr = FALSE,
cpc = TRUE, adjust.dist = FALSE)
The biclust object.
The dimension of the matrix.
Number of starting points for the TSP solver in optME.
Whether or not to combine identical rows.
Whether or not to combine identical columns.
If TRUE
the ME values used as a distance matrix for the TSP are slightly adjusted by adding a the hamming distance divided by a constant.
This keeps identical cases together (which is only necessary if cpr = FALSE
or cpc = FALSE
) and also preserves the orders within such groups.
The cluster indices with respect to the optimized row and column orders in form of a list.
The optimized orders for the data matrix are attached as an attribute attr(x, "orders")
.
The algorithm first computes an indicator matrix for each cluster and then combines these matrices to a 3D table. Then for the first and the second dimension the category orders are optimized with respect to ME. The optimization is done via optME which uses a TSP solver.
The difference to getIs is that rows and columns which are identical with respect to the biclusters are combined before the optimization. This keeps identical categories together and also speeds up the algorithm considerably (depending on the TSP solver).
The TSP solver solver = "nearest_insertion"
for instance is inefficient in this case since it has to add (identical) cases one by one.