Resource Identifiers

New in v2

In VRS v1, references to VRS objects by GA4GH Computed Identifiers were allowed in some data classes. In VRS v2, such references have been expanded to include any iriReference, and consequently VRS now also supports references to objects from classes that do not have GA4GH Computed Identifiers.

Some VRS data classes, such as the Allele, may reference other classes by an iriReference. This enables data producers to reference other objects following the rfc3987 standard. GA4GH Computed Identifiers may serve as IRI references in VRS.

Example:

The three Alleles below share a Sequence Location and define it by reference:

{
    "alleles": [
        {
            "type": "Allele",
            "state": {
                "type": "LiteralSequenceExpression",
                "sequence": "A"
            },
            "location": "ga4gh:SL.4t6JnYWqHwYw9WzBT_lmWBb3tLQNalkT"
        },{
            "type": "Allele",
            "state": {
                "type": "LiteralSequenceExpression",
                "sequence": "G"
            },
            "location": "ga4gh:SL.4t6JnYWqHwYw9WzBT_lmWBb3tLQNalkT"
        },{
            "type": "Allele",
            "state": {
                "type": "LiteralSequenceExpression",
                "sequence": "C"
            },
            "location": "ga4gh:SL.4t6JnYWqHwYw9WzBT_lmWBb3tLQNalkT"
        }]
}

This Sequence Location may be defined elsewhere (e.g. another API endpoint, document, or internal data structure) and retrievable by ID:

{
    "id": "ga4gh:SL.4t6JnYWqHwYw9WzBT_lmWBb3tLQNalkT",
    "type": "SequenceLocation",
    "sequenceReference": "GRCh38.chr7",
    "start": 44908821,
    "end": 44908822,
    "sequence": "T"
}

And in turn, the Sequence Reference object referenced by the Sequence Location:

{
    "id": "GRCh38.chr7",
    "label": "Chromosome 7 (build GRCh38)",
    "type": "SequenceReference",
    "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul",
    "residueAlphabet": "na",
    "moleculeType": "genomic"
}

A dereferenced Allele would include all of the above, nested components:

{
    "type": "Allele",
    "state": {
        "type": "LiteralSequenceExpression",
        "sequence": "A"
    },
    "location": {
        "id": "ga4gh:SL.4t6JnYWqHwYw9WzBT_lmWBb3tLQNalkT",
        "type": "SequenceLocation",
        "sequenceReference": {
            "id": "GRCh38.chr7",
            "label": "Chromosome 7 (build GRCh38)",
            "type": "SequenceReference",
            "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul",
            "residueAlphabet": "na",
            "moleculeType": "genomic"
        }
        "start": 44908821,
        "end": 44908822,
        "sequence": "T"
    }
}