1 | duplicateFinder(eset, var.genes = 1000, dupl.cor = 0.95, nthread = 1)
|
eset |
|
var.genes |
|
dupl.cor |
|
nthread |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (eset, var.genes = 1000, dupl.cor = 0.95, nthread = 1)
{
require(Biobase)
if (nthread > 1) {
require(parallel)
}
iix <- apply(exprs(eset), 1, function(x, y) {
return((sum(is.na(x))/length(x)) < (1 - y))
}, y = 0.8)
varg <- Biobase::featureNames(eset)[iix][order(apply(exprs(eset)[iix,
, drop = FALSE], 1, var, na.rm = TRUE), decreasing = TRUE)[1:var.genes]]
splitix <- parallel::splitIndices(nx = length(sampleNames(eset)),
ncl = nthread)
mcres <- parallel::mclapply(splitix, function(splitix, data) {
cores <- cor(x = data[, splitix, drop = FALSE], y = data,
use = "complete.obs")
}, data = exprs(eset)[varg, , drop = FALSE])
cor.samples <- do.call(rbind, mcres)
diag(cor.samples) <- NA
duplix <- apply(cor.samples, 1, function(x, y) {
res <- names(x)[!is.na(x) & x > y]
return(res)
}, y = dupl.cor)
duplix <- duplix[sapply(duplix, length) > 0]
return(duplix)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.