Git Product home page Git Product logo

dashboards's Introduction

GenSpectrum dashboards

Conventional Commits

This uses Release Please to generate releases for the components. As Release Please relies on Conventional Commits to determine the version, commit messages should follow the Conventional Commits specification.

  • The most important prefixes that affect new versions are feat: (new minor version) and fix: (new patch version).
  • Breaking changes must be indicated in the commit message. We prefer a footer that starts with BREAKING CHANGE: followed by a description of the breaking change. This will result in a new major version.
  • Commits changing components code should use the scope components, e.g. feat(components): add new component.
  • Release Please determines the commits that are relevant for the release by changed files. If you don't mean for a feat or fix commit to show up in the components change list, then you must not edit files in components/ in the same commit.

Testing The Generated Changelog

To test the generated changelog, run

npm run release-please-dry-run -- --token=<GitHub PAT> --target-branch=<name of the upstream branch>

where

  • <GitHub PAT> is a GitHub Personal Access Token. It doesn't need any permissions.
  • <name of the upstream branch> is the name of the branch for which the changelog should be generated.

NOTE: This command does not respect local changes. It will pull the commit messages from the remote repository.

dashboards's People

Contributors

fengelniederhammer avatar jonaskellerer avatar chaoran-chen avatar dependabot[bot] avatar github-actions[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

dashboards's Issues

Enable expect 'custom' for date range selector

In #9 we added a date range selector. One test types a specific date into the date from input element and tries to press 'enter'. This does work by hand but not programmatically. Therefor the assertion that the select changes to 'custom' can not be done in the test.

Enable that assertion again, when hitting enter works.

I could not find out what is causing this issue. I would either think of storybook or lit.

Add columns to prevalence over time

Add units to table of prevalence over time.
Also add new columns total sequences, prevalence, sequences, the the columns look like:
date, total samples, EG: prevalence [%], EG: samples, J: prevalence [%], J: samples

grafik

Overview: Location filter

The location filter is an input component that allows users to choose a location. It assumes hierarchical location data stored in different LAPIS fields. (Our SARS-CoV-2 instances have four levels: (1) region, (2) country, (3) division, and (4) location.)

It should provide auto-completion that could look like this:

When the user selects a location, the component should dispatch an event.

Output/Event data example:

{
  region: North America,
  country: USA,
  division: Georgia
}
// It assumes that the fields are provided in hierarchical order
<gs-location-filter fields="[region, country, division, location]" />

Tasks

Add reference genome to context

In many components we need the information if there are segments and which are those. To avoid to extract them every time, we decided to add the reference genome to the context in the GsApp. The reference genome can be queried from LAPIS directly.

When this is done, delete the special logic in mutations.tsx and mutation-comparison.tsx. Maybe there are more locations.

Over time in time view

Right now I can't think of a simple way to evaluate relative growth of sublineages of a lineage other than to type them all out manually and compare to baseline.

It could be a nice feature to make a view of sublineages similar to how mutations are shown over time:
image

For a given query, all lineages that show up for a query (including wild cards if they have sublineages) would be eligible for inclusion - but then one could also threshold with >0.5% say.

Why is including wildcards important? Otherwise all lineages with sublineages are only paraphyletic - which isn't great. It's quite arbitrary what becomes a sublineage and what doesn't. So to compare BQ.1.1 with BQ.1.1.25 is quite meaningless. We should always look at all BQ.1.1* rather than BQ.1.1 which is in fact BQ.1.1* - (BQ.1.1* - BQ.1.1)

Overview: Mutations

The mutation component is for the analysis of the mutations of a single variant. To compare the mutations of multiple variants, the mutations comparison component (#6) should be used.

Tasks

  • #57
  • #107
    • Mutations should be sorted by their position (if segmented, they should first be sorted by their segment and then by their position within the segment)
  • Table: Add basic styling
  • #59
  • #58
    • Table: Only mutations greater-than-equal the min proportion should be shown
    • Grid: Only rows where at least one mutation is greater-than-equal the min proportion should be shown
  • #105
  • #106
  • #60
  • Write a basic description

Implement more sophisticated lineage frequency plot, similar to outbreak.info

I'd love it if you could invest a little into more sophisticated display of query results, with a plot similar in style to this outbreak.info one - it would really add a lot and shouldn't be too hard to create.

The input data you have already, all you need is the visualisation:
image

It consists of three main features (in my eyes):

  1. 7d rolling mean as opposed to bars for weeks
  2. Not only avg but also confidence intervals based on sampling intensity
  3. Explicit display of samples per day below the main graph -> this allows quick scanning of interesting patterns (like submission once a month/week etc.)

Overview: Mutation and lineage filter

The mutation and lineage filter is an input component that should function similarly to the one that we have on CoV-Spectrum:

image

Mutations (substitutions/deletions/insertions) have a defined format in LAPIS but lineages, for different pathogens, do not. This means that we need an extensible system where it is possible to add support for different lineage systems. Hereby, it's great if we can make it easy for the library user to do it but that is not necessary. It's just important that it is easy to extend the library and support multiple lineage systems and that the library user can then select which lineage system to activate.

Tasks

  • #155
  • #156
  • #157
  • #182
  • (Optional) Show selected mutations in input field (instead of above the input field)

Allow users to set a min proportion

  • Set min and max proportion
  • always fetch all proportions from LAPIS
  • filter in the browser
  • maybe add a button that opens a modal? Selecting a range might be too big (UI wise) for a small button on the top of a diagram.

Basic date range filter

We could replicate the implementation on CoV-Spectrum:

Important capabilities are:

  • Select special data ranges such as "2023" or "past 2 weeks"
  • Select a date through a date picker.
  • Type in a date in the ISO format (i.e., yyyy-mm-dd)
  • Edit a date in the date field directly (e.g., change 2023-09-17 to 2023-10-17 by selecting 09 in the field and then typing 10)
  • Copy&paste a date in the ISO format into a date field

Tasks

tbd

Check/Test date granularity

We have the component Temporal. This component is not much tested, but used very often. Add more tests. Especially, check why the dates with a daily granularity do not match the monthly granularity. (Both screenshots take the same input, but one of them goes from 2023-01 till 2024-01, the other only to 2024-11 and does not start from 2023-01)

grafik
grafik

Migrate to LAPIS 2

Currently, the stories use the open LAPIS 1 instance. Migrate to LAPIS 2.

2D plot of collections

It would be amazing if you could create a 2D plot of collections like this plot from Moritz Gerstung:

X-axis number of samples, y axis growth advantage

Or maybe more stable: y-axis is share of sequences uploaded in last 10 days, x axis is number of samples uploaded in last 90 days

Overview: Mutation comparison

The mutation comparison component serves the comparison of mutations of multiple variants. To analyze the mutations of a single variant, the mutations component (#5) should be used.

Tasks

  • #77
    • Allow users to sort by any of the columns (similar to #5)
  • #78
  • UpSet diagram: Add a UpSet diagram (or something inspired by it)
    • Each row is a mutation and each column is a variant.
  • #108
  • #109
  • #110
  • Develop insertion comparison visualization
  • Write a basic description

Configurable confidence level

For advanced users, it should be possible to configure the confidence level.

  • The default confidence level is and should remain 95%.
  • If the confidence level, the confidence level should be visually very clear to see. The confidence level has to be visible in screenshots taken from the affected plots.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.