Data Model¶
The ClinVar-GKS release file organizes data into bundle sections, each containing objects of a specific class. These classes form a directed graph of relationships — variants reference alleles, alleles reference locations, statements reference propositions, and so on.
This page provides a visual overview of how the classes relate to each other, with links to detailed documentation for each class.
Class Relationship Diagram¶
The diagram below shows how the bundle classes relate to each other in a UML-style view. Each class shows its key attributes. Lines indicate reference relationships — navigable from the class with the arrow. Multiplicity is shown on each end.
classDiagram
direction TB
namespace Variation {
class SequenceReference {
refgetAccession : string
residueAlphabet : string
molecularType : string
extensions : Extension[0..*]
}
class Location {
id : ga4gh:SL.digest
start : integer
end : integer
}
class Allele {
id : ga4gh:VA.digest
state : object
expressions : Expression[0..*]
}
class Gene {
id : ncbigene:id
conceptType : gene
name : string
primaryCoding : Coding
mappings : Mapping[0..*]
}
class CategoricalVariant {
id : clinvar:id
type : string
name : string
constraints : Constraint[0..*]
mappings : Mapping[0..*]
extensions : Extension[0..*]
}
}
namespace Supporting {
class Condition {
id : clinvar.trait:id
name : string
primaryCoding : Coding
mappings : Mapping[0..*]
}
class ConditionSet {
id : clinvar.traitset:id
operator : AND | OR
}
class Submitter {
id : clinvar.submitter:id
name : string
}
class Proposition {
id : string
type : string
predicate : string
geneContextQualifier : Concept[0..1]
modeOfInheritanceQualifier : Concept[0..1]
penetranceQualifier : Concept[0..1]
}
}
namespace Statements {
class ScvStatement {
id : clinvar.submission:id.ver
type : Statement
classification : MappableConcept
strength : MappableConcept
direction : string
confidence : Concept
contributions : Contribution[1..*]
specifiedBy : Method[0..1]
reportedIn : Publication[0..*]
extensions : Extension[0..*]
}
class VcvStatement {
id : VCV.ver-group-PROP-level
type : Statement
classification : MappableConcept
strength : MappableConcept
direction : string
confidence : Concept
extensions : Extension[0..*]
}
class RcvStatement {
id : RCV.ver-group-PROP-level
type : Statement
classification : MappableConcept
strength : MappableConcept
direction : string
confidence : Concept
extensions : Extension[0..*]
}
class EvidenceLine {
type : EvidenceLine
directionOfEvidenceProvided : string
strengthOfEvidenceProvided : MappableConcept
}
}
%% Variation relationships
Location "1" --> "1" SequenceReference : sequenceReference
Allele "1" --> "1" Location : location
CategoricalVariant "*" --> "0..*" Allele : members
CategoricalVariant "*" ..> "0..*" Gene : extensions.clinvarGeneList
%% Supporting relationships
ConditionSet "1" --> "1..*" Condition : members
Proposition "*" --> "1" CategoricalVariant : subjectVariant
Proposition "*" --> "0..1" Condition : objectCondition
Proposition "*" --> "0..1" ConditionSet : objectCondition
%% Statement → Proposition
ScvStatement "1" --> "1" Proposition : proposition
VcvStatement "1" --> "1" Proposition : proposition
RcvStatement "1" --> "1" Proposition : proposition
%% Statement → Submitter
ScvStatement "*" --> "1..*" Submitter : contributions
%% Evidence lines
ScvStatement "1" --> "0..*" EvidenceLine : hasEvidenceLines
VcvStatement "1" --> "1..*" EvidenceLine : hasEvidenceLines
RcvStatement "1" --> "1..*" EvidenceLine : hasEvidenceLines
%% Evidence items (what evidence lines reference)
EvidenceLine "*" --> "1..*" ScvStatement : evidenceItems
EvidenceLine "*" ..> "0..*" VcvStatement : evidenceItems
EvidenceLine "*" ..> "0..*" RcvStatement : evidenceItems
Reading the diagram:
- Solid lines are primary associations — always present when the parent object exists
- Dashed lines are optional or conditional associations (e.g., gene list from extensions, VCV/RCV self-referencing through evidence lines)
- Multiplicity on each end indicates cardinality (e.g.,
1= exactly one,0..*= zero or more,1..*= one or more) - Labels on lines show the field name or JSON pointer path used for the reference
Variation Classes¶
These classes represent the variant and its genomic context. VRS types (SequenceReference, Location, Allele) use their upstream GA4GH schemas directly. ClinVar-specific profiles are documented under Variations.
| Class | Bundle Section | Key Pattern | Description |
|---|---|---|---|
| SequenceReference | sequenceReference |
SQ.{digest} |
Reference sequence with refget accession, molecule type, and assembly |
| Location | location |
ga4gh:SL.{digest} |
Position or range on a sequence reference |
| Allele | allele |
ga4gh:VA.{digest} |
Specific sequence change at a location |
| Gene | gene |
ncbigene:{id} |
Gene MappableConcept with NCBI Gene primaryCoding and HGNC mapping |
| ClinvarCategoricalVariant | variation |
clinvar:{id} |
ClinVar variation with Cat-VRS representation and extensions |
See Variations for the full variant type hierarchy and extension documentation.
Supporting Classes¶
These classes represent the conditions, submitters, and propositions that support classification statements. Conditions and submitters use upstream GA4GH types. ClinVar-specific proposition types are documented under Propositions.
| Class | Bundle Section | Key Pattern | Description |
|---|---|---|---|
| Condition | condition |
clinvar.trait:{id} |
Disease or phenotype with MedGen coding and cross-references |
| ConditionSet | conditionSet |
clinvar.traitset:{id} |
Grouping of conditions with AND/OR membership operator |
| Submitter | submitter |
clinvar.submitter:{id} |
Submitting organization |
| ClinvarProposition | proposition |
{scv_id}-{CODE} |
Classification proposition (12 types) |
See Propositions for the full type/code/predicate reference.
Statement Classes¶
These classes represent classification statements at different levels of aggregation. All are profiles of the VA-Spec Statement type documented under Statements.
| Class | Bundle Section | Key Pattern | Description |
|---|---|---|---|
| ClinvarScvStatement | scv |
clinvar.submission:{id}.{ver} |
Submitted classification |
| ClinvarVcvStatement | vcv |
{vcv}-{group}-{prop}-{level} |
Variant-level aggregate |
| ClinvarRcvStatement | rcv |
{rcv}-{group}-{prop}-{level} |
Condition-level aggregate |
| ClinvarSomaticEvidenceLine | evidenceLine |
{scv_id}.{ver} / {agg_id}.contributing |
Evidence line referenced via hasEvidenceLines |
See Statements for the aggregation structure and Evidence Lines for the somatic tier mapping.