Skip to content

Commit

Permalink
fixed dotplot by genesetsize
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Chen authored and Andrew Chen committed Oct 20, 2023
1 parent badbb7b commit 559749f
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions R/hyp_dots.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
.dots_multi_plot <- function(multihyp_data,
top=20,
abrv=50,
size_by=c("genesets", "significance", "none"),
size_by=c("genesets", "significance", "overlap", "none"),
pval_cutoff=1,
fdr_cutoff=1,
val=c("fdr", "pval"),
Expand Down Expand Up @@ -79,16 +79,29 @@

if (size_by == "significance") {
df.melted$size <- df.melted$significance
}

if (size_by == "genesets") {
} else if (size_by == "genesets") {
geneset.sizes <- lapply(multihyp_data, function(hyp_obj) {
hyp_obj$data[, c("label", "geneset")]
}) %>%
do.call(rbind, .) %>%
dplyr::distinct(label, .keep_all=TRUE) %>%
dplyr::pull(geneset, label)
df.melted$size <- geneset.sizes[df.melted$label]
#df.melted$size <- geneset.sizes[df.melted$label]
names(geneset.sizes) <- substr(names(geneset.sizes), 1, abrv)
stopifnot( all(!is.na(match_idx <- match(df.melted$label,names(geneset.sizes)))) )
df.melted$size <- geneset.sizes[match_idx]
} else if (size == "overlap") {
stop( "size_by overlap not implemented yet")
overlap.sizes <- lapply(multihyp_data, function(hyp_obj) {
hyp_obj$data[, c("label", "overlap")]
}) %>%
do.call(rbind, .) %>%
dplyr::distinct(label, .keep_all=TRUE) %>%
dplyr::pull(overlap, label)
#df.melted$size <- overlap.sizes[df.melted$label]
names(overlap.sizes) <- substr(names(overlap.sizes), 1, abrv)
stopifnot( all(!is.na(match_idx <- match(df.melted$label,names(overlap.sizes)))) )
df.melted$size <- overlap.sizes[match_idx]
}

p <- df.melted %>%
Expand All @@ -104,14 +117,15 @@

if (size_by == "none") {
p <- p + guides(size="none")
}
if (size_by == "significance") {
} else if (size_by == "significance") {
p <- p + scale_size_continuous(trans=.reverselog_trans(10)) + labs(size="Significance")
}
if (size_by == "genesets") {
} else if (size_by == "genesets" ) {
p <- p + scale_size_continuous(trans=scales::log10_trans()) + labs(size="Genesets\nSize")
} else if (size_by == "overlap" ) {
p <- p + scale_size_continuous(trans=scales::log10_trans()) + labs(size="Overlap\nSize")
} else {
stop("unrecognized 'size_by':", size_by)
}

return(p)
}

Expand Down

0 comments on commit 559749f

Please sign in to comment.