Find best overlap threshold for EnrichMap

mem_find_overlap(
  mem,
  overlap_range = c(0.1, 0.99),
  overlap_count = 2,
  node_fraction = 0.5,
  max_cutoff = 0.4,
  debug = FALSE,
  ...
)

Arguments

mem

list output from multiEnrichMap()

overlap_range

numeric range of Jaccard overlap values

overlap_count

numeric value passed to mem_multienrichplot() which is used to filter the multienrichmap by Jaccard overlap and by overlap_count.

max_cutoff

numeric value between 0 and 1, to define the maximum fraction of nodes in the largest connected component, compared to the total number of non-singlet nodes.

debug

logical indicating whether to return full debug data, which is used internally to determine the best overlap cutoff to use.

Details

This function implements a straightforward approach to determine a reasonable Jaccard overlap threshold for EnrichMap data. It finds the overlap threshold at which the first connected component is no more than max_cutoff fraction of the whole network. This fraction is defined as the number of nodes in the largest connected component, divided by the total number of non-singlet nodes. When all nodes are connected, this fraction == 1.

We found empirically that a max_cutoff=0.4, the point at which the largest connected component contains no more than 40% of all nodes, seems to be a reasonably good place to start.