Pangenome (mouse), a bubble inside a bubble
A bubble index says where a graph varies and how much, one row per bubble, but a large bubble is a region rather than a variant: the densest bubble in the mouse strain graph holds hundreds of segments inside one intron of Dock2. We draw it as a force-directed graph, open it, and let the graph itself say what the inside is made of, because no index row describes the inside of a bubble. Pangenomes beyond human is where this graph comes from and where the bubble was found.
The graph view is a beta plugin, and this tutorial covers experimental ideas. Where a step below says the view works a particular way today, that is a current limit rather than a settled design. We welcome your feedback.
Prerequisites
- the GraphGenomeView plugin, loaded the way the HPRC page loads it
- htslib (
tabix), to query the hosted bubble index as the last section does
Where the data comes from
The mouse strain graph of
Pangenomes beyond human: GRCm39 and
eighteen strain assemblies through one minigraph call per chromosome, served
as rGFA projections.
- the segment and link index: https://jbrowse.org/demos/mouse_pangenome/mouse-mm39-minigraph.segs.bed.gz and https://jbrowse.org/demos/mouse_pangenome/mouse-mm39-minigraph.links.bed.gz
- the bubble index: https://jbrowse.org/demos/mouse_pangenome/mouse-mm39-minigraph.bubbles.bed.gz
One bubble, one label
Open the Dock2 window as a graph and pick Force-directed layout. The index knows this window as a single bubble, so the whole cut is that bubble and one label names it with what the index says: a superbubble, with its segment count and the span of its routes. A halo around everything would mark nothing, so a bubble that is the whole drawing keeps its label and goes without one.
Dock2 itself is pinned under the backbone, with no exon stretch anywhere in the cut: the gene track says on the graph what the linear view says above it, that this is intron.
A superbubble is what the index calls a bubble too big to type. The label is honest about that: it gives a segment count and a route range and no kind, since the row's numbers describe the whole region at once.
Open it, and open what is inside
Click the label. The view cuts the bubble's segments out and lays them out on their own, and then derives bubbles from the popped graph itself: a backbone node that no edge jumps over is a boundary, and whatever lies between two boundaries is a bubble. Those get halos and labels of their own, and one of them opens in turn. Part 4 of the HPRC tutorial shows one such level opened under its linear view.
Each level keeps the one above it behind a button, so the descent unwinds the way it was made. The labels at each level are typed the way the index types a bubble, from the reference interval a bubble replaces and the shortest and longest route through it, which the layering states for any anchored graph.
The control
Nnt is the window Pangenomes beyond human opens first: one large allele the other strains carry and the reference lacks. Drawn the same way it should halo as a plain insertion and hold nothing to descend into.
Check it against the index
The first figure's halo is one row of the hosted bubble index:
tabix https://jbrowse.org/demos/mouse_pangenome/mouse-mm39-minigraph.bubbles.bed.gz \
'mm39#0#chr11:34516044-34560497'
Its segment count and route span are what the label printed. The bubbles inside it are in no file: they are read off the popped graph's layering each time it opens, and closing the level discards them.
See also
References
- Li H, Feng X, Chu C. The design and construction of reference pangenome graphs with minigraph. Genome Biology. 2020;21:265. https://doi.org/10.1186/s13059-020-02168-z
- Wick RR, Schultz MB, Zobel J, Holt KE. Bandage: interactive visualization of de novo genome assemblies. Bioinformatics. 2015;31(20):3350-3352. https://doi.org/10.1093/bioinformatics/btv383
Feedback on this tutorial is welcome: contact us.