Skip to content

Development Roadmap

Herbert Sauro edited this page Feb 3, 2021 · 86 revisions

Lots of ideas have floated into the issue tracker. In addition, we have the following plans:

Planned features (more or less in order)

  • Two-way data binding from Python using [Jupyter Widgets](http://ipywidgets.readthedocs.io/en/stable/developer_docs.html). See also #203 and #275.
  • Align, distribute, snap to grid, and apply a layout to a selection of nodes (circle, bifurcation, arc with radius)
    • first: align vertical; align horizontal (ideally smart handling of secondary nodes); contrl/command to lock new-reaction arrow & rotation mode to 0;45;90deg etc; snap rotation center to a node
  • Save workspace
  • Copy and paste between maps
  • Compartment visualization
  • Time-series visualization with sliders. See #242.
  • API to embed arbitrary SVG on the map next to reactions, chemicals, and genes (#273) Show rectangles to make space during drawing
  • Node connectivity plot in tooltips
  • Color scale legend for loaded data types
    • should allow for display of units, with Escher-FBA as an initial example
  • Split nodes #241. Cofactors or nodes with a high degree of connectivity should be separable to improve the visibility/layout.
  • Increase the font size for metabolite & reaction labels

Wishlist [Add to me!]

  • Quick access button for turning off tooltips; maybe a keyboard shortcut
  • First render in batches to avoid unresponsive UI
    • Also for semantic zoom renders & pasting
  • UI to help build many subsystem maps for a model: e.g. find reactions not drawn in any map yet
  • More annotation features: text size for text annotations, links to other maps
  • API for drawing maps
  • API for overriding the data source in the search box (callback function returns a reaction to draw)
  • Improvements to docs
    • Summary of available commands and keyboard shortcuts
  • Pathway grouping (e.g. subsystems)
  • Context menu to perform an action on a selection
  • Use basic SBGN symbols to represent metabolites and reactions.
  • Advanced node search.
  • Synonym management via BiGG Models and MetaNetX
  • A selection of automatic layouts. (e.g., http://www.adaptagrams.org/, http://csbl.bitbucket.org/metdraw/)
  • Do a better job of separating Model and View
  • 'Headless' Escher in node.js, as suggested by @jotech #71
  • Load background images to guide building
  • Show the transpose map (i.e. node map)
  • Split map and data selection GUI (sliders, dropdowns, etc) for larger datasets
  • Visualize reaction and gene data at the same time (and protein data)
  • map beautification script, esp. for labels
  • model comparison visualization
  • Include condensed mode where metabolite labels are show in place of the circles
  • Side-by-side visualization of the same map with two datasets
  • Split arrow and metabolite color/size in half to visualize to datasets on top of each other (e.g. for FVA)
  • Use hidden Voronoi diagrams with hover listeners to decide when to show tooltips
  • Allow Escher to load/save SBML Layout and render formats (currently done through a Java app which is a problem if one doesn't have java installed)
  • Publish a formal specification document for the json output, currently developers reverse engineer sample outputs from Escher

2.0 Planned API changes

  • Shortcuts for scales, and better, smarter default scales
    • See ideas from cameo
  • Make a kwarg for absolute value and other common options
  • Include Preact and vanilla JavaScript entry points
  • Documented callbacks/hooks, including user actions like creating a new reaction. We can do better than this:
  • Change Q1 and Q3 in scale objects to q1 and q3
  • Take inspiration from http://recharts.org
builder.map.draw.callback_manager.set('create_reaction', function () {
   ... do stuff ...
})