Skip to content

Gene panel builder and process

Gene panel builder (GPB) is a tool for effective creation, maintenance, update and storage of gene panels.

There are typically three different user roles:

  • Lab doctors: Define the composition of panels in terms of genes and regions; adjust modes of inheritance.
  • Molecular biologists: Mostly concerned with selecting appropriate default transcripts and ensuring technical quality of analyses (sufficient coverage etc).
  • Bioinformaticians: Run CLI tasks to update reference data and export panels as files to be deployed in pipelines and interpretation software.

Process for automatic and manual updates

The intention of GPB is to allow for a simple lean process for the different user roles and make it easy to keep panels up to date with new reference data, review changes, and maintain versioning of panels as they evolve.

GPB keeps reference data and panel designs locally stored within a database. Regularly, for example every quarter, the reference data underlying GPB are refreshed and panels are updated with any changes (i.e., a new build) as a result. The process is as follows (see also "Update external reference data" and "Export and deploy gene panels" for step by step guides):

Step 1 - Update reference data and make new drafts (automatic updates only)

Users are notified of the incoming update of reference data like PanelApp panels, transcripts, and modes of inheritance. The notification is necessary as panels can change as a result of the update process. A bioinformatician then carries out the update. This is done with a simple CLI command that downloads data from various API/FTP services on the Internet and updates the database (see technical docs for details).

After the reference data are updated, the bioinformatician runs another CLI command that exports the latest versions of all panels as files. These files are compared to their extant production counterparts, and a so-called "diff report" is generated alongside draft-version copies of all panels with a reported diff.

The bioinformatician sends the diff report to the doctors to inform them of any pending changes.

Step 2 - Review of changes and versioning

The front page of the GPB UI lists all panels, including drafts. A doctor must inspect all panels with a reported diff, newly created or updated, review the latter in the separate diff report received from the bioinformatician, and perform any necessary changes. For all draft panels, the doctor finally presses Submit, bumping each draft version to the latest version + 1 minor. If there are significant changes, for example if genes are added or removed in the new version, the doctor has the option to bump the major version instead of the minor by ticking Bump major version before clicking Submit.

When all panels have been processed, a bioinformatician exports the latest versions of all panels once again (this time without prior update of the reference data). A new final diff report is produced and added for reference as an attachment to a change management document (Norwegian: "Endringskontroll") which is then approved by the doctors.

Step 3 - Deployment

A bioinformatician pushes the exported panel files to a version-controlled "gene panel store" repository, applies a new release tag, checks it out and deploys it into production systems where pipelines and downstream services that depend on these files can access them. Finally, gene panel procedures, ordering portals (Norway: "Genetikkportalen"), and hospital homepages are updated with any relevant changes.

actor Bioinf
actor Doctor
participant GPBbackend
participant GPBfrontend
participant GPBstore
participant InternetDB
link GPBstore: Link to repo @

Bioinf->>Doctor: Notify "update"
Bioinf->>GPBbackend: CLI Update data
GPBbackend->>InternetDB: Get data from API/FTP
InternetDB-->>GPBbackend: updated data
Bioinf->>GPBbackend: CLI Export panels
Bioinf->>GPBbackend: CLI Diff
GPBbackend-->>Bioinf: diff report
Bioinf->>GPBbackend: Create draft copies
Note over GPBbackend: One draft copy of each panel with diff is created
Bioinf-)Doctor: Send diff report
Doctor->>GPBfrontend: List all draft panels
loop For all draft panels
    Note over GPBbackend: Doctor reviews diff report before "Submit"
    Doctor->>GPBfrontend: "Edit"/"Submit" draft
    GPBfrontend->>GPBbackend: Export on "Submit"
    GPBbackend-->>Bioinf: panel as files
%% When all is done
Bioinf->>GPBbackend: CLI Diff
GPBbackend-->>Bioinf: diff report
Bioinf-)Doctor: Send diff report
Doctor--)Bioinf: Approve diff
Bioinf->>GPBstore: Push changes