mirror of
https://github.com/johrpan/geposan.git
synced 2025-10-26 18:57:25 +01:00
Handle caching
This commit is contained in:
parent
b8365e0efb
commit
df6e23d219
7 changed files with 247 additions and 191 deletions
46
R/analyze.R
46
R/analyze.R
|
|
@ -59,30 +59,32 @@ analyze <- function(preset, progress = NULL) {
|
|||
"neural" = neural
|
||||
)
|
||||
|
||||
total_progress <- 0.0
|
||||
method_count <- length(preset$method_ids)
|
||||
results <- data.table(gene = preset$gene_ids)
|
||||
cached("results", preset, {
|
||||
total_progress <- 0.0
|
||||
method_count <- length(preset$method_ids)
|
||||
results <- data.table(gene = preset$gene_ids)
|
||||
|
||||
for (method_id in preset$method_ids) {
|
||||
method_progress <- if (!is.null(progress)) function(p) {
|
||||
progress(total_progress + p / method_count)
|
||||
for (method_id in preset$method_ids) {
|
||||
method_progress <- if (!is.null(progress)) function(p) {
|
||||
progress(total_progress + p / method_count)
|
||||
}
|
||||
|
||||
method_results <- methods[[method_id]](preset, method_progress)
|
||||
setnames(method_results, "score", method_id)
|
||||
|
||||
results <- merge(
|
||||
results,
|
||||
method_results,
|
||||
by = "gene"
|
||||
)
|
||||
|
||||
total_progress <- total_progress + 1 / method_count
|
||||
}
|
||||
|
||||
method_results <- methods[[method_id]](preset, method_progress)
|
||||
setnames(method_results, "score", method_id)
|
||||
if (!is.null(progress)) {
|
||||
progress(1.0)
|
||||
}
|
||||
|
||||
results <- merge(
|
||||
results,
|
||||
method_results,
|
||||
by = "gene"
|
||||
)
|
||||
|
||||
total_progress <- total_progress + 1 / method_count
|
||||
}
|
||||
|
||||
if (!is.null(progress)) {
|
||||
progress(1.0)
|
||||
}
|
||||
|
||||
results
|
||||
results
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue