FluentDNA allows you to browse sequence data of any size using a zooming visualization similar to Google Maps. You can use FluentDNA as a standalone program or as a python module for your own bioinformatics projects.
65
stars
7
forks
source link
Graph Genomes: ODGI Matrix layout in FluentDNA #85
This issue is a roadmap for what it would take to update FluentDNA to process Graph Genomes. Pixel rendering will bypass the need for binning and the limit of SVG objects in the browser.
Useful Resources
MSA Layout can handle thousands of individuals. Should work for gigabase genomes
MSA Mouse over. We already calculate layout x,y for mouseover, this could save a lot of space and load time to get individual and path name with specific info for each x.
Color averaging: no need for binning. Coverage will mix with coloring, so don't use light->dark spectrum for progress.
Needs to be Implemented (Development Order
[x] Test Gigabase MSA
[x] ODGI emits single pangenome sequence
[ ] Read ODGI .og file into an MSA and render (no links)
[ ] Pangenome sequence as nucleotide color (big) and Matrix colored by progress and inversion
[ ] Filter for necessary links
[ ] Links allocated Matrix column space
[ ] Links translated to relative coordinates
[ ] Links rendered in Breadboard style
[ ] Link width by number of accessions
[ ] SVG Overlay for additional information
[ ] X Zoom in OpenSeadragon by fetching additional tiles and setting width
[ ] Dynamic X stretching based on allele frequency
[ ] JBrowse integration: they're both static javascript programs. Use half of the screen for a synchronized JBrowse annotation.
Optional Support Features
Go To Functionality #75
Toggleable image layer for copy number, sequence coloring, etc #26
SPARQL integration to fetch graph genome and annotations externally, save DOI
Is it possible to Edit PNG header to change color palette?
Chunking for really massive genomes
On the fly rendering, no precompute?
Add ODGI codebase and allow people to provide GFA file as an input
There's one major downside I can see in doing rendered images over SVG: One of the features planned was a dynamic scaling of the X axis in certain columns based on the density of the data. Columns with little coverage could be 10% the width of columns with majority coverage. This is fairly simple to do in SVG, but problematic in a strict pixel grid where nucleotides are rendered 1:1. You can scale up the whole image by X (e.g. every skixel is 3x3 pixels) but your minimum reduction is then 1/X which isn't very scaleable. A more viable solution is to compress and render the sequence colors in the image itself, then add a mouseover object that shows the true sequence.
X zoom will likely not be supported natively in OpenSeaDragon. I'll consult with the creator and see how hard they think it would be.
Graph Genomes: ODGI Matrix layout in FluentDNA
This issue is a roadmap for what it would take to update FluentDNA to process Graph Genomes. Pixel rendering will bypass the need for binning and the limit of SVG objects in the browser.
Useful Resources
Needs to be Implemented (Development Order
Optional Support Features
Downsides