-
Notifications
You must be signed in to change notification settings - Fork 3
Home
The wiki is for technical documentation. See also user guide
- Scope
- System Overview
- Variants
- Patients
- Annotation
- Genes
- Analysis
- Classification
- ClinVar Export
- Sequencing Data
- Authentication
- Database
- Front End
- Install
- Configuration
- Maintenance
- Coding Style
- Testing
VariantGrid aims to allow biologists and medical scientists to perform filtering, visualisation and curation of variant (ie VCF derived) data themselves via a graphical interface.
We aim to integrate with existing mapping & variant calling pipelines, LIMS and patient record systems in labs.
- Django
- Postgres
- Celery - for async worker jobs
- RabbitMQ - Celery broker
- Redis - cache and Celery result backend
We make a number of technical trade-offs:
- System designed for 10-100k samples, mostly exomes
- Multi-sample analysis is done on samples from same VCF (ie we do not store bams or gVCFs)
- Optimise for bioinformatician productivity vs raw performance
Supported genome builds: GRCh37, GRCh38 and T2T-CHM13v2.0.
See also:
Variants from different VCFs are linked to a single database record. VCF sample data (zygosity/allele depth etc) are stored in partitioned tables, and packed into a single row (to reduce joins on multi-sample queries)
- Variants and Alleles - database design
- Genotype Queries
- Cohort Genotype Common Filters - splitting common/uncommon variants for performance
- VCF import
- VCF chromosome / contig names
- Liftover - converting between genome builds
Patient and phenotype management is handled in the "patients" app. See the user guide for how patients, samples and phenotypes fit together.
- VEP - Ensembl Variant Effect Predictor (used for variant annotation)
- Variant Annotation - annotation versions, range locks, annotation runs
- Annotation Column Versions - which columns exist at which version, and how to upgrade
- Variant Annotation - adding new columns
- Generating Annotation Data - producing the gnomAD/dbNSFP/conservation data files we host
- External Annotation - run VEP off-VM & reuse annotated VCFs between clones
- Backfill Annotation - correct/fill in individual annotation columns without re-running VEP
- HGVS cDNA and genomic coordinate conversion - how we resolve HGVS across RefSeq/Ensembl and builds
- Gene and Transcript Version Data - installing transcript data via cdot
- Generating Transcript Version Data
- Transcript Versions and Python HGVS library discussion
Users can make custom variant filters graphically by constructing a directed acyclic graph of Analysis Nodes which represent sources or filters of variants.
These filters work entirely in SQL (abstracted via Django Q objects) and so can be combined easily using logical operators and work in real time.
See https://shariant.readthedocs.io
- Classification Import - resolving submitted HGVS/coordinates to variants and alleles
Germline and somatic classifications are separated by allele origin bucket
(AlleleOriginBucket: Germline / Somatic / Unknown), which flows through to grouping, discordance and
ClinVar export.
Sequencing and QC is handled in the "seqauto" app. It crawls disks to load QC files and import VCFs, and
exposes DRF ViewSets (seqauto/views_rest.py) for sequencing runs, enrichment kits, sequencers and
coverage.
- Users - adding / managing etc
- Users, permissions and groups - Per object permissions (via Django Guardian)
- User / Lab Assignment - how lab membership works
- LDAP Setup - Use Windows Active Directory logins on an intranet
- Keycloak Setup
- Keycloak Integration
- HTML/Template Style guide
- Web CSS Style Guide
- Customising appearance - how to change the appearance across different deployments
- Install (Developer) - on your own machine
- Install (Server) - deployed, running as services
- Install - the steps shared by both
- Install Python venv
- Install VEP / Install AnnotSV / Install Annotation / Install bcftools liftover
- Install from database dump
- Run VariantGrid
- Upgrading - how to upgrade a server
- Database backup and restore
- Developer Setup and Tips
- Troubleshooting / VEP Troubleshooting
- Raising Issues