{ "$schema": "http://json-schema.org/schema#", "definitions": { "Allele": { "additionalProperties": false, "description": "An assertion of a sequence state at a Location.", "properties": { "_id": { "$ref": "#/definitions/CURIE" }, "location": { "$ref": "#/definitions/Location" }, "state": { "$ref": "#/definitions/State" }, "type": { "default": "Allele", "enum": [ "Allele" ], "type": "string" } }, "type": "object" }, "CURIE": { "additionalProperties": false, "description": "A string that refers to an object uniquely. The lifetime and scope of an id is defined by the sender.\nVR does not impose any contraints on strings used as ids in messages. However, to maximize sharability of data, the VR Specification RECOMMENDS that implementations use [W3C Compact URI (CURIE)](https://www.w3.org/TR/curie/) syntax.\nString CURIEs are represented as `prefix`:`reference` (W3C terminology), but often referred to as `namespace`:`accession` or `namespace`:`local id` colloquially.\nThe VR specification also RECOMMENDS that `prefix` be defined in identifiers.org.\nThe `reference` component is an unconstrained string.\nA CURIE is a URI. URIs may *locate* objects (i.e., specify where to retrieve them) or *name* objects conceptually. VR uses CURIEs primarily as a naming mechanism.\nImplementations MAY provide CURIE resolution mechanisms for prefixes to make these objects locatable.\nUsing internal ids in public messages is strongly discouraged.", "example": "ga4gh:GA.01234abcde", "pattern": "^\\w[^:]+:.+$", "type": "string" }, "DateTime": { "additionalProperties": false, "format": "date-time", "type": "string" }, "Interval": { "additionalProperties": false, "description": "An Interval represents a span of sequence. Positions are always represented by contiguous spans using interbase coordinates.\nThis definition of Interval is intended to be compatible with that in Sequence Ontology ([SO:0000001](http://www.sequenceontology.org/browser/current_svn/term/SO:0000001)), with the exception that the GA4GH VR Interval may be zero-width. The SO definition is for an \"extent greater than zero\".", "discriminator": { "propertyName": "type" }, "oneOf": [ { "$ref": "#/definitions/SimpleInterval" } ] }, "Location": { "additionalProperties": false, "description": "A Location represents a span on a specific sequence.", "discriminator": { "propertyName": "type" }, "oneOf": [ { "$ref": "#/definitions/SequenceLocation" } ] }, "SequenceLocation": { "additionalProperties": false, "properties": { "_id": { "$ref": "#/definitions/CURIE" }, "interval": { "$ref": "#/definitions/Interval" }, "sequence_id": { "$ref": "#/definitions/CURIE" }, "type": { "default": "SequenceLocation", "enum": [ "SequenceLocation" ], "type": "string" } }, "type": "object" }, "SequenceState": { "additionalProperties": false, "example": { "sequence": "C", "type": "SequenceState" }, "properties": { "sequence": { "nullable": false, "type": "string" }, "type": { "default": "SequenceState", "enum": [ "SequenceState" ], "type": "string" } }, "required": [ "type", "sequence" ], "type": "object" }, "SimpleInterval": { "additionalProperties": false, "example": { "end": 22, "start": 11, "type": "SimpleInterval" }, "properties": { "end": { "nullable": true, "type": "integer" }, "start": { "nullable": true, "type": "integer" }, "type": { "default": "SimpleInterval", "enum": [ "SimpleInterval" ], "type": "string" } }, "required": [ "start", "end" ], "type": "object" }, "State": { "oneOf": [ { "$ref": "#/definitions/SequenceState" } ] }, "Text": { "additionalProperties": false, "properties": { "_id": { "$ref": "#/definitions/CURIE" }, "definition": { "description": "An textual representation of variation intended to capture variation descriptions that cannot be parsed, but still treated as variation.", "type": "string" }, "type": { "default": "Text", "enum": [ "Text" ], "type": "string" } }, "type": "object" }, "Variation": { "additionalProperties": false, "description": "A polymorphic representation of variation", "discriminator": { "propertyName": "type" }, "oneOf": [ { "$ref": "#/definitions/Text" }, { "$ref": "#/definitions/Allele" } ] } }, "title": "GA4GH-VR-Definitions", "type": "object" }