FoundationThis page is part of the FHIR Specification v6.0.0-ballot2: Release 6 Ballot (2nd Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions 
| Clinical Genomics Work Group | Maturity Level: N/A | Standards Status: Informative | Compartments: No defined compartments |
ShEx statement for moleculardefinition
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
IMPORT <code.shex>
IMPORT <Range.shex>
IMPORT <string.shex>
IMPORT <integer.shex>
IMPORT <boolean.shex>
IMPORT <Quantity.shex>
IMPORT <markdown.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Attachment.shex>
IMPORT <DomainResource.shex>
IMPORT <BackboneElement.shex>
IMPORT <CodeableConcept.shex>
start=@<MolecularDefinition> AND {fhir:nodeRole [fhir:treeRoot]}
# Representation of a molecular definition
<MolecularDefinition> EXTENDS @<DomainResource> CLOSED {
a [fhir:MolecularDefinition]?;
fhir:nodeRole [fhir:treeRoot]?;
fhir:identifier @<OneOrMore_Identifier>?; # Unique ID for this particular
# resource
fhir:type @<code> AND
{fhir:v @fhirvs:sequence-type}?; # aa | dna | rna
fhir:location @<OneOrMore_MolecularDefinition.location>?; # Location of this molecule
fhir:memberState @<OneOrMore_Reference_MolecularDefinition>?; # Member
fhir:representation @<OneOrMore_MolecularDefinition.representation>?; # Representation
}
# Location in context of a feature
<MolecularDefinition.location.featureLocation> EXTENDS @<BackboneElement> CLOSED {
fhir:geneId @<OneOrMore_CodeableConcept>?; # Gene Id
}
# A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
<MolecularDefinition.representation.relative> EXTENDS @<BackboneElement> CLOSED {
fhir:startingMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The Molecular Sequence that serves
# as the starting sequence, on which
# edits will be applied
fhir:edit @<OneOrMore_MolecularDefinition.representation.relative.edit>?; # An edit (change) made to a sequence
}
# A Molecular Sequence that is represented as a repeated sequence motif
<MolecularDefinition.representation.repeated> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceMotif @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The sequence that defines the
# repeated motif
fhir:copyCount @<integer>; # The number of repeats (copies) of
# the sequence motif
}
# Cytoband Interval
<MolecularDefinition.location.cytobandLocation.cytobandInterval> EXTENDS @<BackboneElement> CLOSED {
fhir:chromosome @<CodeableConcept>; # Chromosome
fhir:startCytoband @<MolecularDefinition.location.cytobandLocation.cytobandInterval.startCytoband>?; # Start
fhir:endCytoband @<MolecularDefinition.location.cytobandLocation.cytobandInterval.endCytoband>?; # End
}
# Start
<MolecularDefinition.location.cytobandLocation.cytobandInterval.startCytoband> EXTENDS @<BackboneElement> CLOSED {
fhir:arm @<code> OR
@<string> ?; # Arm
fhir:region @<code> OR
@<string> ?; # Region
fhir:band @<code> OR
@<string> ?; # Band
fhir:subBand @<code> OR
@<string> ?; # Sub-band
}
# Location of this molecule
<MolecularDefinition.location> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceLocation @<MolecularDefinition.location.sequenceLocation>?; # Location of this molecule in
# context of a sequence
fhir:cytobandLocation @<MolecularDefinition.location.cytobandLocation>?; # Location of this molecule in
# context of a cytoband
fhir:featureLocation @<OneOrMore_MolecularDefinition.location.featureLocation>?; # Location in context of a feature
}
# Location of this molecule in context of a cytoband
<MolecularDefinition.location.cytobandLocation> EXTENDS @<BackboneElement> CLOSED {
fhir:genomeAssembly @<MolecularDefinition.location.cytobandLocation.genomeAssembly>; # Reference Genome
fhir:cytobandInterval @<MolecularDefinition.location.cytobandLocation.cytobandInterval>; # Cytoband Interval
}
# End
<MolecularDefinition.location.cytobandLocation.cytobandInterval.endCytoband> EXTENDS @<BackboneElement> CLOSED {
fhir:arm @<code> OR
@<string> ?; # Arm
fhir:region @<code> OR
@<string> ?; # Region
fhir:band @<code> OR
@<string> ?; # Band
fhir:subBand @<code> OR
@<string> ?; # SuBand
}
# One element of a concatenated Molecular Sequence
<MolecularDefinition.representation.concatenated.sequenceElement> EXTENDS @<BackboneElement> CLOSED {
fhir:sequence @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The Molecular Sequence
# corresponding to this element
fhir:ordinalIndex @<integer>; # The ordinal position of this
# sequence element within the
# concatenated Molecular Sequence
}
# A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
<MolecularDefinition.representation.concatenated> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceElement @<OneOrMore_MolecularDefinition.representation.concatenated.sequenceElement>; # One element of a concatenated
# Molecular Sequence
}
# Coordinate Interval for this location
<MolecularDefinition.location.sequenceLocation.coordinateInterval> EXTENDS @<BackboneElement> CLOSED {
fhir:numberingSystem @<CodeableConcept>?; # Coordinate System
fhir:start @<Quantity> OR
@<Range> ?; # Start
fhir:end @<Quantity> OR
@<Range> ?; # End
}
# A literal representation
<MolecularDefinition.representation.literal> EXTENDS @<BackboneElement> CLOSED {
fhir:encoding @<CodeableConcept>?; # The encoding used for the
# expression of the primary sequence
fhir:value @<string>; # The primary (linear) sequence,
# expressed as a literal string
}
# Location of this molecule in context of a sequence
<MolecularDefinition.location.sequenceLocation> EXTENDS @<BackboneElement> CLOSED {
fhir:sequenceContext @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # Reference sequence
fhir:coordinateInterval @<MolecularDefinition.location.sequenceLocation.coordinateInterval>?; # Coordinate Interval for this
# location
fhir:strand @<CodeableConcept>?; # Forward or Reverse
}
# Representation
<MolecularDefinition.representation> EXTENDS @<BackboneElement> CLOSED {
fhir:focus @<CodeableConcept>?; # The focus of the representation
fhir:code @<OneOrMore_CodeableConcept>?; # A code of the representation
fhir:literal @<MolecularDefinition.representation.literal>?; # A literal representation
fhir:resolvable @<Attachment>?; # A resolvable representation of a
# molecule that optionally contains
# formatting in addition to the
# specification of the primary
# sequence itself
fhir:extracted @<MolecularDefinition.representation.extracted>?; # A Molecular Sequence that is
# represented as an extracted
# portion of a different Molecular
# Sequence
fhir:repeated @<MolecularDefinition.representation.repeated>?; # A Molecular Sequence that is
# represented as a repeated sequence
# motif
fhir:concatenated @<MolecularDefinition.representation.concatenated>?; # A Molecular Sequence that is
# represented as an ordered
# concatenation of two or more
# Molecular Sequences
fhir:relative @<MolecularDefinition.representation.relative>?; # A Molecular Definition that is
# represented as an ordered series
# of edits on a specified starting
# sequence
}
# A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
<MolecularDefinition.representation.extracted> EXTENDS @<BackboneElement> CLOSED {
fhir:startingMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The Molecular Sequence that serves
# as the parent sequence, from which
# the intended sequence will be
# extracted
fhir:start @<integer>; # The start coordinate (on the
# parent sequence) of the interval
# that defines the subsequence to be
# extracted
fhir:end @<integer>; # The end coordinate (on the parent
# sequence) of the interval that
# defines the subsequence to be
# extracted
fhir:coordinateSystem @<CodeableConcept>; # The coordinate system used to
# define the interval that defines
# the subsequence to be extracted.
# Coordinate systems are usually 0-
# or 1-based
fhir:reverseComplement @<boolean>?; # A flag that indicates whether the
# extracted sequence should be
# reverse complemented
}
# An edit (change) made to a sequence
<MolecularDefinition.representation.relative.edit> EXTENDS @<BackboneElement> CLOSED {
fhir:editOrder @<integer>?; # The order of this edit, relative
# to other edits on the starting
# sequence
fhir:coordinateSystem @<CodeableConcept>; # The coordinate system used to
# define the edited intervals on the
# starting sequence. Coordinate
# systems are usually 0- or 1-based
fhir:start @<integer>; # The start coordinate of the
# interval that will be edited
fhir:end @<integer>; # The end coordinate of the interval
# that will be edited
fhir:replacementMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }; # The sequence that defines the
# replacement sequence used in the
# edit operation
fhir:replacedMolecule @<Reference> AND {fhir:link
@<MolecularDefinition> ? }?; # The sequence on the 'starting'
# sequence for the edit operation,
# defined by the specified interval,
# that will be replaced during the
# edit
}
# Reference Genome
<MolecularDefinition.location.cytobandLocation.genomeAssembly> EXTENDS @<BackboneElement> CLOSED {
fhir:organism @<CodeableConcept>?; # Species of the organism
fhir:build @<CodeableConcept>?; # Build number
fhir:accession @<CodeableConcept>?; # Accession
fhir:description @<markdown> OR
@<string> ?; # Genome assemble description
}
#---------------------- Cardinality Types (OneOrMore) -------------------
<OneOrMore_Identifier> CLOSED {
rdf:first @<Identifier> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Identifier>
}
<OneOrMore_MolecularDefinition.location> CLOSED {
rdf:first @<MolecularDefinition.location> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.location>
}
<OneOrMore_Reference_MolecularDefinition> CLOSED {
rdf:first @<Reference> AND {fhir:link
@<MolecularDefinition> } ;
rdf:rest [rdf:nil] OR @<OneOrMore_Reference_MolecularDefinition>
}
<OneOrMore_MolecularDefinition.representation> CLOSED {
rdf:first @<MolecularDefinition.representation> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.representation>
}
<OneOrMore_CodeableConcept> CLOSED {
rdf:first @<CodeableConcept> ;
rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept>
}
<OneOrMore_MolecularDefinition.representation.relative.edit> CLOSED {
rdf:first @<MolecularDefinition.representation.relative.edit> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.representation.relative.edit>
}
<OneOrMore_MolecularDefinition.location.featureLocation> CLOSED {
rdf:first @<MolecularDefinition.location.featureLocation> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.location.featureLocation>
}
<OneOrMore_MolecularDefinition.representation.concatenated.sequenceElement> CLOSED {
rdf:first @<MolecularDefinition.representation.concatenated.sequenceElement> ;
rdf:rest [rdf:nil] OR @<OneOrMore_MolecularDefinition.representation.concatenated.sequenceElement>
}
#---------------------- Value Sets ------------------------
# Type if a sequence -- DNA, RNA, or amino acid sequence.
fhirvs:sequence-type ["aa" "dna" "rna"]
Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.
FHIR ®© HL7.org 2011+. FHIR R6 hl7.fhir.core#6.0.0-ballot2 generated on Mon, Aug 12, 2024 16:59+0800.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R5 |
|
Propose a change