thackl / gggenomes

A grammar of graphics for comparative genomics
https://thackl.github.io/gggenomes/
Other
572 stars 64 forks source link

Changing start site of seq track and keeping layout. #190

Open Rikkiff opened 4 weeks ago

Rikkiff commented 4 weeks ago

Hi, I am comparing circular sequences with random start points. It there a way that I can manually change the start points of the seq tracks without changing the mapping of the other tracks to the seq track?

thackl commented 4 weeks ago

Not 100% sure what you mean, but could this be it https://thackl.github.io/gggenomes/reference/shift.html

Rikkiff commented 4 weeks ago

Thanks Thomas! Actually, I want to change the start site of the sequences. So, for example that all sequences are starting with the MCP gene you are centring on in your example.

thackl commented 3 weeks ago

Ah, ok, so you sort of want to rotate the annotations. How about something like this:

library(tidyverse)
library(gggenomes)

s1 <- tibble(
  seq_id = c("A", "B"),
  length = 2000
)

g1 <- tibble(
  seq_id = rep(c("A", "B"), each=4),
  feat_id = c("a-start", "a2", "a3", "a4", "b3", "b4", "b-start", "b2"),
  start = rep(c(100, 600, 1100, 1600), 2),
  end = start +300)

Original sequence with B having start in the middle

#| fig.height: 2
#| fig.width: 5
gggenomes(g1, s1) +
  geom_seq() +
  geom_gene() +
  geom_gene_tag(aes(label=feat_id))

image

B broken up at start gene and first half of genome plotted as individual contig before second half of genome

#| fig.height: 2
#| fig.width: 5
# "zoom" in on parts of sequences and reorganize
# use all of A:0-2000, use B:1000-2000, then B:0:1000
p1 <- gggenomes(g1, s1, spacing = 10) |> # spacing controls the distance between contigs of same genome
  focus(.loci = tibble(  
    seq_id = c("A", "B", "B"),
    start = c(0, 1000, 0),
    end = c(2000, 2000, 1000)))
p1 + 
  geom_seq() +
  geom_gene() +
  geom_gene_tag(aes(label=feat_id))

image

I chose the breakpoint here (.loci tibble) manually, but I think it could also be computed easily from your start gene locations...

Rikkiff commented 3 weeks ago

This works. Thanks again Thomas!