Skip to content

Generalized collections #938

@chaoran-chen

Description

@chaoran-chen

On CoV-Spectrum, a popular feature are the collections. Any user can create a collection which mainly consists of

  • Title
  • Description
  • List of variant entry where each only consists of
    • Name
    • A normal variant query or an advanced variant query (the SARS-CoV-2-specific query, not the new advanced query)
    • Description

We want to have this feature for all of GenSpectrum, for all organisms.

Data structure / API

Like with CoV-Spectrum collections, we want to support multiple ways of specifying a variant. This can either be a lineage filter + a set of mutations, or an entirely custom advanced query. For the advanced queries, not all filters are valid, for example, you shouldn't be able to filter on collection dates.

In the database, we want to store these different objects as a tagged union.

Authentication

Unlike with CoV-Spectrum, for GS we want to use user account authentication, starting with GitHub as our identity provider.

We want to still implement a mechanism where users can easily collaborate on collections, either by having a collection-admin create edit tokens, or inviting other users as collaborators (Similar to how in Google Docs you can invite someone specifically, or share a general edit link).

We also want to offer a way to authenticate/provide a token that's easy to do automated. We know that users use scripts to update collections, and we want to continue to support this.

We also considered login with ORCID: #1046

User interface

To be refined

Steps

To generalize the feature for whole GenSpectrum / different pathogens, we need:

  • Implement an API to create/edit collections in the backend
  • Define an authentication mechanism (Do we do it the same way as with the CoV-Spectrum collections?)
  • Create a web interface to create and maintain collections

Metadata

Metadata

Assignees

Labels

epicCollection of multiple issues for a larger feature

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions