scatter plot: Move to geposan

This commit is contained in:
Elias Projahn 2021-11-15 15:12:42 +01:00
parent bc99e358c1
commit c009bfa371
3 changed files with 31 additions and 40 deletions

View file

@ -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]")
)
}

View file

@ -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
View file

@ -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%",