A interactive viewer for population-scale genomic data linked together by a phylogeny. Examples include metadata, recombination blocks, GWAS results and pan-genome contents. It is a single-page javascript application that runs in Chrome entirely on the client (so none of your results are sent to any server).
This was originally written to help explore recombination in populations of bacteria using gubbins in the context of the bacteria's phylogeny. We found that the ability to interact with the data allows much easier and faster understanding. It has since been expanded to visualise a number of other formats and data types, with more on the way.
- BratNextGen parsing and overlay with gubbins.
- Tree default display is much better & you can zoom horizontally by holding down cmd / ctrl)
- Roary fragments are now displayed
- animated logo
- new layout
Load the live version to see some example datasets to explore.
Here is our list of (big) things to implement -- additional ideas or contributions are welcome.
- Back-button support
- Multiple plot display
- ClonalFrameML & fastGEAR input
- SNP display (VCF / tab file)
- Homoplasic SNP display
- Searching for gene / taxa
- Persist data via server
- Firefox / Edge / Safari support
- Display of r/m values, bootstrap support on tree nodes
- BEAST display
- PDF output
- Tree tips coloured by selected metadata
- Install Node and Node Package manager (npm), which allow bundling of the javascript packages. On OS X I find nvm to be the best way.
- Clone or fork this github repo
- Run
npm installin the phandango directory - If you need to modify PhyloCanvas then:
- npm rm phylocanvas
- clone the repo & link it via
npm link npm link PhyloCanvas- Run the tests with
npm run test npm run startbundles the javascript and serves it tolocalhost:8080with dev-tools enablednpm run buildproduces a production-ready bundle available at index.html
- Branch off
master - Ensure
eslintis working in your editor - Write
.mdfiles using markdownlivepreview - Include bundle in all commits by first running
npm run build
- Modify version in
package.json - Modify version in
js/version.js
- Add the bundle from the master branch via
git checkout master dist/phandango.js - if
index.htmlhas changed (git diff gh-pages master index.html) then:git checkout master index.htmand make sure google analytics are not commented out - manually checkout any newly required images / fonts (CSS is bundled).