to a billion and beyond

To a Billion and Beyond How to Visually Explore, Compare and Share - PowerPoint PPT Presentation

To a Billion and Beyond How to Visually Explore, Compare and Share Large Quantitative Datasets with HiGlass Peter Kerpedjiev, Nezar Abdennur, and Fritz Lekschas Peter Kerpedjiev Nezar Abdennur Fritz Lekschas Software Engineer at Zymergen


  1. To a Billion and Beyond How to Visually Explore, Compare and Share Large Quantitative Datasets with HiGlass Peter Kerpedjiev, Nezar Abdennur, and Fritz Lekschas

  2. Peter Kerpedjiev Nezar Abdennur Fritz Lekschas Software Engineer at Zymergen PostDoc at MIT PhD Candidate at Harvard @pkerpedjiev @nv1ctus @flekschas emptypipes.org nvictus.me lekschas.de

  3. Peter Kerpedjiev Nezar Abdennur Fritz Lekschas Software Engineer at Zymergen PostDoc at MIT PhD Candidate at Harvard @pkerpedjiev @nv1ctus @flekschas emptypipes.org nvictus.me lekschas.de 🤱 → 👷🎊

  4. Peter Kerpedjiev Nezar Abdennur Fritz Lekschas Software Engineer at Zymergen PostDoc at MIT PhD Candidate at Harvard @pkerpedjiev @nv1ctus @flekschas emptypipes.org nvictus.me lekschas.de 👌

  5. Peter Kerpedjiev Nezar Abdennur Fritz Lekschas Software Engineer at Zymergen PostDoc at MIT PhD Candidate at Harvard @pkerpedjiev @nv1ctus @flekschas emptypipes.org nvictus.me lekschas.de 👌

  6. Genomics where we come from

  7. Methods Image taken and slightly adapted from encodeproject.org

  8. Principal Challenges Multiscale Genomic Data Patterns arise at various resolutions Multimodality Time Series Data Different data types and synchronized viz Multiple comparable datasets Geospatial Data Insights arise from differences Collaborative Exploration Image Data Share exploratory state, not the end result

  9. Architecture

  10. Python API All demos are available at github.com/higlass/scipy19

  11. HiGlass in Jupyter (see temperature.ipynb)

  12. Tileset API

  13. Tileset API Generates or fetches 1D or 2D data tiles tileset_info() → min_pos & max_pos: relative to the scene tile_size: size of the tiles (in pixels) max_zoom: ⌈ log 2 (tile mesh size / tile size) ⌉ max_width: ⌈ tile mesh size / tile size ⌉ tiles(tile_ids) ← [<uuid.z.x.y>, …] → {<uuid.z.x.y>: { dense, min_value, max_value, dtype }, ...}

  14. Tileset API Generates or fetches 1D or 2D data tiles tileset_info() → min_pos & max_pos: relative to the scene tile_size: size of the tiles (in pixels) max_zoom: ⌈ log 2 (tile mesh size / tile size) ⌉ max_width: ⌈ tile mesh size / tile size ⌉ tiles(tile_ids) ← [<uuid.z.x.y>, …] → {<uuid.z.x.y>: { dense , min_value, max_value, dtype }, ...} Base64-encoded raw data

  15. Tileset API Demo (see point-data.ipynb)

  16. View Configs

  17. View Config 1. { 2. "views": [ 3. { 4. "uid": "aa", 5. "initialXDomain": [0, 100], Views ● 6. "initialYDomain": [0, 100], 7. "layout": { 8. "x": 0, "y": 0, Shared location and zoom 9. "w": 12, "h": 6, 10. }, Layout ○ 11. "tracks": { 12. "top": [], Tracks ○ 13. "left": [], 14. "center": [], 15. "right": [], Locks 16. "bottom": [] ● 17. } 18. } For view synchronization 19. ], 20. "zoomLocks": { ... }, 21. "locationLocks": { ... }, Globals ● 22. "valueScaleLocks": { ... }, 23. "editable": true, Server URLs, editability 24. "zoomFixed": false, 25. "trackSourceServers": ["/api/v1"], 26. "exportViewUrl": "/api/v1/viewconfs" 27. }

  18. View Config 1. { 2. "views": [ 3. { 4. "uid": "aa", 5. "initialXDomain": [0, 100], Views ● 6. "initialYDomain": [0, 100], 7. "layout": { 8. "x": 0, "y": 0, Shared location and zoom 9. "w": 12, "h": 6, 10. }, Layout ○ 11. "tracks": { 12. "top": [], Tracks ○ 13. "left": [], 14. "center": [], 15. "right": [], Locks 16. "bottom": [] ● 17. } 18. } For view synchronization 19. ], 20. "zoomLocks": { ... }, 21. "locationLocks": { ... }, Globals ● 22. "valueScaleLocks": { ... }, 23. "editable": true, Server URLs, editability 24. "zoomFixed": false, 25. "trackSourceServers": ["/api/v1"], 26. "exportViewUrl": "/api/v1/viewconfs" 27. }

  19. View Config 1. { 2. "views": [ 3. { 4. "uid": "aa", 5. "initialXDomain": [0, 100], Views ● 6. "initialYDomain": [0, 100], 7. "layout": { VIEW 8. "x": 0, "y": 0, Shared location and zoom 9. "w": 12, "h": 12, 10. }, Layout ○ 11. "tracks": { 12. "top": [], Tracks ○ 13. "left": [], 14. "center": [], 15. "right": [], Locks 16. "bottom": [] ● 17. } 18. } For view synchronization 19. ], 20. "zoomLocks": { ... }, 21. "locationLocks": { ... }, Globals ● 22. "valueScaleLocks": { ... }, 23. "editable": true, Server URLs, editability 24. "zoomFixed": false, 25. "trackSourceServers": ["/api/v1"], 26. "exportViewUrl": "/api/v1/viewconfs" 27. }

  20. Track Config ● Type 1. { 2. "type": "horizontal-line", general encoding 3. "server": "//higlass.io/api/v1", ● Server 4. "tilesetUid": "OHJakQICQD6gTD7skx4EWA", track data source 5. "uid": "my-very-fancy-line-plot", 6. "options": { ● Tileset UID 7. "name": "My Very Fancy Line Plot!", data identifier 8. ... ● UID 9. }, 10. } track identifier ● Options For styling, labeling, etc.

  21. Advanced Features

  22. Advanced Features (see nyc-taxi.ipynb)

  23. EPILOGOS Developer Features GEOJSON Modular Codebase Tiling, serving, and rendering are decoupled E.g., viewer, server, tileset API, docker HIPILER Viewer Extensibility Simple plugin architecture for new track types E.g., Epilogos, GeoJSON PEAX JavaScript APIs for Integration Library version, React component, JsAPI E.g., HiPiler, Peax, cTracks

  24. Communication & Collaboration (see genomics.ipynb)

  25. HiGlass To a Billion and Beyond WEB: higlass.io CODE: github.com/higlass/scipy19 Scipy Slack Channel #higlass TWITTER: @higlass_io PRESENTERS: Nezar Abdennur Fritz Lekschas @nv1ctus @flekschas nvictus.me lekschas.de This work is supported in part by the National Institutes of Health (U01 CA200059).

  26. HiGlass To a Billion and Beyond WEB: higlass.io CODE: github.com/higlass/scipy19 TWITTER: @higlass_io PRESENTERS: Nezar Abdennur Fritz Lekschas @nv1ctus @flekschas nvictus.me lekschas.de This work is supported in part by the National Institutes of Health (U01 CA200059).

  27. HiGlass Contributors & Acknowledgements Core Contributors: Peter Kerpedjiev, Fritz Lekschas, Nezar Abdennur, Chuck McCallum PIs: Nils Gehlenborg, Peter Park, Leonid Mirny, Hanspeter Pfister Co-Authors: Kasper Dinkla, Hendrik Strobelt, Jacob Luber, Scott Ouellette, Alaleh Azhir, Nikhil Kumar, Jeewon Hwang, Soohyun Lee, Burak Alver This work is supported in part by the National Institutes of Health (U01 CA200059).

Recommend


More recommend