RFC: GeneBe Database Format for Genetic Variant Annotations #1
pstawinski
announced in
RFCs
Replies: 1 comment
|
First Round of the RFC is Over – Thank You! The first round of the RFC has officially concluded. A huge thank you to everyone who shared their ideas via private messages! Your input has been greatly appreciated. While this round is over, the discussion remains open—if you still have suggestions, feel free to send them. A summary of the first round will be shared soon. Stay tuned! |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
RFC: GeneBe Database Format for Genetic Variant Annotations
Introduction
GeneBe Hub Database format is a repository format for genetic variant annotations, designed to store and query genomic data efficiently. The format leverages the Parquet file format, known for its wide support and efficient columnar data storage. This RFC discusses the structure of the GeneBe database format, its usage, and its limitations.
As we have been working with variant analysis and annotation for a long time, we typically annotate our variants based on:
Therefore, we currently distinguish four types of annotations in GeneBe:
Format Specification
GeneBe uses Parquet for data storage. It is a columnar storage format. Columns with names starting with "_" are special columns (key fields) used for indexing annotations by variant, position, or range.
Key Field Details
GeneBe encodes variants following the SPDI (Sequence, Position, Deletion, Insertion) format but with several modifications:
For example, the VCF variant
chr1-1000-AG-TTwould be encoded as1:999:2:TT.Key Fields by Database Type
Justification
1is preferred overchr1, andMoverMT.File Format and Partitioning
GeneBe databases are stored in Parquet format and partitioned using the _seq column. The Parquet files are sorted by:
Justification
Partitioning and File Naming
.parquetextension and be compressed with zstd.[a-zA-Z0-9.@-]+and avoid reserved substrings like ".." and symlinks.Database Versioning
GeneBe databases use Semantic Versioning (SemVer):
If a database follows another versioning system (e.g., ClinVar's date-based versioning), use the pre-release version in SemVer, e.g.,
1.0.0-20241201.Justification
Semantic Versioning is widely adopted. While we could adopt original database versioning (e.g., dbSNP 156, GnomAD 4.1.0), this wouldn't convey backward compatibility of column names. SemVer with pre-release tags ensures safe updates.
Database Metadata
Metadata is stored in local database storage alongside Parquet data:
README.md– Human-friendly database description, also displayed on GeneBe Hub.LICENSE.txt– License information for the database.description.toml– Human- and machine-readable metadata including genome version, species, database type, and column descriptions.Justification
LICENSE.txt.TOMLis preferred over YAML/JSON for its readability and structured format.Discussion
Several aspects need further consideration:
Gene/Transcriptannotations are not yet implemented. Key questions include index selection (e.g., Ensembl vs. RefSeq) and whether gene symbols should be used despite their instability.Try it yourself
To see format in action follow the steps from GeneBe Hub getting started guide, download the client and the annotations. You can also read more about the format and opening the downloaded annotations on dedicated GeneBe Hub Format page.
Call for Feedback
This is an early draft of the GeneBe database format. We encourage feedback, suggestions, and concerns to refine the format before moving the implementation from alpha to beta 😊.
All reactions