ID References¶
Overview¶
The ClinVar-GKM bundle uses typed identifiers and #/ JSON pointer references to link objects across bundle sections. This page documents all identifier formats, reference patterns, and how to resolve them.
Identifier Namespaces¶
All ClinVar-GKM identifiers use a prefix namespace to indicate the resource type:
| Prefix | Resource Type | Format | Example |
|---|---|---|---|
clinvar: |
Variation | clinvar:{variation_id} |
clinvar:12582 |
clinvar.submission: |
SCV submission | clinvar.submission:SCV{id}.{version} |
clinvar.submission:SCV001571657.2 |
clinvar.submitter: |
Submitter organization | clinvar.submitter:{submitter_id} |
clinvar.submitter:508027 |
clinvar.trait: |
Condition / trait | clinvar.trait:{trait_id} |
clinvar.trait:9580 |
clinvar.traitset: |
Condition set | clinvar.traitset:{trait_set_id} |
clinvar.traitset:1234 |
clinvar.conditionset: |
Condition set minted for a VCV aggregate | clinvar.conditionset:vcv-{md5} |
clinvar.conditionset:vcv-c620785e2025efde81bdd15c814fa83d |
clinvar.therapy: |
Therapy (drug/procedure) | clinvar.therapy:{sha256} |
clinvar.therapy:ab221549…d1c2b |
clinvar.therapygroup: |
Therapy group (combination) | clinvar.therapygroup:{sha256} |
clinvar.therapygroup:df1d8467…9f05c |
ncbigene: |
Gene | ncbigene:{gene_id} |
ncbigene:3077 |
ga4gh: |
VRS identity | ga4gh:{type}.{digest} |
ga4gh:VA.ELQCnIBGqaTl0AEE0Az18XZ2cgIHAQIY |
SQ. |
Sequence reference | SQ.{digest} |
SQ.0iKlIQk2oZLoeOG9P1riRU6hvL5Ux8TV |
VCV and RCV aggregate statement IDs use a hierarchical format without a namespace prefix — see VCV Statement IDs and RCV Statement IDs.
JSON Pointer References¶
Objects reference each other using #/{section}/{key} strings. To resolve a reference:
- Split the string on
/— the second segment is the bundle section name, the third is the key - Look up the key in the named section of the bundle
Reference Patterns¶
| Pattern | Example | Target Section |
|---|---|---|
#/sequenceReference/{key} |
#/sequenceReference/SQ.0iKlIQk2oZLoeOG9P1riRU6hvL5Ux8TV |
sequenceReference |
#/location/{key} |
#/location/ga4gh:SL.Eg_6kV6Bb4FMjm9kEolHZ_4NhU8lBEsZ |
location |
#/allele/{key} |
#/allele/ga4gh:VA.ELQCnIBGqaTl0AEE0Az18XZ2cgIHAQIY |
allele |
#/gene/{key} |
#/gene/ncbigene:3077 |
gene |
#/variation/{key} |
#/variation/clinvar:10 |
variation |
#/condition/{key} |
#/condition/clinvar.trait:9580 |
condition |
#/conditionSet/{key} |
#/conditionSet/clinvar.traitset:1234 |
conditionSet |
#/therapy/{key} |
#/therapy/clinvar.therapy:ab221549…d1c2b |
therapy |
#/therapyGroup/{key} |
#/therapyGroup/clinvar.therapygroup:df1d8467…9f05c |
therapyGroup |
#/submitter/{key} |
#/submitter/clinvar.submitter:500139 |
submitter |
#/propositionPathogenicity/{key} |
#/propositionPathogenicity/SCV001234567-PATH |
propositionPathogenicity |
#/propositionOncogenicity/{key} |
#/propositionOncogenicity/SCV002345678-ONCO |
propositionOncogenicity |
#/propositionSomaticClinicalImpact/{key} |
#/propositionSomaticClinicalImpact/SCV003456789-TR |
propositionSomaticClinicalImpact |
#/propositionClinvarCustom/{key} |
#/propositionClinvarCustom/SCV004567890-RF |
propositionClinvarCustom |
#/scv/{key} |
#/scv/clinvar.submission:SCV001234567.1 |
scv |
#/vcv/{key} |
#/vcv/VCV000012582.63-G-PATH-CP |
vcv |
#/evidenceLine/{key} |
#/evidenceLine/VCV000012582.63-G-PATH-CP.contributing |
evidenceLine |
#/rcv/{key} |
#/rcv/RCV000012345.8-G-PATH-CP |
rcv |
Where References Appear¶
| Object Type | Field | References |
|---|---|---|
| Location | sequenceReference |
#/sequenceReference/ |
| Allele | location |
#/location/ |
| Variation | members[] |
#/allele/ |
| Variation | constraints[].allele |
#/allele/ |
| Variation | constraints[].location |
#/location/ |
| Variation | extensions[].clinvarGeneList[].gene |
#/gene/ |
| Proposition (all types) | subject |
#/variation/ |
| Pathogenicity / Oncogenicity / Custom / Diagnostic / Prognostic | object |
#/condition/ or #/conditionSet/ |
| Therapeutic Response | object |
#/therapy/ or #/therapyGroup/ |
| Therapeutic Response | conditionQualifier |
#/condition/ or #/conditionSet/ |
| ConditionSet | concepts[] |
#/condition/, or #/conditionSet/ for a TraitSet nested in a minted vcv- set |
| TherapyGroup | concepts[] |
#/therapy/ |
| SCV Statement | proposition |
#/proposition{Pathogenicity,Oncogenicity,SomaticClinicalImpact,ClinvarCustom}/ |
| SCV Statement | contributions[].contributor |
#/submitter/ |
| VCV Statement | proposition |
#/proposition{Pathogenicity,Oncogenicity,SomaticClinicalImpact,ClinvarCustom}/ |
| SCV Statement | hasEvidenceLines[] |
#/evidenceLine/ |
| VCV Statement | hasEvidenceLines[] |
#/evidenceLine/ |
| RCV Statement | proposition |
#/proposition{Pathogenicity,Oncogenicity,SomaticClinicalImpact,ClinvarCustom}/ |
| RCV Statement | hasEvidenceLines[] |
#/evidenceLine/ |
| EvidenceLine | hasEvidenceItems[] |
#/scv/, #/vcv/, or #/rcv/ |
Releases before 1.1.0 had two bare-id references
From 1.1.0 every field above is a #/ pointer. Before, two condition references were bare ids: a VCV
proposition's object when the VCV had a single condition (clinvar.trait:2478 rather than
#/condition/clinvar.trait:2478; about 7.5 million propositions), and the concepts of the condition sets
minted for VCV aggregates (clinvar.conditionset:vcv-…). A bare id names the same record: look up
clinvar.trait: ids in condition and clinvar.traitset: ids in conditionSet. A bundle downloaded before
the 1.1.0 republish still has the old form.
The condition, conditionSet, direct_match and normalized_match values in the submittedCondition and
submittedConditionSet extensions are bare CURIEs by design. They record what was submitted and how it was
matched; they are not references.
Resolution Example¶
import gzip
import json
# Load the bundle
with gzip.open("clinvar-gkm_00-latest.json.gz", "rt") as f:
bundle = json.load(f)
def resolve(bundle, ref):
"""Resolve a #/section/key reference to the target object."""
parts = ref.lstrip("#/").split("/", 1)
return bundle[parts[0]][parts[1]]
# Look up a variation
variant = bundle["variation"]["clinvar:10"]
# Resolve its allele member
allele = resolve(bundle, variant["members"][0])
# Resolve the allele's location
location = resolve(bundle, allele["location"])
# Resolve the location's sequence reference
seq_ref = resolve(bundle, location["sequenceReference"])
From pointers to GA4GH models
Working in Python follows these pointers from a statement to its sequence reference and loads each record into the GA4GH model libraries. The GKM Toolkit resolves and exports pointers for the bundles its loader reads; the loader needs upstream updates before it reads ClinVar-GKM 1.1.0 bundles.
SCV Proposition IDs¶
SCV proposition IDs combine the SCV accession with an uppercase proposition type code:
| Component | Description | Examples |
|---|---|---|
scv_id |
SCV accession (without version) | SCV001234567 |
PROP_CODE |
Uppercase proposition type code | PATH, ONCO, SCI, ASSOC, RF, DR, NP, OTH, PROTECT, AFF, CS, CDFS, UNDEF |
Examples: SCV001234567-PATH, SCV004565358-PROG, SCV004565358-TR
Target (somatic evidence line) propositions use the clinical impact assertion type codes: PROG, DIAG, TR.
VCV Statement IDs¶
VCV aggregate statements use a hierarchical ID format reflecting the aggregation layer:
| Layer | Format | Example |
|---|---|---|
| Classification | {VCV}.{ver}-{group}-{PROP}-{level}[-{TIER}] |
VCV000012582.63-G-PATH-CP |
| Priority | {VCV}.{ver}-{group}-{PROP}-{level} |
VCV000012582.63-S-SCI-CP |
| Aggregate | {VCV}.{ver}-{group}-{PROP} |
VCV000012582.63-G-PATH |
Components:
- group — statement group:
G(Germline),S(Somatic),O(Oncogenicity) - PROP — proposition type code (uppercase):
PATH,ONCO,SCI,ASSOC, etc. - level — submission level:
PG,EP,CP,NOCP,NOCL,FLAG - TIER — classification tier (somatic only, uppercase):
TIER 1,TIER 2, etc.
RCV Statement IDs¶
RCV aggregate statements follow the same pattern as VCV but with an RCV accession:
| Layer | Format | Example |
|---|---|---|
| Classification | {RCV}.{ver}-{group}-{PROP}-{level}[-{TIER}] |
RCV000012345.10-G-PATH-CP |
| Priority | {RCV}.{ver}-{group}-{PROP}-{level} |
RCV000012345.10-S-SCI-CP |
| Aggregate | {RCV}.{ver}-{group}-{PROP} |
RCV000012345.10-G-PATH |
The component abbreviations are the same as VCV.
VCV/RCV Proposition IDs¶
VCV and RCV proposition IDs use the accession (without version) in the same layered format:
| Layer | Format | Example |
|---|---|---|
| Classification | {accession}-{group}-{PROP}-{level}[-{TIER}] |
VCV000012582-G-PATH-CP |
| Priority | {accession}-{group}-{PROP}-{level} |
VCV000012582-S-SCI-CP |
| Aggregate | {accession}-{group}-{PROP} |
VCV000012582-G-PATH |
External Cross-References¶
Variation records contain mappings to external databases using standardized URL formats:
| Database | URL Pattern |
|---|---|
| MedGen | https://identifiers.org/medgen:{id} |
| OMIM | http://www.omim.org/entry/{id} |
| HPO | https://identifiers.org/{id} |
| MONDO | https://identifiers.org/mondo:{id} |
| Orphanet | http://www.orpha.net/ORDO/Orphanet_{id} |
| dbSNP | https://identifiers.org/dbsnp:rs{id} |
| ClinGen | https://reg.clinicalgenome.org/.../by_caid?caid={id} |
| UniProtKB | https://www.uniprot.org/uniprot/{id} |
| GTR | https://www.ncbi.nlm.nih.gov/gtr/tests/{id} |
| PubMed | https://pubmed.ncbi.nlm.nih.gov/{id} |
Condition records contain mappings to disease/phenotype databases (OMIM, MONDO, HPO, Orphanet, MeSH) and a primaryCoding from MedGen.