jameshadfield / phandango Goto Github PK
View Code? Open in Web Editor NEWan interactive viewer for populations of bacterial genomes linked by a phylogeny
Home Page: http://phandango.net
License: MIT License
an interactive viewer for populations of bacterial genomes linked by a phylogeny
Home Page: http://phandango.net
License: MIT License
http://sanger-pathogens.github.io/Roary/
inputs: csv file, tree (eventually optional)
The drag on the overview canvas in the top left should be switched so you drag the gray box rather than pulling the genome. It would also be nice to improve the look of that canvas too, as it looks a bit dull.
create overlay graph for the subset of tree currently selected on the fly
Like this: http://locuszoom.sph.umich.edu/locuszoom/
http://i1.rgstatic.net/figure/250924167_fig3_GWAS-of-plasma-CFH-and-CFHR1-concentrations-in-the-Croatian-cohort-(n--1004)-including/ddt33603
Input would be rows of variants, with columns with position on genome, p-val (or could be -log_10 p-val, which is what should be plotted) and optionally r^2 value which points are coloured by. If easy, point size could be proportional to effect size
Can you please check the set_y_values() function inside the Taxa_Locations store.
For given taxa (names) I'm trying to get two y-values from phylocanvas which will define the gubbins block boundaries. These Y values should be in pixels relative to the canvas.
The pixel ratio is not currently implemented which causes it to break on non-retina screens, but there are probably more things that i'm overlooking...
Text looks blurry on screen for gubbins and annotation blocks. Is this to do with css?
If you open the Gubbins example, then return to the landing page with l and try to open the Roary example it doesn't open properly. The same is true the other way around.
If you click on one node in the tree the region is highlighted on the gubbins canvas. If you then click directly on another node without clicking off, the highlighting on the gubbins canvas fails to change.
Find a good place to place settings
menu on the page
Dragging a new tree onto the browser doesn't replace the current one
Add in a new div to display metadata dropped on in CSV format
I'm pretty sure the blocks are not being displayed correctly, and it changes while interacting with the canvases.
What's the best way to identify the problem? Design a custom set of blocks and check them visually?
Displays information similar to when clicking on an annotation feature.
Should also update RegionSelectedStore, gubbins will pick up this change and highlight the background accordingly.
List of known things that are able to be sped up
simon's example is clearly wrong
Zooming closer than 1000bp should be allowed and the annotation track should show bases (potentially amino acids in CDS).
Related to #24 as SNPs can then be seen in context
The three files (genome annotation gff, gubbins gff, tree) are currently hardcoded.
Assign a listener to the entire document, pick up dropped files and parse accordingly (e.g. how genome2.html and presumably http://www.microreact.org/ do it).
Somehow maintain a hardcoded copy (in a dedicated store?) for testing purposes -- maybe it can be loaded on a button press / loaded by default while testing.
Any better ideas?
At the moment there's a (very slow and incorrect) method by which blocks are drawn if a tree is not present. www.github.com/jameshadfield/JScandy/js/canvas/gubbins/trim_blocks.gubbins.js
This should be made much faster by either moving it to www.github.com/jameshadfield/JScandy/js/stores/Taxa_Locations.js (where y values are queried from anyway), or by having a precomputed function in the gubbins code. This will have to fall back to our old way of calculating a block for every leaf as the concept of blocks at nodes doesn't make sense without a tree.
For labelling purposes we could create a flat tree from the taxa in the block file? Thoughts @richardgoater @jyothishnt
Add a tooltip for metadata mouseover
Create a generalised method to display error / helper messages onto the screen.
Something like http://materializecss.com/modals.html or http://materializecss.com/dialogs.html
(I prefer modals as error messages should require user interaction, where as helpers are better suited to dialogs, imo)
Examples:
Code already written in genome2.html
Allows people to be able to click on those blocks on each branch. I would also set alpha to 1 for those blocks and change their colour/change colour of other blocks.
Move default data to AJAX queries of files (i.e. requiring a server to run!)
Have a settings panel to show this
N.B. default data in the bundle is broken as of commit bf3b0a1
It would be great to be able to e.g. right click and ask phylocanvas to zoom both horizontally and vertically to best fit the canvas space.
Tree coloring based on metadata either by clicking the metadata header or from settings panel
When you drag along the genome with a block or gene selected they fail to drag off the screen and instead remain selected wrongly at the edge of the canvas.
I would find it really handy if we could load vcfs into this viewer. I think a modified version of the code to show manhattan plots might do the trick.
Multiple samples (columns after the first 9) should display on different rows. Could just hack the y-coordinate of the plot to do this
Optionally: have the same SNP colours as artemis
Canvas creation is currently a mess.
Canvases are currently given a height (in pixels) and a width (in %) via css. The canvas element is then assigned this value in the React componentDidMount block. If these values change (e.g. resize causes css % to change) react does not currently update the canvas element so the css scales it and it doesn't look good.
A better system for initiating canvases (via react), and ensuring they line up, is needed. In the future users should be able to drag the border of an element to resize it, but this is a low priority.
help wanted for the best ways to interact with these features
currently we are importing the entire materialize CSS library
perhaps we should be using http://www.getmdl.io/started/index.html instead
anyhow we should trim to only the rules we actually use!
Allow saving output to pdf. Possibly via jsPDF?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.