Additional Data Types

Below are the additional data types used by the VRS models. Any classes with the imported tag are used by VRS but maintained by the GA4GH GKS Work Stream as common data classes.

Abstract Classes

Abstract classes provide common semantics and properties that are shared by multiple inheriting classes. This provides a useful structure for consistency across multiple concrete classes (e.g. different variation types).

GA4GH Identifiable Object

Many VRS objects are GA4GH Identifiable Objects, which may be used to create Computed Identifiers.

In addition to having GA4GH serialization keys (see Digest Serialization), GA4GH identifiable objects also have a defined GA4GH identifier type prefix (see Identifier Construction).

Definition and Information Model

Trial Use

May change in future releases. See Maturity Model.

Abstract Class — not instantiated directly; concrete subclasses inherit its attributes.

Computational Definition

An object for which a GA4GH computed identifier can be created.

Information Model

Some Ga4ghIdentifiableObject attributes are inherited from Entity.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the Entity in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

type

string

1..1

The name of the class that is instantiated by a data object representing the Entity.

name

string

0..1

A primary name for the entity.

description

string

0..1

A free-text description of the Entity.

aliases

⋮

string

0..m

Alternative name(s) for the Entity.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

digest

string

0..1

A sha512t24u digest created using the VRS Computed Identifier algorithm.

Inherits: Entity

Subclasses: Location, Variation

Variation

The root of all variant data classes, Variation primarily plays a role as a common schema for representing variants and associated variant expressions, such as HGVS, ISCN, or SPDI strings.

Definition and Information Model

Trial Use

May change in future releases. See Maturity Model.

Abstract Class — not instantiated directly; concrete subclasses inherit its attributes.

Sealed — Variation has a closed, exhaustive set of concrete subclasses; every one is listed below. No other subclass is permitted, and a conforming instance must be exactly one of these types.

Computational Definition

A representation of the state of one or more biomolecules.

Information Model

Some Variation attributes are inherited from GA4GH Identifiable Object.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the Entity in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

type

string

1..1

The name of the class that is instantiated by a data object representing the Entity.

name

string

0..1

A primary name for the entity.

description

string

0..1

A free-text description of the Entity.

aliases

⋮

string

0..m

Alternative name(s) for the Entity.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

digest

string

0..1

A sha512t24u digest created using the VRS Computed Identifier algorithm.

expressions

⋮

Expression

0..m

This class must match one of the following:

Inherits: GA4GH Identifiable Object

Subclasses: Molecular Variation, Systemic Variation

Components

Expression

An Expression is a data class used only by Variation objects. It is used to represent variants using other syntaxes, including HGVS and SPDI.

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

Representation of a variation by a specified nomenclature or syntax for a Variation object. Common examples of expressions for the description of molecular variation include the HGVS and ISCN nomenclatures.

Information Model

Some Expression attributes are inherited from Element.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the data element in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

syntax

string

1..1

The syntax used to describe the variation. The value should be one of the supported syntaxes.

value

string

1..1

The expression of the variation in the specified syntax. The value should be a valid expression in the specified syntax.

syntax_version

string

0..1

The version of the syntax used to describe the variation. This is particularly important for HGVS expressions, as the syntax has evolved over time.

Inherits: Element

Used in: Adjacency, Allele, Cis-Phased Block, Copy Number Change, Copy Number Count, Derivative Molecule, Molecular Variation, Relative Allele, Systemic Variation, Terminus, Variation

Entity

imported

Trial Use

May change in future releases. See Maturity Model.

Abstract Class — not instantiated directly; concrete subclasses inherit its attributes.

Computational Definition

Anything that exists, has existed, or will exist.

Information Model

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the Entity in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

type

string

1..1

The name of the class that is instantiated by a data object representing the Entity.

name

string

0..1

A primary name for the entity.

description

string

0..1

A free-text description of the Entity.

aliases

⋮

string

0..m

Alternative name(s) for the Entity.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

Subclasses: ConceptSet, GA4GH Identifiable Object, Mappable Concept, Sequence Expression, Sequence Offset Location, Sequence Reference, Traversal Block

Element

imported

Trial Use

May change in future releases. See Maturity Model.

Abstract Class — not instantiated directly; concrete subclasses inherit its attributes.

Computational Definition

The base definition for all identifiable data objects.

Information Model

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the data element in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

Subclasses: Coding, Concept Mapping, Expression, Extension

General Purposes Types

General purpose data types.

Extension

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

The Extension class provides entities with a means to include additional attributes that are outside of the specified standard but needed by a given content provider or system implementer. These extensions are not expected to be natively understood, but may be used for pre-negotiated exchange of message attributes between systems.

Information Model

Some Extension attributes are inherited from Element.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the data element in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

name

string

1..1

A name for the Extension. Should be indicative of its meaning and/or the type of information it value represents.

value

[‘number’, ‘string’, ‘boolean’, ‘object’, ‘array’, ‘null’]

1..1

The value of the Extension - can be any primitive or structured object

description

string

0..1

A description of the meaning or utility of the Extension, to explain the type of information it is meant to hold.

Inherits: Element

Used in: Adjacency, Allele, Cis-Phased Block, Coding, Concept Mapping, ConceptSet, Copy Number Change, Copy Number Count, Derivative Molecule, Entity, Expression, GA4GH Identifiable Object, Length Expression, Literal Sequence Expression, Location, Mappable Concept, Molecular Variation, Reference Length Expression, Relative Allele, Relative Sequence Location, Sequence Expression, Sequence Location, Sequence Offset Location, Sequence Reference, Systemic Variation, Terminus, Traversal Block, Variation

