Function Variant
Definition and Information Model
Warning
This data class is at a draft maturity level and may change significantly in future releases. Maturity levels are described in the GKS Maturity Model.
Computational Definition
A representation of the constraints for matching knowledge about function variants; e.g., gain-of-function or loss-of-function.
Information Model
The FunctionVariant is a Categorical Variant with at least two constraints:
Examples
The following example Categorical Variants satisfy this Recipe:
Implementation Guidance
Constraints
Categorical Variants that are intended to represent Function Variants must contain at least two constraints. First, a Function Constraint is required to associate a Categorical Variant with a known functional impact.
Note
If your implementation also uses the Variant Annotation Specification, consider associating the Categorical Variant with a Genomic Knowledge Statement based on an Experimental Variant Functional Impact.
The functionConsequence attribute is required and is a MappableConcept, meaning that it should be represented using a term from an externally defined ontology. We recommend using descendant terms of the functional effect variant concept in the Sequence Ontology, such as:
Name |
SO Definition |
SO Name |
|
|---|---|---|---|
dominant negative variant |
A variant where the mutated gene product adversely affects the other (wild type) gene product. |
dominant_negative_variant |
|
gain of function |
A sequence variant whereby new or enhanced function is conferred on the gene product. |
gain_of_function_variant |
|
loss of function |
A sequence variant whereby the gene product has diminished or abolished function. |
loss_of_function_variant |
|
loss of heterozygosity |
A functional variant whereby the sequence alteration causes a loss of function of one allele of a gene. |
loss_of_heterozygosity |
|
functionally normal |
A sequence variant in which the function of a gene product is retained with respect to a reference. |
functionally_normal |
Second, a VRS Allele or Sequence Location can be associated with the Categorical Variant using a Defining Allele or Defining Location Constraint, respectively.
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 SequenceReference exists on. Consider the following values, depending on the type of SequenceReference expressed:
Sequence reference type |
moleculeType |
residueAlphabet |
|---|---|---|
Genomic |
genomic |
na |
RNA (pre-mRNA) |
RNA |
na |
mRNA |
mRNA |
na |
Protein |
protein |
aa |
Alternatively or in addition to a Defining Allele or Defining Location, a Feature Context Constraint can be applied to associate a Gene with a Categorical Variant. Within the Feature Context Constraint, the featureContext attribute is required and is a MappableConcept, meaning that it should be represented using a term from an externally defined ontology.
We recommend specifying conceptType as “Gene” and using a symbol from the HUGO Gene Nomenclature Committee (HGNC) as a primaryCoding.
The Gene Normalizer is a Python package and public REST instance that can be used to obtain Codings and Concept Mappings of gene concepts based on Ensembl, NCBI Gene, HGNC, and other data sources.
Note
Implementers use this constraint to represent genes, but it can also be used to represent protein markers, variant consequences, and other genomic features. If you are using this constraint for uses other than to represent genes, please let us know!
Members
When modeling a Function Variant, members may be populated with VRS Alleles or Sequence Location objects that satisfy:
The Allele specified within the Defining Allele Constraint.
The Sequence Location specified within the Defining Location Constraint, and the associated matchCharacteristic.
As is the case with constructing VRS objects for usage within Constraints, we recommend the Variation Normalizer, vrs-python, and SeqRepo as resources for constructing VRS objects. Likewise, we recommend populating both the moleculeType and residueAlphabet attributes of the Sequence Reference for any Allele or Location listed as a member.
Warning
If representing a Function Variant with only a Feature Context Constraint to represent a gene, members may also be added based on the gene’s associated Sequence Location. Gene representation is an area of discussion amongst Genomic Knowledge Standards broadly.