Canonical Allele
Definition and Information Model
Note
This data class is at a trial use maturity level and may change in future releases. Maturity levels are described in the GKS Maturity Model.
Computational Definition
A canonical allele is defined by an Allele that is representative of a collection of congruent Alleles, each of which depict the same nucleic acid on different underlying reference sequences. Congruent representations of an Allele often exist across different genome assemblies and associated cDNA transcript representations.
Information Model
A CanonicalAllele is a Categorical Variant with exactly one constraint:
A Defining Allele Constraint with the relations array containing both liftover_to and transcribed_to codes. This constraint MUST refer to a genomic variant for the allele.
Examples
The following example Categorical Variants satisfy this Recipe:
Implementation Guidance
Constraints
Categorical Variants that are intended to represent Canonical Alleles must only contain the Defining Allele Constraint, with an Allele on a genomic Sequence Reference and the following required codings specified as relations:
Warning
Some terms use the system ga4gh-gks-term. This is an internally controlled vocabulary used specifically within the Categorical Variant Representation Specification. We may add more terms in the future. If you would like to recommend a new term, please open a Discussion to suggest one!
Code |
System |
Rationale |
|---|---|---|
liftover_to |
ga4gh-gks-term:allele-relation:allele-relation |
To specify that VRS Alleles that are listed as members may be a liftover of the Defining |
transcribed_to |
To specify that VRS Alleles that are listed as members may be transcribed from the Defining Allele. |
We recommend the following resources for constructing VRS objects:
The Variation Normalizer is a Python package and public REST instance that translates plain-text HGVS expressions (for example, “NM_004333.4:c.1799T>A”) or free text natural language input (for example, “BRAF V600E”) into Normalized VRS Allele objects. The
/normalizeendpoint will lift genomic coordinates to the preferred GRCh38 assembly and transcripts will use the transcript selection algorithm. Additionally, HGVS Dup Del Mode will be applied for deletions and duplications represented as HGVS expressions.vrs-python is a Python package and reference implementation for VRS that can be used to generate VRS digests for an Allele, Sequence Location, Sequence Reference, and other VRS concepts.
SeqRepo provides access to reference sequences and can be used to obtain Sequence Reference information, such as names and aliases, when constructing Sequence Reference objects directly.
Note
While neither the moleculeType nor residueAlphabet are required attributes for a Sequence Reference, we strongly recommend populating them within your implementation to clearly communicate to users what type of sequence your Allele exists on. Consider the following values for the Defining Allele that is intended to be represented as a Canonical Allele:
Sequence reference type |
moleculeType |
residueAlphabet |
|---|---|---|
Genomic |
genomic |
na |
Members
When modeling a Canonical Allele, members may be populated with VRS Allele objects that are:
The Defining Allele itself
A liftover of the Defining Allele on another reference genome
An RNA (pre-mRNA) or mRNA
Alleletranscribed from the Defining AlleleA protein
Allelethat is a translation of the Defining Allele.
As is the case with constructing VRS Allele objects for the Defining Allele, we recommend the Variation Normalizer, vrs-python, and SeqRepo as resources for constructing VRS Allele objects. Likewise, we recommend populating both the moleculeType and residueAlphabet attributes of the Sequence Reference for any Allele listed as a member.
Sequence reference type |
moleculeType |
residueAlphabet |
|---|---|---|
Genomic |
genomic |
na |
RNA |
RNA |
na |
mRNA |
mRNA |
na |
Protein |
protein |
aa |
For additional Implementation Guidance, please visit VRS’ page for the Sequence Location concept.