mirror of
https://github.com/johrpan/geposanui.git
synced 2025-10-26 11:17:24 +01:00
48 lines
No EOL
1.2 KiB
R
48 lines
No EOL
1.2 KiB
R
library(data.table)
|
|
library(ggplot2)
|
|
|
|
#' Draw a scatter plot containing gene positions.
|
|
scatter_plot <- function(gene_ids, data) {
|
|
species <- data$species
|
|
setorder(species, median_distance)
|
|
|
|
distances <- data$distances[geneid %in% gene_ids]
|
|
|
|
plot <- ggplot() +
|
|
scale_x_continuous(
|
|
name = "Species",
|
|
breaks = seq_len(nrow(species)),
|
|
labels = species$label
|
|
) +
|
|
scale_y_continuous(name = "Distance to telomeres [Mbp]") +
|
|
geom_line(
|
|
species,
|
|
mapping = aes(
|
|
x = as.numeric(rownames(species)),
|
|
y = median_distance / 1000000
|
|
)
|
|
)
|
|
|
|
colors <- rainbow(length(gene_ids))
|
|
|
|
for (i in seq_len(length(gene_ids))) {
|
|
gene_id <- gene_ids[i]
|
|
|
|
gene_distances <- data.table(
|
|
index = as.numeric(rownames(species)),
|
|
distance = unlist(distances[geneid == gene_id, -1])
|
|
)
|
|
|
|
plot <- plot +
|
|
geom_point(
|
|
gene_distances,
|
|
mapping = aes(
|
|
x = index,
|
|
y = distance / 1000000,
|
|
),
|
|
color = colors[i]
|
|
)
|
|
}
|
|
|
|
plot
|
|
} |