ga4gh.org
GKS: The Schemarillion
Bob Freimuth
Aly Khalifa, Salem Bajjali, Sarah Senum, Jeff Chen
ga4gh.org
The Silmarillion
J. R. R. Tolkien
ga4gh.org
Table of Contents
Preface: Of the Beginning 5
Chapter 1: Of HL7 and FHIR 10
Chapter 2: Of Modeling 20
Chapter 3: Of the Coming of GKS into the FHIR 40
Chapter 4: Of the Ruin of Interoperability 60
Chapter 5: Of the Schemas of Power and the Next Age 80
ga4gh.org
Strategic Goals
ga4gh.org
Tactical Goals
Main Objective
Initiatives
6
ga4gh.org
Of HL7 and FHIR
HL7 Standards
https://www.ringholm.com/docs/the_early_history_of_health_level_7_HL7.htm
©2018 MFMER | slide-8
HL7 Standards
http://www.hl7.org/implement/standards/ansiapproved.cfm
©2018 MFMER | slide-9
HL7 V2 Messaging
©2018 MFMER | slide-10
HL7 FHIR®:�Fast Healthcare Interoperability Resources
www.hl7.org/fhir
©2018 MFMER | slide-11
Fast Healthcare Interoperability Resources (FHIR)
©2018 MFMER | slide-12
HL7 FHIR®: Fast Healthcare Interoperability Resources
DiagnosticReport
Resource
Observation
ServiceRequest
©2018 MFMER | slide-13
HL7 FHIR®: Fast Healthcare Interoperability Resources
DiagnosticReport
Genetics Diagnostic Report
Resource
Profile
Observation
Genetic Observation
ServiceRequest
Genetic Test Order
©2018 MFMER | slide-14
HL7 FHIR®: Fast Healthcare Interoperability Resources
DiagnosticReport
Genetics Diagnostic Report
Resource
Profile
Observation
Genetic Observation
ServiceRequest
Genetic Test Order
©2018 MFMER | slide-15
HL7 FHIR®: Fast Healthcare Interoperability Resources
DiagnosticReport
Genetics Diagnostic Report
Resource
Profile
Observation
Genetic Observation
ServiceRequest
Genetic Test Order
Implementation Guide
©2018 MFMER | slide-16
FHIR Resources
https://build.fhir.org/modules.html
Levels 1 & 2: Infrastructure
Levels 3 & 4: Content
Level 5: Reasoning
©2018 MFMER | slide-17
Profile of Observation: Patient Blood Pressure
©2018 MFMER | slide-18
https://build.fhir.org/datatypes.html
ga4gh.org
ga4gh.org
ga4gh.org
Genomics Reporting Implementation Guide
Genomics Reporting IG: Scope
CG Reporting Implementation Guide (STU2, R4)
CG Reporting Implementation Guide
Genomic Observations: Profiles of Profiles of Profiles
Genomic Findings: Relationships Between Profiles
AMIA 2021 Annual Symposium | amia.org
"Big bag of fields"
Profile(s) of Observation + Components: Lessons Learned
Pros
Cons
Of Modeling
HL7 Clinical Genomics Information Modeling
A subgroup of the CG WG will be formed to focus on the development of an information model to represent the clinical genomics domain. The creation of this model is consistent with current CG WG project scope statements and it is a necessary component of the future consolidated standard, which will include the current Domain Analysis Model and Domain Information Model, as described in the CG WG DAM PSS (Q1/2016).
CG Information Model (IM)
COMPLEX USE CASES FOR GENOMICS TESTING
©2023 Mayo Foundation for Medical Education and Research | slide-33
HL7 FHIR GENOMICS (R5+)
Genomic Study
Genomic Analysis
Part of,
Derived from
Genomic Diagnostic Report
(profile)
Observed Variation (profile)
Quality
Confidence
ACMG classification
AMP tier
See Mol Var models
Called variation*
Clinically reported variation
Molecular Variation
See Mol Var models
Molecular Sequence
See Mol Seq model
Not shown: implication, interpretation, etc
Called sequence*
Definitional,
Patient/Obs-agnostic
(e.g., knowledgebase)
Observed Sequence (profile)
Quality
Confidence
See Mol Seq model
Under Development
Observational,
Patient-Specific
GA4GH-Aligned
GA4GH-Aligned
* Called variation and sequence are not restricted to clinical testing and reporting (e.g., research studies)
©2023 Mayo Foundation for Medical Education and Research | slide-34
HL7-GA4GH Alignment: Vision
GA4GH VRS: definitional, computational variation
GA4GH VA: structured variation annotation
Knowledge bases
Genetic reports
EHRs
HL7 FHIR Genomics IG: clinically observed & reported variation
Aligned information models (and technical schemas)
©2018 MFMER | slide-35
Molecular Sequence
CG Information Model:
Core Sequence Classes
Definition of Sequence:
Transformations between SequenceRepresentations
Support complex recursion
Literal
Formatted
Resolvable
Extracted
Repeated
Concatenated
Relative
ACGTACGT
Transformations between SequenceRepresentations
Literal
Formatted
Resolvable
Extracted
Repeated
Concatenated
Relative
ACGTACGT
>FASTA header
ACGTACGT
<URI> to retrieve an instance of Sequence
AAAAACGTACGTTTTT
ACGT[2]
CCGTACGT + Edit[ C>A at position 0 ]
A + Formatted[CG] + Extracted[TA] + Resolvable[CGT]
Transformations between SequenceRepresentations
Literal
Formatted
Resolvable
Extracted
Repeated
Concatenated
Relative
ACGTACGT
>FASTA header
ACGTACGT
<URI> to retrieve an instance of Sequence
AAAAACGTACGTTTTT
ACGT[2]
CCGTACGT + Edit[ C>A at position 0 ]
A + Formatted[CG] + Extracted[TA] + Resolvable[CGT]
Supported by VRS
Molecular Sequence
Identifier, type
Sequence Representations
SequenceLocation
.sequenceContext Ref(MolSeq)
.coordinateInterval
.strand “forward”
CoordinateInterval
.numberingSystem “0-based”
.start 3
.end 5
CytobandLocation
.genomeAssembly
.cytobandInterval
GenomeAssembly
.organism “Homo sapiens”
.build “GRCh38.p14”
.accession “NC_000002.12”
.description
CytobandInterval
.chromosome “2”
.start
.end
Cytoband
.arm “q”
.region “2”
.band “1”
.subband “1”
Cytoband
.arm “q”
.region “2”
.band “1”
.subband “2”
2q21.1-2q21.2
Supporting Datatypes: Molecular Location
Location = Context + Interval
Context
Sequence
GenomeAssembly
Interval
Coordinate Cytoband
©2023 Mayo Foundation for Medical Education and Research | slide-42
Molecular State
Concept | Defines the State | At a Location | In this Context |
Allele | Exact contiguous sequence | Precise coordinate interval | Molecule |
Haplotype | Exact discontiguous sequence (set of Alleles) | Precise coordinate interval | Molecule |
Multi-locus Haplotype | Set of Haplotypes | Set of Loci | Molecule |
Genotype | Set of Haplotypes | Locus | Genome |
Multi-Locus Phased Genotype | Set of Multi-locus Haplotypes | Set of Loci | Genome |
Multi-Locus Unphased Genotype | Set of Genotypes | Set of Loci | Genome |
CNV | Set of Haplotypes | Locus | Genome |
State might also need to be defined by a class of sequences (residue ambiguity or representative/ reference sequence)
Loci can be coordinate-based or feature-based
Concept | Defines the State | At a Location | In this Context |
Sequence | Exact contiguous sequence (no gaps) Sequence [1..1] | N/A | Molecule |
Allele | Exact contiguous sequence (no gaps) Sequence [1..1] | Precise coordinate interval Seq [1..1] + Location [1..1] | Molecule |
Haplotype | Exact discontiguous sequence (with gaps) Alleles [1..*] <= cis | Precise coordinate interval Seq [1..1] + Location [1..1] | Molecule |
Genotype | Set of Alleles or Haplotypes Alleles | Haplotypes [1..*] <= cis or trans | Locus (homologous) Seq [1..1] + Location [1..1] | Genome |
SequenceLocation
.sequenceContext Ref(MolSeq)
.coordinateInterval
.strand “forward”
CoordinateInterval
.numberingSystem “0-based”
.start 3
.end 5
Allele
-State 1..1 Ref(MolecularSequence)
-Locus 1..1 SequenceLocation
Haplotype
-State 1..* Allele in cis
-Locus 1..1 SequenceLocation
Genotype
-State 1..* Allele | Haplotype in cis or trans
-Locus 1..1 SequenceLocation (homologous)
Generalized Conceptual Model
-State 1..* Ref(MS) | Allele | Haplotype
-Locus 1..1 SequenceLocation
Generalization, Abstraction, and FHIR-ization
MolecularState Resource
-memberState 0..* Ref(MolecularState)
-locus 0..* MolecularLocation
Profiling
Sequence
-State 1..1 Ref(MolecularSequence)
-Locus 0..0 SequenceLocation
Simplified Profile Structure
Molecular State
(Resource)
Allele
(Profile)
Sequence
(Profile)
Haplotype
(Profile)
Genotype
(Profile)
Genomics Reporting IG (R5)
CG Information Model:
Core Sequence Classes
Domain concept (data type)
Representations for instance data (dependent on use case)
©2023 Mayo Foundation for Medical Education and Research | slide-48
MolecularState
type [0..1]
identifier [0..*]
name [0..*]
locus [0..*] MolLocusDT
Representation
Literal
encoding
value
Formatted
file
Resolvable
uri
format
Extracted
startingSeq [1..1] MolState
interval�isRevCompd
Repeated
seqMotif [1..1] MolState
copyCount
Concatenated
element [1..*] (ordered) MolState
Relative
startingElement [1..1] MolState
Edit
interval
replacedSeq [0..1] MolState
replacementSeq [1..1] MolState
0..*
1..* ordered
MemberGroup
members [1..*] MolState
MolecularState
Base resource
©2023 Mayo Foundation for Medical Education and Research | slide-49
Molecular Sequence: Simple Representations
MolSeq
.type code: “genomic DNA”
.identifier ID: “internal seq 123”
.name str: “MFG genomic sequence”
.literal
.sequenceValue str: “ACGTACGT”
.encoding CC: “IUPAC, ACGT only”
.formatted (file as Attachment)
.contentType code: MIME type for “FASTA”
.data base64binary: “...”
.formatted (resolvable as Attachment)
.contentType code: MIME type for “FASTA”
.url “http...”
.extracted
.sequenceContext Ref(MolSeq)
.coordinateInterval
.isReverseComp bool: “false”
CoordinateInterval
.numberingSystem “0-based”
.start 4
.end 12
.repeated
.sequenceMotif Ref(MolSeq)
.copyCount int: “2”
Core of a MolSeq instance
Plus 0..* Representation instance(s):
AAAAACGTACGTTTTT
ACGT
Molecular Sequence: Concatenated Representation
MolSeq
.type code: “genomic DNA”
.identifier ID: “internal seq 123”
.name str: “MFG genomic sequence”
Core of a MolSeq instance
.concatenated
.element
.element Ref(MolSeq)
.ordinalIndex int: 1
MolSeq
.type code: “genomic DNA”
.literal
.sequenceValue str: “A”
.encoding CC: “IUPAC, ACGT only”
.element
.element Ref(MolSeq)
.ordinalIndex int: 2
MolSeq
.type code: “genomic DNA”
.formatted (file as Attachment)
.contentType code: “FASTA”
.data base64binary: “...”
.element
.element Ref(MolSeq)
.ordinalIndex int: 3
MolSeq
.type code: “genomic DNA”
.formatted (resolvable as Attachment)
.contentType code: “FASTA”
.url “http...”
Plus 0..* Representation instance(s):
This representation contains 3 elements, each of which defines a sequence and uses different representations themselves. The 3 elements are concatenated together in order to result in “ACGTACGT”
“CG”
“TACGT”
“A”
Molecular Sequence: Relative Representation
MolSeq
.type code: “genomic DNA”
.identifier ID: “internal seq 789”
.name str: “MFG2 genomic sequence”
Core of a MolSeq instance
Plus 0..* Representation instance(s):
.relative
.coordinateSystem code for “0-based interbase”
.startingSequence
edit
.editOrder 0
.start 1
.end 2
.replacedSeq Ref(MolSeq.literal=“C”)
.replacementSeq Ref(MolSeq.literal=“T”)
edit
.editOrder 1
.start 4
.end 5
.replacedSeq Ref(MolSeq.literal=“A”)
.replacementSeq Ref(MolSeq.literal=“G”)
MolSeq
.type code: “genomic DNA”
.identifier ID: “internal seq 123”
.name str: “MFG1 genomic sequence”
Edits ATGTACGT to ATGTGCGT
Edits ACGTACGT to ATGTACGT
MFG1: ACGTACGT
(seq rep not shown)
MFG2: ATGTGCGT
Molecular Haplotype: Examples of Representations
MolHaplotype
.type code: “genomic DNA”
.identifier ID: “MFG_0001.A”
.name str: “MFG*1A”
.locus SeqLocDT
.formatted (file as Attachment)
.contentType code: MIME type for ...
.data base64binary: “...”
.formatted (resolvable as Attachment)
.contentType code: MIME type for ...
.url “http...”
Core of a MolHaplotype instance
Plus 0..* Representation instance(s):
.locus is currently optional because it could be determined from certain Representations (should it be mandatory?)
.memberGroup
.members [Ref(Allele_1), Ref(Allele_2)]
.memberGroup is probably the most intuitive and might be the most often used Representation for Haplotype
.formatted is provided to support file-based conventions (not common now, but likely in the future)
Molecular Genotype: Examples of Representations
MolGenotype
.type code: “genomic DNA”
.identifier
.name
.locus SeqLocDT
.formatted (file as Attachment)
.contentType code: MIME type for “VCF”
.data base64binary: “...”
.formatted (resolvable as Attachment)
.contentType code: MIME type for “VCF”
.url “http...”
Core of a MolGenotype instance
Plus 0..* Representation instance(s):
.locus is currently optional because it could be determined from certain Representations (should it be mandatory?)
.memberGroup
.members [Ref(Allele_1), Ref(Allele_2)]
.memberGroup is probably the most intuitive and might be the most often used Representation for Genotype (note either Allele or Haplotype can be used as members)
.literal
.sequenceValue str: “G/T”
.encoding CC: “IUPAC, ACGT only”
.memberGroup
.members [Ref(Haplo_1), Ref(Haplo_2)]
Transformations Between Entities
Sequence
Genotype
Haplotype
Allele
+ Seq context (LocusDT)
- Seq context
group
ungroup
ungroup
group
ungroup
group
Not shown: transformations among Representations for a given entity
(including normalizing to a simple/literal value that can be used to test for equivalency)
More Omic Data Types
https://fusions.cancervariants.org/en/latest/introduction.html
Fusion Nomenclature
Gene
HGNC symbol 1..1 Str
HGNC id 1..1 ID
Transcript Segment
Transcr seq id 1..1 ID
5’ segment boundary 0..1 SegB
3’ segment boundary 0..1 SegB
Linker Seq
Seq 1..1 Str
https://fusions.cancervariants.org/en/latest/introduction.html
Structural Elements
Templated Linker Seq
Genomic Loc 1..1 GenLoc
Genomic strand 1..1 CC
Seq 0..1 Str
CC
MolSequence.id
MolSequence.literal
Missing concept of “linker” (role of the seq)
SequenceLocation
.sequenceContext Ref(MolSeq)
.coordinateInterval
.strand “forward”
CoordinateInterval
.numberingSystem “0-based”
.start 3
.end 5
SeqLoc datatype
Sequence Location
Ref seq id 1..1 ID
startCoord 1..1 Int
endCoord 1..1 Int
Genomic Location
A SeqLoc where ref seq is chrom ref in a genome assembly
Segment Boundary (SegB)
Exon number 1..1 Int
Exon offset 1..1 Int
Genomic location 1..1 GenLoc
Seq Feature
SeqLoc datatype
Missing concept of “offset” for coord interval
Missing concept
Fusion Nomenclature
https://fusions.cancervariants.org/en/latest/introduction.html
Regulatory Feature
Regulatory class 1..1 CC
Feature ID 0..1 ID
Feature Loc 0..1 GenLoc
Associated Gene 0..1 Gene
Regulatory Elements
Functional Domain
Label 0..1 Str
id 0..1 ID
Seq Loc 0..1 SeqLoc
Status 1..1 CC
Associated Gene 1..1 Gene
Reading Frame
isPreserved 0..1 Bool
Categorical Elements
Seq Feature
SeqLoc datatype
CC
Seq Feature
SeqLoc datatype
CC
CC
Missing concept. Is this at the level of an element or overall transcript? Is this transcript only or also gene?
Causative Event
Type 1..1 CC
Descr 0..1 Str
Assay
Name 1..1 Str
Id 1..1 CC
Fusion detection 1..1 CC
Method URI 1..1 URI
Assayed Elements
ActivityDef, PlanDef, Task, Procedure, CC, …
Missing concept
Fusions as a type of MolecularState
MolecularState
type [0..1]
identifier [0..*]
name [0..*]
locus [0..*] MolLocusDT
Representation
0..*
Text-based (unstructured or formal grammar)
Ordered series of structured fusion components
©2018 MFMER | slide-60
Molecular State: Modeling TBD
Copy Number
Structural “variation”
ga4gh.org
Annotations
Sequence and Allele:
Allele, Haplotype, Genotype, Copy Number, Structural “Variation”:
How much structure is needed in knowledge statements?
ga4gh.org
SequenceFeature
identifier: Identifier [0..*]
type: CodeableConcept [1..1]
name: string [0..*]
contexts: SequenceContext [0..*]B
Sequence
type: CodeableConcept [1..1]
identifier: Identifier [0..*]
name: string [0..*]
representation: SequenceRepresentation [0..*]
features: LocatedFeature [0..*]A
LocatedFeature
feature: SequenceFeature [1..1]
location: Location [1..1]
strand: CodeableConcept [0..1]
Draft Transcript Model
Logical Model
Transcript
sequence: Sequence [1..1]
exons: LocatedFeature [0..*]
codingRegion: LocatedFeature [0..*]
features: LocatedFeature [0..*]
associatedGene: Identifier [0..*]
Notes:
Draft Sequence Annotation Model (for reference)
VRS Schema
SequenceContext
sequence: Sequence [1..1]
location: Location [1..1]
strand: CodeableConcept [0..1]
A Used only for Sequence-based structures
B Used only for Feature-based structures
ga4gh.org
A Generic VA Statement Model
Statement Semantics are captured by four dedicated elements:
Example: EGFR-L858R (subject) predicts_sensitivity_to (predicate) Afatinib (object) in NSCLC (qualifier)
This pattern makes it clear which elements of a statement comprise its core meaning - so it is clear to human and computational agents what is being asserted as true
Of the Coming of GKS into the FHIR
The Best of Both Worlds
VRS
FHIR
©2018 MFMER | slide-66
Conceptual Mappings: Variation (State)
67
Variation [Abstract Class]
MolecularVariation [Abstract Class]
Allele
Haplotype
SystematicVariation [Abstract Class]
CopyNumberCount
CopyNumberChange
Genotype
…Rest of the VRS schema
FHIR
MolecularState [Resource]
Sequence [Profile]
Allele [Profile]
Haplotype [Profile]
Genotype[Profile]
VRS
Conceptual Mappings: Sequence Expression
68
FHIR
VRS
MolecularState [Resource]
Sequence [Profile]
Allele [Profile]
Haplotype [Profile]
Genotype[Profile]
Logical Mappings: �Sequence Expressions
69
FHIR
VRS
X
X
X
Logical Mappings: Literal Sequence
70
FHIR
VRS
X
String that matches
^[A-Z*\-]*$
and is derived from IUPAC
Logical Mappings: Derived/Extracted Sequence
71
FHIR
VRS
-sequence_id
-interval
VRS requires 0-based interbase coordinate system
X
X
Logical Mappings: Derived/Extracted Sequence
72
FHIR
VRS
Additional MolecularSequence Instance
VRS requires 0-based interbase coordinate system
Logical Mappings: Derived/Extracted Sequence
73
FHIR
VRS
VRS requires 0-based interbase coordinate system
Logical Mappings: Repeated Sequence
74
FHIR
VRS
X
X
Logical Mappings: Repeated Sequence
75
FHIR
VRS
X
Additional MolecularSequence Instance
Nested SequenceExpression
Logical Mappings: Repeated Sequence
76
FHIR
VRS
X
Additional MolecularSequence Instance
Nested SequenceExpression
FHIR Range and Quantity Datatypes
77
Logical Mappings: Composed/Concatenated Sequence
78
FHIR
VRS
VRS assumes an ordered list
Logical Mappings: Composed/Concatenated Sequence
79
FHIR
VRS
VRS assumes an ordered list
3X
Repeated for each components
Logical Mappings: Composed/ Concatenated Sequence
80
FHIR
VRS
VRS assumes an ordered list
3X
Conceptual Mappings: Location Datatype
VRS
CytobandLocation
.genomeAssembly
.cytobandInterval
GenomeAssembly
.organism “Homo sapiens”
.build “GRCh38.p14”
.accession “NC_000002.12”
.description
CytobandInterval
.chromosome “2”
.start
.end
Cytoband
.arm “q”
.region “2”
.band “1”
.subband “1”
Cytoband
.arm “q”
.region “2”
.band “1”
.subband “2”
SequenceLocation
.sequenceContext Ref(MolSeq)
.coordinateInterval
.strand “forward”
CoordinateInterval
.numberingSystem “0-based”
.start 3
.end 5
MolecularLocation
Conceptual Mappings: Location Datatype
82
FHIR
VRS
MolecularLocation [Datatype]
X
X
X
X
Of the Ruin of Interoperability
GA4GH-HL7 Alignment: Gaps in FHIR R5+
GA4GH-HL7 Alignment: Gaps in VRS
Of the Schemas of Power and the Next Age
Take-Home Points
ga4gh.org
Possible Immediate Next Steps
ga4gh.org
Opportunities for Harmonization
89
ga4gh.org
Possible Future Activities
ga4gh.org