UI/UX

Introduction

On this page, we discuss some of the design choices and how they are implemented.

Phylotree

In order to render the phylotree, we use a well-known phylogenetic tree library for JS. This plugin provides a lot of functionality that we explicitly disabled.

We customize the tree in a number of ways:

  • Radial rendering, not as a typical tree structure from left to right.
  • Labels correspond to viruses that appear in the Excel annotation file.
  • Viruses for which we have information (virus of interest) are highlighted.
  • All viruses in the Excel file should have at least an acronym and a human-readable identifier
  • Viruses of interest can be clicked to reveal a pane with more information about that virus.
  • When a virus is selected (either through the phylotree or from the virus-information pane), it gets subtly highlighted in the tree.

All this functionality is coded in _js/family.qmd.

The colors and style of the phylotree are customized in styles.css.

Toolbox

The toolbox rendition is done using Javascript (in _js/family.qmd) and is based on the the toolbox.json file (itself generated from the tooblbox.yaml file). The tools are looped over and for every tool:

  • The title is loaded and rendered
  • the icon is loaded and rendered
  • When a virus is selected, a lookup is done to check which tools are available for this virus. Those tools are highlighed
  • In order to make the UI consistent, the currently selected virus is presented above the toolbox as well.