mirror of
https://github.com/johrpan/geposanui.git
synced 2025-10-26 19:27:24 +01:00
scatter plot: Move to geposan
This commit is contained in:
parent
bc99e358c1
commit
c009bfa371
3 changed files with 31 additions and 40 deletions
|
|
@ -1,33 +0,0 @@
|
||||||
# Draw a scatter plot containing gene positions.
|
|
||||||
#
|
|
||||||
# @param results Results from [`process_input()`].
|
|
||||||
# @param species Species to be displayed.
|
|
||||||
# @param genes Genes to be displayed.
|
|
||||||
scatter_plot <- function(results, species, genes) {
|
|
||||||
species_ids <- species[, id]
|
|
||||||
|
|
||||||
data <- merge(
|
|
||||||
genes[, .(id, name)],
|
|
||||||
geposan::distances[species %in% species_ids],
|
|
||||||
by.x = "id", by.y = "gene"
|
|
||||||
)
|
|
||||||
|
|
||||||
data[name == "", name := "Unknown"]
|
|
||||||
|
|
||||||
plotly::plot_ly(
|
|
||||||
data = data,
|
|
||||||
x = ~species,
|
|
||||||
y = ~distance,
|
|
||||||
color = ~id,
|
|
||||||
name = ~name,
|
|
||||||
type = "scatter",
|
|
||||||
mode = "markers"
|
|
||||||
) |> plotly::layout(
|
|
||||||
xaxis = list(
|
|
||||||
title = "Species",
|
|
||||||
tickvals = species_ids,
|
|
||||||
ticktext = species[, name]
|
|
||||||
),
|
|
||||||
yaxis = list(title = "Distance to telomeres [Bp]")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
34
R/server.R
34
R/server.R
|
|
@ -106,13 +106,27 @@ server <- function(input, output, session) {
|
||||||
})
|
})
|
||||||
|
|
||||||
output$scatter <- plotly::renderPlotly({
|
output$scatter <- plotly::renderPlotly({
|
||||||
results <- results_filtered()
|
preset <- preset()
|
||||||
|
|
||||||
gene_ids <- results[input$genes_rows_selected, gene]
|
gene_sets <- list(preset$reference_gene_ids)
|
||||||
genes <- genes[id %chin% gene_ids]
|
labels <- c("Reference genes")
|
||||||
species <- species[id %chin% preset()$species_ids]
|
|
||||||
|
|
||||||
scatter_plot(results, species, genes)
|
comparison_gene_ids <- results_filtered()[
|
||||||
|
input$genes_rows_selected,
|
||||||
|
gene
|
||||||
|
]
|
||||||
|
|
||||||
|
if (length(comparison_gene_ids) >= 1) {
|
||||||
|
gene_sets <- c(gene_sets, list(comparison_gene_ids))
|
||||||
|
labels <- c(labels, "Comparison genes")
|
||||||
|
}
|
||||||
|
|
||||||
|
geposan::plot_positions(
|
||||||
|
preset$species_ids,
|
||||||
|
gene_sets = gene_sets,
|
||||||
|
labels = labels,
|
||||||
|
use_positions = input$use_positions
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
output$assessment_synopsis <- renderText({
|
output$assessment_synopsis <- renderText({
|
||||||
|
|
@ -157,7 +171,10 @@ server <- function(input, output, session) {
|
||||||
gene_sets <- list(preset()$reference_gene_ids)
|
gene_sets <- list(preset()$reference_gene_ids)
|
||||||
labels <- c("Reference genes")
|
labels <- c("Reference genes")
|
||||||
|
|
||||||
comparison_gene_ids <- results()[input$genes_rows_selected, gene]
|
comparison_gene_ids <- results_filtered()[
|
||||||
|
input$genes_rows_selected,
|
||||||
|
gene
|
||||||
|
]
|
||||||
|
|
||||||
if (length(comparison_gene_ids) >= 1) {
|
if (length(comparison_gene_ids) >= 1) {
|
||||||
gene_sets <- c(gene_sets, list(comparison_gene_ids))
|
gene_sets <- c(gene_sets, list(comparison_gene_ids))
|
||||||
|
|
@ -176,7 +193,10 @@ server <- function(input, output, session) {
|
||||||
gene_sets <- list(preset()$reference_gene_ids)
|
gene_sets <- list(preset()$reference_gene_ids)
|
||||||
labels <- c("Reference genes")
|
labels <- c("Reference genes")
|
||||||
|
|
||||||
comparison_gene_ids <- results()[input$genes_rows_selected, gene]
|
comparison_gene_ids <- results_filtered()[
|
||||||
|
input$genes_rows_selected,
|
||||||
|
gene
|
||||||
|
]
|
||||||
|
|
||||||
if (length(comparison_gene_ids) >= 1) {
|
if (length(comparison_gene_ids) >= 1) {
|
||||||
gene_sets <- c(gene_sets, list(comparison_gene_ids))
|
gene_sets <- c(gene_sets, list(comparison_gene_ids))
|
||||||
|
|
|
||||||
4
R/ui.R
4
R/ui.R
|
|
@ -31,6 +31,10 @@ ui <- fluidPage(
|
||||||
),
|
),
|
||||||
tabPanel(
|
tabPanel(
|
||||||
"Positions",
|
"Positions",
|
||||||
|
checkboxInput(
|
||||||
|
"use_positions",
|
||||||
|
"Show positions instead of distances"
|
||||||
|
),
|
||||||
plotly::plotlyOutput(
|
plotly::plotlyOutput(
|
||||||
"scatter",
|
"scatter",
|
||||||
width = "100%",
|
width = "100%",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue