library(data.table) library(plotly) #' 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. #' @param distances Distance data to display. scatter_plot <- function(results, species, genes, distances) { species_ids <- species[, id] data <- merge( genes[, .(id, name)], distances[species %in% species_ids], by.x = "id", by.y = "gene" ) data[name == "", name := "Unknown"] plot_ly( data = data, x = ~species, y = ~distance, color = ~id, name = ~name, type = "scatter", mode = "markers" ) |> layout( xaxis = list( title = "Species", tickvals = species_ids, ticktext = species[, name] ), yaxis = list(title = "Distance to telomeres [Bp]") ) }