mirror of
https://github.com/johrpan/ubigen.git
synced 2025-10-26 19:57:24 +01:00
Add rankings comparison section
This commit is contained in:
parent
8439066921
commit
bd8a829fe5
2 changed files with 120 additions and 7 deletions
62
R/server.R
62
R/server.R
|
|
@ -105,24 +105,76 @@ server <- function(custom_dataset = NULL) {
|
||||||
highlighted_genes = custom_genes()
|
highlighted_genes = custom_genes()
|
||||||
))
|
))
|
||||||
|
|
||||||
selected_genes <- reactive({
|
selected_top_genes <- reactive({
|
||||||
selected_points <- plotly::event_data("plotly_selected")
|
selected_points <- plotly::event_data("plotly_selected")
|
||||||
ranked_data()[rank %in% selected_points$x]
|
ranked_data()[rank %in% selected_points$x]
|
||||||
})
|
})
|
||||||
|
|
||||||
genes_table_server("selected_genes", reactive({
|
genes_table_server("selected_top_genes", reactive({
|
||||||
if (nrow(selected_genes()) > 0) {
|
if (nrow(selected_top_genes()) > 0) {
|
||||||
selected_genes()
|
selected_top_genes()
|
||||||
} else {
|
} else {
|
||||||
ranked_data()
|
ranked_data()
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
output$rankings_plot <- plotly::renderPlotly({
|
||||||
|
handle_axis <- function(ranking_id) {
|
||||||
|
if (ranking_id == "gtex_all") {
|
||||||
|
list(
|
||||||
|
ranking = rank_genes(ubigen::gtex_all),
|
||||||
|
label = "GTEx (across tissues and conditions)"
|
||||||
|
)
|
||||||
|
} else if (ranking_id == "gtex_tissues") {
|
||||||
|
list(
|
||||||
|
ranking = rank_genes(ubigen::gtex_tissues),
|
||||||
|
label = "GTEx (across tissues)"
|
||||||
|
)
|
||||||
|
} else if (ranking_id == "hpa_tissues") {
|
||||||
|
list(
|
||||||
|
ranking = rank_genes(ubigen::hpa_tissues),
|
||||||
|
label = "Human Protein Atlas (across tissues)"
|
||||||
|
)
|
||||||
|
} else if (ranking_id == "cmap") {
|
||||||
|
list(
|
||||||
|
ranking = rank_genes(ubigen::cmap),
|
||||||
|
label = "CMap"
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
list(
|
||||||
|
ranking = ranked_data(),
|
||||||
|
label = "Custom"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
x <- handle_axis(input$ranking_x)
|
||||||
|
y <- handle_axis(input$ranking_y)
|
||||||
|
|
||||||
|
rankings_comparison_plot(
|
||||||
|
x$ranking,
|
||||||
|
y$ranking,
|
||||||
|
label_x = x$label,
|
||||||
|
label_y = y$label,
|
||||||
|
highlighted_genes = custom_genes(),
|
||||||
|
use_percentiles = input$rankings_comparison_mode == "percentiles"
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
selected_comparison_genes <- reactive({
|
||||||
|
selected_points <- plotly::event_data("plotly_selected")
|
||||||
|
ranked_data()[gene %chin% selected_points$customdata]
|
||||||
|
})
|
||||||
|
|
||||||
|
genes_table_server("selected_comparison_genes", reactive({
|
||||||
|
selected_comparison_genes()
|
||||||
|
}))
|
||||||
|
|
||||||
gsea_genes <- reactive({
|
gsea_genes <- reactive({
|
||||||
sort(if (input$gsea_set == "top") {
|
sort(if (input$gsea_set == "top") {
|
||||||
ranked_data()[rank >= input$gsea_ranks, gene]
|
ranked_data()[rank >= input$gsea_ranks, gene]
|
||||||
} else if (input$gsea_set == "selected") {
|
} else if (input$gsea_set == "selected") {
|
||||||
selected_genes()[, gene]
|
selected_top_genes()[, gene]
|
||||||
} else {
|
} else {
|
||||||
custom_genes()
|
custom_genes()
|
||||||
})
|
})
|
||||||
|
|
|
||||||
65
R/ui.R
65
R/ui.R
|
|
@ -126,7 +126,8 @@ ui <- function(custom_dataset = NULL) {
|
||||||
value = "top_genes",
|
value = "top_genes",
|
||||||
div(paste0(
|
div(paste0(
|
||||||
"Hover over the markers to see details on each gene. Click ",
|
"Hover over the markers to see details on each gene. Click ",
|
||||||
"or drag within the figure to select genes of interest."
|
"or drag within the figure to select genes of interest. ",
|
||||||
|
"Double-click removes the selection."
|
||||||
)),
|
)),
|
||||||
plotly::plotlyOutput("scores_plot"),
|
plotly::plotlyOutput("scores_plot"),
|
||||||
div(class = "p-1"),
|
div(class = "p-1"),
|
||||||
|
|
@ -137,7 +138,67 @@ ui <- function(custom_dataset = NULL) {
|
||||||
"on."
|
"on."
|
||||||
)),
|
)),
|
||||||
div(class = "p-1"),
|
div(class = "p-1"),
|
||||||
genes_table_ui("selected_genes")
|
genes_table_ui("selected_top_genes")
|
||||||
|
),
|
||||||
|
tabPanel(
|
||||||
|
"Compare rankings",
|
||||||
|
value = "rankings",
|
||||||
|
div(
|
||||||
|
class = "flow-layout",
|
||||||
|
selectInput(
|
||||||
|
"ranking_y",
|
||||||
|
label = NULL,
|
||||||
|
list(
|
||||||
|
"Custom" = "custom",
|
||||||
|
"GTEx (across tissues and conditions)" = "gtex_all",
|
||||||
|
"GTEx (across tissues)" = "gtex_tissues",
|
||||||
|
"Human Protein Atlas (across tissues)" = "hpa_tissues",
|
||||||
|
"CMap" = "cmap"
|
||||||
|
),
|
||||||
|
selected = "cmap"
|
||||||
|
),
|
||||||
|
span(
|
||||||
|
style = paste0(
|
||||||
|
"display: inline-block;",
|
||||||
|
"margin-right: 12px;",
|
||||||
|
"padding: 0.375rem 0.75rem;"
|
||||||
|
),
|
||||||
|
"~"
|
||||||
|
),
|
||||||
|
selectInput(
|
||||||
|
"ranking_x",
|
||||||
|
label = NULL,
|
||||||
|
list(
|
||||||
|
"Custom" = "custom",
|
||||||
|
"GTEx (across tissues and conditions)" = "gtex_all",
|
||||||
|
"GTEx (across tissues)" = "gtex_tissues",
|
||||||
|
"Human Protein Atlas (across tissues)" = "hpa_tissues",
|
||||||
|
"CMap" = "cmap"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
selectInput(
|
||||||
|
"rankings_comparison_mode",
|
||||||
|
label = NULL,
|
||||||
|
list(
|
||||||
|
"Compare scores" = "scores",
|
||||||
|
"Compare percentiles" = "percentiles"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
div(class = "p-1"),
|
||||||
|
div(paste0(
|
||||||
|
"Hover over the markers to see the HGNC symbols for the ",
|
||||||
|
"genes. Click or draw within the figure to select genes of ",
|
||||||
|
"interest. Double-click removes the selection."
|
||||||
|
)),
|
||||||
|
div(class = "p-1"),
|
||||||
|
plotly::plotlyOutput(
|
||||||
|
"rankings_plot",
|
||||||
|
width = "800px",
|
||||||
|
height = "800px"
|
||||||
|
),
|
||||||
|
div(class = "p-1"),
|
||||||
|
genes_table_ui("selected_comparison_genes")
|
||||||
),
|
),
|
||||||
tabPanel(
|
tabPanel(
|
||||||
"GSEA",
|
"GSEA",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue