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
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.
sequenceDiagram actor Bioinf actor Doctor participant GPBbackend participant GPBfrontend participant GPBstore participant InternetDB link GPBstore: Link to repo @ https://gitlab.com/alleles/genepanel-store 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 end %% 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