Mappable Concept

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

A concept based on a primaryCoding and/or name that may be mapped to one or more other Codings.

Information Model

Some MappableConcept attributes are inherited from Entity.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the Entity in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

type

string

1..1

MUST be “MappableConcept”.

name

string

0..1

A primary name for the concept.

description

string

0..1

A free-text description of the Entity.

aliases

⋮

string

0..m

Alternative name(s) for the Entity.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

conceptType

string

0..1

A term indicating the type of concept being represented by the MappableConcept.

primaryCoding

Coding

0..1

A primary coding for the concept.

mappings

⋮

Concept Mapping

0..m

A list of mappings to concepts in terminologies or code systems. Each mapping should include a coding and a relation.

Additional Constraints

This class requires at least one of name or primaryCoding.

Inherits: Entity

Used in: ConceptSet

ConceptSet

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

A set of concepts that may be considered as dependent (occurring together), or independent (existing separately) in the context of some knowledge reported about them, as indicated by a set membership operator. e.g. a set of independent molecular consequences that both result from the presence of a particular genetic variant (membership operator = OR).

Information Model

Some ConceptSet attributes are inherited from Entity.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the Entity in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

type

string

1..1

MUST be “ConceptSet”.

name

string

0..1

A primary name for the entity.

description

string

0..1

A free-text description of the Entity.

aliases

⋮

string

0..m

Alternative name(s) for the Entity.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

conceptSetType

string

0..1

A term indicating the type of concept being represented by the ConceptSet.

concepts

⋮

Mappable Concept | ConceptSet | iriReference

2..m

A list of concepts that are dependent (occurring together), or independent (existing separately), depending on the membership operator.

membershipOperator

string

1..1

The logical relationship between concepts in the set, in the context of some knowledge reported about them. The value ‘AND’ indicates that the concepts are dependent and occur together in this context - i.e. the reported assertion is not necessarily true for each concept on its own - only in combination with the other(s). The value ‘OR’ indicates that each concept applies independently in this context - i.e. the reported assertion is necessarily true for each concept on its own, independent of the presence of the other(s).

Inherits: Entity

Concept Mapping

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

A mapping to a concept in a terminology or code system.

Information Model

Some ConceptMapping attributes are inherited from Element.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the data element in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

coding

Coding

1..1

A structured representation of a code for a defined concept in a terminology or code system.

relation

string

1..1

A mapping relation between concepts as defined by the Simple Knowledge Organization System (SKOS).

Inherits: Element

Used in: Mappable Concept

Coding

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

A structured representation of a code for a defined concept in a terminology or code system.

Information Model

Some Coding attributes are inherited from Element.

Field

Flags

Type

Limits

Description

id

string

0..1

The ‘logical’ identifier of the data element in the system of record, e.g. a UUID. This ‘id’ is unique within a given system, but may or may not be globally unique outside the system. It is used within a system to reference an object from another.

extensions

⋮

Extension

0..m

A list of extensions to the Entity, that allow for capture of information not directly supported by elements defined in the model.

name

string

0..1

The human-readable name for the coded concept, as defined by the code system.

system

string

1..1

The terminology/code system that defined the code. May be reported as a free-text name (e.g. ‘Sequence Ontology’), but it is preferable to provide a uri/url for the system.

systemVersion

string

0..1

Version of the terminology or code system that provided the code.

code

code

1..1

A symbol uniquely identifying the concept, as in a syntax defined by the code system. e.g. ‘civic.did:30’, ‘MONDO:005061’, and ‘C3512’ are codes defined by different systems for representing the concept of ‘lung adenocarcinoma’. If a dereferencable identifier is available for the code, it should be provided in the iris field.

iris

⋮

iriReference

0..m

A list of IRIs that are associated with the coding. This can be used to provide additional context or to link to additional information about the concept.

Inherits: Element

Used in: Concept Mapping, Mappable Concept

Primitive Types

Primitive types represent simple values with syntactic or other constraints. They enable correctness for values stored in VRS.

Range

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

An inclusive range of values bounded by one or more integers.

Used in: Copy Number Count, Length Expression, Reference Length Expression, Sequence Location, Sequence Offset Location

residue

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

A character representing a specific residue (i.e., molecular species) or groupings of these (“ambiguity codes”), using one-letter IUPAC abbreviations for nucleic acids and amino acids.

sequenceString

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

A character string of residues that represents a biological sequence using the conventional sequence order (5’-to-3’ for nucleic acid sequences, and amino-to-carboxyl for amino acid sequences). IUPAC ambiguity codes are permitted in Sequence Strings.

Used in: Literal Sequence Expression, Reference Length Expression, Sequence Location, Sequence Reference

code

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

Indicates that the value is taken from a set of controlled strings defined elsewhere. Technically, a code is restricted to a string which has at least one character and no leading or trailing whitespace, and where there is no whitespace other than single spaces in the contents.

Used in: Coding

iriReference

imported

Trial Use

May change in future releases. See Maturity Model.

Computational Definition

An IRI Reference (either an IRI or a relative-reference), according to RFC3986 section 4.1 and RFC3987 section 2.1. MAY be a JSON Pointer as an IRI fragment, as described by RFC6901 section 6.

Used in: Adjacency, Allele, Cis-Phased Block, Coding, ConceptSet, Copy Number Change, Copy Number Count, Derivative Molecule, Relative Allele, Relative Sequence Location, Sequence Location, Sequence Offset Location, Terminus