diff --git a/R/analyze.R b/R/analyze.R index 64feb80..fd74edc 100644 --- a/R/analyze.R +++ b/R/analyze.R @@ -33,18 +33,15 @@ analyze <- function(preset, progress = NULL) { # - `score` Score for the gene between 0.0 and 1.0. methods <- list( "clusteriness" = clusteriness, - "correlation" = correlation, - "proximity" = proximity, - "neural" = neural, "clusteriness_positions" = function(...) { clusteriness(..., use_positions = TRUE) }, + "correlation" = correlation, "correlation_positions" = function(...) { correlation(..., use_positions = TRUE) }, - "proximity_positions" = function(...) { - proximity(..., use_positions = TRUE) - }, + "proximity" = proximity, + "neural" = neural, "neural_positions" = function(...) { neural(..., use_positions = TRUE) } diff --git a/R/proximity.R b/R/proximity.R index ed91660..ec9e325 100644 --- a/R/proximity.R +++ b/R/proximity.R @@ -2,24 +2,18 @@ # # A score will be given to each gene such that 0.0 corresponds to the maximal # mean distance across all genes and 1.0 corresponds to a distance of 0. -proximity <- function(preset, use_positions = FALSE, progress = NULL) { +proximity <- function(preset, progress = NULL) { species_ids <- preset$species_ids gene_ids <- preset$gene_ids - cached("proximity", c(species_ids, gene_ids, use_positions), { + cached("proximity", c(species_ids, gene_ids), { # Prefilter distances by species and gene. data <- geposan::distances[ species %chin% preset$species_ids & gene %chin% preset$gene_ids ] # Compute the score as described above. - - data <- if (use_positions) { - data[, .(mean_distance = mean(position)), by = "gene"] - } else { - data[, .(mean_distance = mean(distance)), by = "gene"] - } - + data <- data[, .(mean_distance = mean(distance)), by = "gene"] max_distance <- data[, max(mean_distance)] data[, score := 1 - mean_distance / max_distance]