FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon

10.8 Resource MolecularDefinition - Content

Clinical Genomics icon Work GroupMaturity Level: 0 Trial UseSecurity Category: N/A Compartments: No defined compartments

Definitional content for a molecular entity, such as a nucleotide or protein sequence.

Note to Implementers: Molecular Definition resource will replace Molecular Sequence resource. Current page of the Molecular Sequence is temporarily available for referencing and review purposes.

The MolecularDefinition resource represents molecular entities (e.g., nucleotide or protein sequences) for both clinical and non-clinical use cases, including translational research. The resource is definitional, in that it focuses on discrete, computable, and semantically expressive data structures that reflect the genomic domain. Because the resource focuses on the molecular entities rather than specimen source or annotated knowledge, it supports both patient/participant-specific use cases and population-based data, and both human and non-human data.

The MolecularDefinition resource itself is abstract, but it supports profiles for core molecular concepts, including Sequence (nucleotide and protein), Allele, Variation, Haplotype, and Genotype. Support for additional molecular types, such as structural variation, fusions, and biomarkers, will be considered in the future.

Use cases supported by this resource include but are not limited to:

  • Structured exchange of simple sequences of DNA, RNA, or amino acids (whole genome/exome sequencing)
  • Representation of clinically significant alleles that impact drug response (e.g., pharmacogenomic CDS)
  • Structured representation of simple and complex genetic variations for diagnostic purposes (clinical diagnosis or risk)
  • Expression of genotypes that have clinical or research significance (clinical decision making)
  • Representation of genomic variations that are stored within a public knowledge base
  • Expression of alleles that are used within risk calculators

Use cases often require expression of the same genomic concept in different ways. Since the concept is the same and only the serialization of it differs, the Molecular Definition resource supports multiple approaches to representing molecular sequences. This allows senders and receivers of messages to choose a sequence representation that is most intuitive for the particular use case.

It is important to note that all representations of a given sequence MUST resolve to the exact same primary sequence. Therefore, if a single instance of MolecularDefinition contains one literal, two resolvable files, and a code, all four of those representations must represent the same sequence. Note that this equivalence does not apply to metadata or annotations that are outside the scope of the Molecular Definition resource, since those data are not definitional to the molecule.

The MolecularDefinition resource should be profiled and used to capture representations of molecular concepts such as sequence, allele, haplotype, and genotype.

This resource does not capture workflow (e.g., test ordering/resulting process), the method of obtaining or specifying the molecular content (e.g., the test or assay), or the interpretation of the results (e.g., clinical impact). Those concepts will be captured by profiles of Observation and by the Genomic Study resource. In particular, the Genomics Reporting Implementation Guide contains extensive support for the observation and reporting of clinical genomic results.

  • Resource References: itself

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MolecularDefinition TU DomainResource Definitional content for a molecular entity

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Unique ID of an instance

... description 0..1 markdown Description of the Molecular Definition instance
... moleculeType Σ 0..1 CodeableConcept The type of molecule (e.g., DNA, RNA, amino acid)
... topology Σ 0..* CodeableConcept The structural topology of the molecular entity (e.g., linear, circular)

... memberState Σ 0..* Reference(MolecularDefinition) Reserved for future profiles (e.g., haplotype, genotype)

... location Σ 0..* BackboneElement A defined location on a molecular entity

.... sequenceLocation Σ 0..1 BackboneElement A coordinate-based location on a sequence
..... sequenceContext Σ 1..1 Reference(MolecularDefinition) The sequence on which the location is defined
..... coordinateInterval Σ 0..1 BackboneElement An interval on a sequence
...... coordinateSystem Σ 0..1 BackboneElement The coordinate system used to define the location
....... system Σ 0..1 CodeableConcept The type of coordinate system used
Binding: LL5323-2 icon (Extensible)
....... origin Σ 0..1 CodeableConcept The location of the origin of the coordinate system
....... normalizationMethod Σ 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system
...... start[x] Σ 0..1 The start location of the interval
....... startQuantity Quantity
....... startRange Range
...... end[x] Σ 0..1 The end location of the interval
....... endQuantity Quantity
....... endRange Range
..... strand 0..1 CodeableConcept The strand at the coordinateInterval
.... cytobandLocation Σ 0..1 BackboneElement A cytoband-based location on a sequence
..... genomeAssembly Σ 1..1 BackboneElement Reference Genome
...... organism 0..1 CodeableConcept Species of the organism
...... build 0..1 CodeableConcept Build number
...... accession 0..1 CodeableConcept Accession
...... description[x] 0..1 Genome assembly description
....... descriptionMarkdown markdown
....... descriptionString string
..... cytobandInterval Σ 1..1 BackboneElement Cytoband Interval
...... chromosome Σ 1..1 CodeableConcept Chromosome
...... startCytoband Σ 0..1 BackboneElement Start
....... arm[x] 0..1 Arm
........ armCode code
........ armString string
....... region[x] 0..1 Region
........ regionCode code
........ regionString string
....... band[x] 0..1 Band
........ bandCode code
........ bandString string
....... subBand[x] 0..1 Sub-band
........ subBandCode code
........ subBandString string
...... endCytoband Σ 0..1 BackboneElement End
....... arm[x] 0..1 Arm
........ armCode code
........ armString string
....... region[x] 0..1 Region
........ regionCode code
........ regionString string
....... band[x] 0..1 Band
........ bandCode code
........ bandString string
....... subBand[x] 0..1 SuBand
........ subBandCode code
........ subBandString string
.... featureLocation Σ 0..* string Reserved and possibly deprecated

... representation Σ 0..* BackboneElement A representation of a molecular entity

.... focus Σ 0..1 CodeableConcept The domain concept that is the focus of a given instance of the representation
.... code Σ 0..* CodeableConcept A code (e.g., sequence accession number) used to represent a molecular entity

.... literal Σ 0..1 BackboneElement A molecular entity defined as a string literal
..... encoding Σ 0..1 CodeableConcept The encoding used in the value
..... value Σ 1..1 string A string literal representation of the molecular entity, using the encoding specified in encoding
.... resolvable Σ 0..1 Reference(DocumentReference) A resolvable representation of a molecular entity (e.g., URI, attached and formatted file)
.... extracted Σ 0..1 BackboneElement A molecular entity that is represented as a portion of a different entity
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived
..... coordinateInterval Σ 0..1 BackboneElement The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
...... coordinateSystem Σ 0..1 BackboneElement The coordinate system used to define the location
....... system Σ 0..1 CodeableConcept The type of coordinate system used
Binding: LL5323-2 icon (Extensible)
....... origin Σ 0..1 CodeableConcept The location of the origin of the coordinate system
....... normalizationMethod Σ 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system
...... start[x] Σ 0..1 The start location of the interval
....... startQuantity Quantity
....... startRange Range
...... end[x] Σ 0..1 The end location of the interval
....... endQuantity Quantity
....... endRange Range
..... reverseComplement Σ 0..1 boolean A flag that indicates whether the extracted sequence should be reverse complemented
.... repeated Σ 0..1 BackboneElement A representation as a repeated motif
..... sequenceMotif Σ 1..1 Reference(MolecularDefinition) The motif that is repeated
..... copyCount Σ 1..1 integer The number of copies of the motif
.... concatenated Σ 0..1 BackboneElement An ordered concatenation of molecular entities
..... sequenceElement Σ 1..* BackboneElement One of the concatenated entities

...... sequence Σ 1..1 Reference(MolecularDefinition) A reference to the sequence that defines this specific concatenated element
...... ordinalIndex Σ 1..1 integer The ordinal index of the element within the concatenated representation
.... relative Σ 0..1 BackboneElement A molecular entity represented as an ordered series of edits on a specified starting entity
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The molecular entity on which edits will be applied
..... edit Σ 0..* BackboneElement A defined edit (change) to be applied

...... editOrder 0..1 integer Defines the order of edits when multiple edits are to be applied to the startingMolecule
...... coordinateInterval Σ 0..1 BackboneElement The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
....... coordinateSystem Σ 0..1 BackboneElement The coordinate system used to define the location
........ system Σ 0..1 CodeableConcept The type of coordinate system used
Binding: LL5323-2 icon (Extensible)
........ origin Σ 0..1 CodeableConcept The location of the origin of the coordinate system
........ normalizationMethod Σ 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system
....... start[x] Σ 0..1 The start location of the interval
........ startQuantity Quantity
........ startRange Range
....... end[x] Σ 0..1 The end location of the interval
........ endQuantity Quantity
........ endRange Range
...... replacementMolecule Σ 1..1 Reference(MolecularDefinition) The molecular entity that serves as the replacement in the edit operation
...... replacedMolecule Σ 0..1 Reference(MolecularDefinition) The portion of the molecular entity that is replaced by the replacementMolecule

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

MolecularDefinition (DomainResource)A unique identifier for a particular instance of this resourceidentifier : Identifier [0..*]A description of the molecular entity in a human friendly formatdescription : markdown [0..1]The type of molecule (e.g., DNA, RNA, amino acid). This is a broad concept that refers to the general physical composition of the molecule, intended to facilitate searching and to provide domain context for profiles and instances. The terminology binding may be expanded to support additional types of molecules in the future (e.g., peptide nucleic acids, oligosaccharides)moleculeType : CodeableConcept [0..1]Classifications of an instance of the resource into arbitrary types, based on domain semantics. For example, this element could indicate that an instance of moleculeType 'RNA' could have a type of 'mRNA' or 'siRNA'type : CodeableConcept [0..*]The structural topology of the molecular entity. For sequences (e.g., DNA), this could specify 'linear' and 'circular'. More complex entities might be branched or have a quaternary structuretopology : CodeableConcept [0..*]Reserved for future profiles (e.g., haplotype, genotype)memberState : Reference [0..*] « MolecularDefinition »LocationReserved and possibly deprecatedfeatureLocation : string [0..*]SequenceLocationA reference to a sequence on which the location is definedsequenceContext : Reference [1..1] « MolecularDefinition »The specific strand at the coordinateInterval, when the interval alone is not sufficient to define a location (e.g., double stranded DNA). Example values include 'forward' and 'reverse'strand : CodeableConcept [0..1]CoordinateIntervalThe start location of the interval expressed as a precise coordinate (Quantity) or expressed as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supportedstart[x] : DataType [0..1] « Quantity|Range »The end location of the interval expressed as a precise coordinate (Quantity) or as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supported.end[x] : DataType [0..1] « Quantity|Range »CoordinateSystemA definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingsystem : CodeableConcept [0..1] « null (Strength=Extensible)LL5323-2+ »The location of the origin (0 or 1, depending on the coordinate system). For example, this could specify the origin is at the start of the sequence (e.g., 5’ end or N-terminus), the beginning of a designated feature (e.g., A in the ATG translation initiation codon), or the end of a designated feature (e.g., 3’ end of an exon, from which an offset is calculated into the following intron)origin : CodeableConcept [0..1]The normalization method used for determining a location within the coordinate system. Examples include left shift (e.g., VCF), right shift (e.g., HGVS), or fully justified (e.g., VOCA)normalizationMethod : CodeableConcept [0..1]CytobandLocationGenomeAssemblySpecies of the organismorganism : CodeableConcept [0..1]The build number of this genome assemblebuild : CodeableConcept [0..1]The accession of this genome assembleaccession : CodeableConcept [0..1]The description of this genome assemblydescription[x] : PrimitiveType [0..1] « markdown|string »CytobandIntervalThe chromosome where this cytoband interval occurschromosome : CodeableConcept [1..1]StartCytobandThe arm of this start intervalarm[x] : PrimitiveType [0..1] « code|string »The region of this start intervalregion[x] : PrimitiveType [0..1] « code|string »The band of this start intervalband[x] : PrimitiveType [0..1] « code|string »The sub-band of this start intervalsubBand[x] : PrimitiveType [0..1] « code|string »EndCytobandThe arm of this end intervalarm[x] : PrimitiveType [0..1] « code|string »The region of this end intervalregion[x] : PrimitiveType [0..1] « code|string »The band of this end intervalband[x] : PrimitiveType [0..1] « code|string »The sub-band of this end intervalsubBand[x] : PrimitiveType [0..1] « code|string »RepresentationThe domain concept that is the focus of the representation. This element is used to disambiguate the representations of the “reference” and the “alternate” alleles at a given location, for examplefocus : CodeableConcept [0..1]A code (e.g., sequence accession number) used to represent a molecular entitycode : CodeableConcept [0..*]A resolvable representation of a molecular entity, which may be specified as a URI and/or attached document (in a defined format)resolvable : Reference [0..1] « DocumentReference »LiteralThe encoding used for the expression of the entity. For a primary sequence, this element represents the alphabet used (e.g., 1 character DNA without ambiguity codes, 3 character amino acid codes)encoding : CodeableConcept [0..1]A string literal representation of the molecular entity, using a specific encoding. For example, this may be the primary sequence of a strand of DNAvalue : string [1..1]ExtractedA reference to the molecular entity that serves as the conceptual 'parent' from which the intended entity is derived. For example, this could be a chromosome sequence on which a coordinateInterval is definedstartingMolecule : Reference [1..1] « MolecularDefinition »A flag that indicates whether the extracted sequence should be reverse complemented in order to produce the intended entity. This element is only relevant to molecular entities that support the concept of reverse complement (e.g., double stranded DNA)reverseComplement : boolean [0..1]CoordinateIntervalThe start location of the interval expressed as a precise coordinate (Quantity) or expressed as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supportedstart[x] : DataType [0..1] « Quantity|Range »The end location of the interval expressed as a precise coordinate (Quantity) or as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supported.end[x] : DataType [0..1] « Quantity|Range »CoordinateSystemA definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingsystem : CodeableConcept [0..1] « null (Strength=Extensible)LL5323-2+ »The location of the origin (0 or 1, depending on the coordinate system). For example, this could specify the origin is at the start of the sequence (e.g., 5’ end or N-terminus), the beginning of a designated feature (e.g., A in the ATG translation initiation codon), or the end of a designated feature (e.g., 3’ end of an exon, from which an offset is calculated into the following intron)origin : CodeableConcept [0..1]The normalization method used for determining a location within the coordinate system. Examples include left shift (e.g., VCF), right shift (e.g., HGVS), or fully justified (e.g., VOCA)normalizationMethod : CodeableConcept [0..1]RepeatedThe motif that is repeated in tandem, which ultimately defines the intended molecular entitysequenceMotif : Reference [1..1] « MolecularDefinition »The number of times the motif is repeated to create the intended molecular entitycopyCount : integer [1..1]ConcatenatedSequenceElementA reference to the sequence that defines this specific concatenated elementsequence : Reference [1..1] « MolecularDefinition »The ordinal index of the element within the concatenated representationordinalIndex : integer [1..1]RelativeThe molecular entity that serves as the starting point, on which edits will be appliedstartingMolecule : Reference [1..1] « MolecularDefinition »EditDefines the order of edits when multiple edits are to be applied to the startingMolecule. This is important when edits may overlap (intervals) or when edits change the length of the entityeditOrder : integer [0..1]The molecular entity that serves as the replacement in the edit operation. After the edit has been applied, the state of the entity at the specified coordinateInterval is defined by the state of the replacementMoleculereplacementMolecule : Reference [1..1] « MolecularDefinition »The portion of the molecular entity that is replaced by the replacementMolecule as a result of the edit. The value of this element can be derived as the state of the entity at the specified coordinateInterval, prior to the edit being applied. It is provided for conveniencereplacedMolecule : Reference [0..1] « MolecularDefinition »CoordinateIntervalThe start location of the interval expressed as a precise coordinate (Quantity) or expressed as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supportedstart[x] : DataType [0..1] « Quantity|Range »The end location of the interval expressed as a precise coordinate (Quantity) or as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supported.end[x] : DataType [0..1] « Quantity|Range »CoordinateSystemA definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingsystem : CodeableConcept [0..1] « null (Strength=Extensible)LL5323-2+ »The location of the origin (0 or 1, depending on the coordinate system). For example, this could specify the origin is at the start of the sequence (e.g., 5’ end or N-terminus), the beginning of a designated feature (e.g., A in the ATG translation initiation codon), or the end of a designated feature (e.g., 3’ end of an exon, from which an offset is calculated into the following intron)origin : CodeableConcept [0..1]The normalization method used for determining a location within the coordinate system. Examples include left shift (e.g., VCF), right shift (e.g., HGVS), or fully justified (e.g., VOCA)normalizationMethod : CodeableConcept [0..1]A definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingcoordinateSystem[0..1]An interval on a sequence, defined by coordinate-based start and end coordinatescoordinateInterval[0..1]A location on a sequence, defined using a nucleotide coordinate systemsequenceLocation[0..1]The reference genome assemblegenomeAssembly[1..1]The start of this cytoband IntervalstartCytoband[0..1]The end of this cytoband IntervalendCytoband[0..1]The Cytoband IntervalcytobandInterval[1..1]A location on a sequence, defined using cytobandscytobandLocation[0..1]A defined location on a molecular entity. Location definitions may vary with respect to coordinate space and precision or level of granularitylocation[0..*]A molecular entity defined as a string literalliteral[0..1]The coordinate system used to define the location, which may vary depending on application or context of usecoordinateSystem[0..1]The interval on startingMolecule that defines the portion to be extracted in order to create the intended entitycoordinateInterval[0..1]A molecular entity that is represented as a portion of a different entity. For example, this element can represent a subsequence (e.g., genetic region) that is part of and conceptually extracted from a longer sequence (e.g., chromosome sequence). The “parent” entity is specified in startingMolecule and the location of the intended molecular entity on the parent entity is defined by coordinateIntervalextracted[0..1]A representation of a molecular entity that is expressed as a number of copies of a repeated motifrepeated[0..1]One of the concatenated entities within the concatenated representationsequenceElement[1..*]A representation comprised of an ordered concatenation of two or more molecular entitiesconcatenated[0..1]The coordinate system used to define the location, which may vary depending on application or context of usecoordinateSystem[0..1]The interval on startingMolecule that defines the portion to be extracted in order to create the intended entitycoordinateInterval[0..1]A defined edit (change) to be applied to the molecular entityedit[0..*]A molecular entity represented as an ordered series of edits on a specified starting entity. This representation can be used to define one entity relative to anotherrelative[0..1]A representation of a molecular entity, specifically including sequence. Note this element is intended to define the entity primarily through computable, discrete elements that express domain semantics rather than replicating a particular file format or relational schemarepresentation[0..*]

XML Template

<MolecularDefinition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Unique ID of an instance --></identifier>
 <description value="[markdown]"/><!-- 0..1 Description of the Molecular Definition instance -->
 <moleculeType><!-- 0..1 CodeableConcept The type of molecule (e.g., DNA, RNA, amino acid) --></moleculeType>
 <type><!-- 0..* CodeableConcept Classification of the molecule into types other than those defined by moleculeType --></type>
 <topology><!-- 0..* CodeableConcept The structural topology of the molecular entity (e.g., linear, circular) --></topology>
 <memberState><!-- 0..* Reference(MolecularDefinition) Reserved for future profiles (e.g., haplotype, genotype) --></memberState>
 <location>  <!-- 0..* A defined location on a molecular entity -->
  <sequenceLocation>  <!-- 0..1 A coordinate-based location on a sequence -->
   <sequenceContext><!-- 1..1 Reference(MolecularDefinition) The sequence on which the location is defined --></sequenceContext>
   <coordinateInterval>  <!-- 0..1 An interval on a sequence -->
    <coordinateSystem>  <!-- 0..1 The coordinate system used to define the location -->
     <system><!-- 0..1 CodeableConcept The type of coordinate system used icon --></system>
     <origin><!-- 0..1 CodeableConcept The location of the origin of the coordinate system --></origin>
     <normalizationMethod><!-- 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system --></normalizationMethod>
    </coordinateSystem>
    <start[x]><!-- 0..1 Quantity|Range The start location of the interval --></start[x]>
    <end[x]><!-- 0..1 Quantity|Range The end location of the interval --></end[x]>
   </coordinateInterval>
   <strand><!-- 0..1 CodeableConcept The strand at the coordinateInterval --></strand>
  </sequenceLocation>
  <cytobandLocation>  <!-- 0..1 A cytoband-based location on a sequence -->
   <genomeAssembly>  <!-- 1..1 Reference Genome -->
    <organism><!-- 0..1 CodeableConcept Species of the organism --></organism>
    <build><!-- 0..1 CodeableConcept Build number --></build>
    <accession><!-- 0..1 CodeableConcept Accession --></accession>
    <description[x]><!-- 0..1 markdown|string Genome assembly description --></description[x]>
   </genomeAssembly>
   <cytobandInterval>  <!-- 1..1 Cytoband Interval -->
    <chromosome><!-- 1..1 CodeableConcept Chromosome --></chromosome>
    <startCytoband>  <!-- 0..1 Start -->
     <arm[x]><!-- 0..1 code|string Arm --></arm[x]>
     <region[x]><!-- 0..1 code|string Region --></region[x]>
     <band[x]><!-- 0..1 code|string Band --></band[x]>
     <subBand[x]><!-- 0..1 code|string Sub-band --></subBand[x]>
    </startCytoband>
    <endCytoband>  <!-- 0..1 End -->
     <arm[x]><!-- 0..1 code|string Arm --></arm[x]>
     <region[x]><!-- 0..1 code|string Region --></region[x]>
     <band[x]><!-- 0..1 code|string Band --></band[x]>
     <subBand[x]><!-- 0..1 code|string SuBand --></subBand[x]>
    </endCytoband>
   </cytobandInterval>
  </cytobandLocation>
  <featureLocation value="[string]"/><!-- 0..* Reserved and possibly deprecated -->
 </location>
 <representation>  <!-- 0..* A representation of a molecular entity -->
  <focus><!-- 0..1 CodeableConcept The domain concept that is the focus of a given instance of the representation --></focus>
  <code><!-- 0..* CodeableConcept A code (e.g., sequence accession number) used to represent a molecular entity --></code>
  <literal>  <!-- 0..1 A molecular entity defined as a string literal -->
   <encoding><!-- 0..1 CodeableConcept The encoding used in the value --></encoding>
   <value value="[string]"/><!-- 1..1 A string literal representation of the molecular entity, using the encoding specified in encoding -->
  </literal>
  <resolvable><!-- 0..1 Reference(DocumentReference) A resolvable representation of a molecular entity (e.g., URI, attached and formatted file) --></resolvable>
  <extracted>  <!-- 0..1 A molecular entity that is represented as a portion of a different entity -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived --></startingMolecule>
   <coordinateInterval>  <!-- 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity -->
    <coordinateSystem>  <!-- 0..1 The coordinate system used to define the location -->
     <system><!-- 0..1 CodeableConcept The type of coordinate system used icon --></system>
     <origin><!-- 0..1 CodeableConcept The location of the origin of the coordinate system --></origin>
     <normalizationMethod><!-- 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system --></normalizationMethod>
    </coordinateSystem>
    <start[x]><!-- 0..1 Quantity|Range The start location of the interval --></start[x]>
    <end[x]><!-- 0..1 Quantity|Range The end location of the interval --></end[x]>
   </coordinateInterval>
   <reverseComplement value="[boolean]"/><!-- 0..1 A flag that indicates whether the extracted sequence should be reverse complemented -->
  </extracted>
  <repeated>  <!-- 0..1 A representation as a repeated motif -->
   <sequenceMotif><!-- 1..1 Reference(MolecularDefinition) The motif that is repeated --></sequenceMotif>
   <copyCount value="[integer]"/><!-- 1..1 The number of copies of the motif -->
  </repeated>
  <concatenated>  <!-- 0..1 An ordered concatenation of molecular entities -->
   <sequenceElement>  <!-- 1..* One of the concatenated entities -->
    <sequence><!-- 1..1 Reference(MolecularDefinition) A reference to the sequence that defines this specific concatenated element --></sequence>
    <ordinalIndex value="[integer]"/><!-- 1..1 The ordinal index of the element within the concatenated representation -->
   </sequenceElement>
  </concatenated>
  <relative>  <!-- 0..1 A molecular entity represented as an ordered series of edits on a specified starting entity -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The molecular entity on which edits will be applied --></startingMolecule>
   <edit>  <!-- 0..* A defined edit (change) to be applied -->
    <editOrder value="[integer]"/><!-- 0..1 Defines the order of edits when multiple edits are to be applied to the startingMolecule -->
    <coordinateInterval>  <!-- 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity -->
     <coordinateSystem>  <!-- 0..1 The coordinate system used to define the location -->
      <system><!-- 0..1 CodeableConcept The type of coordinate system used icon --></system>
      <origin><!-- 0..1 CodeableConcept The location of the origin of the coordinate system --></origin>
      <normalizationMethod><!-- 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system --></normalizationMethod>
     </coordinateSystem>
     <start[x]><!-- 0..1 Quantity|Range The start location of the interval --></start[x]>
     <end[x]><!-- 0..1 Quantity|Range The end location of the interval --></end[x]>
    </coordinateInterval>
    <replacementMolecule><!-- 1..1 Reference(MolecularDefinition) The molecular entity that serves as the replacement in the edit operation --></replacementMolecule>
    <replacedMolecule><!-- 0..1 Reference(MolecularDefinition) The portion of the molecular entity that is replaced by the replacementMolecule --></replacedMolecule>
   </edit>
  </relative>
 </representation>
</MolecularDefinition>

JSON Template

{doco
  "resourceType" : "MolecularDefinition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Unique ID of an instance
  "description" : "<markdown>", // Description of the Molecular Definition instance
  "moleculeType" : { CodeableConcept }, // The type of molecule (e.g., DNA, RNA, amino acid)
  "type" : [{ CodeableConcept }], // Classification of the molecule into types other than those defined by moleculeType
  "topology" : [{ CodeableConcept }], // The structural topology of the molecular entity (e.g., linear, circular)
  "memberState" : [{ Reference(MolecularDefinition) }], // Reserved for future profiles (e.g., haplotype, genotype)
  "location" : [{ // A defined location on a molecular entity
    "sequenceLocation" : { // A coordinate-based location on a sequence
      "sequenceContext" : { Reference(MolecularDefinition) }, // R!  The sequence on which the location is defined
      "coordinateInterval" : { // An interval on a sequence
        "coordinateSystem" : { // The coordinate system used to define the location
          "system" : { CodeableConcept }, // The type of coordinate system used icon
          "origin" : { CodeableConcept }, // The location of the origin of the coordinate system
          "normalizationMethod" : { CodeableConcept } // The normalization method used for determining a location within the coordinate system
        },
        // start[x]: The start location of the interval. One of these 2:
        "startQuantity" : { Quantity },
        "startRange" : { Range },
        // end[x]: The end location of the interval. One of these 2:
        "endQuantity" : { Quantity },
        "endRange" : { Range }
      },
      "strand" : { CodeableConcept } // The strand at the coordinateInterval
    },
    "cytobandLocation" : { // A cytoband-based location on a sequence
      "genomeAssembly" : { // R!  Reference Genome
        "organism" : { CodeableConcept }, // Species of the organism
        "build" : { CodeableConcept }, // Build number
        "accession" : { CodeableConcept }, // Accession
        // description[x]: Genome assembly description. One of these 2:
        "descriptionMarkdown" : "<markdown>",
        "descriptionString" : "<string>"
      },
      "cytobandInterval" : { // R!  Cytoband Interval
        "chromosome" : { CodeableConcept }, // R!  Chromosome
        "startCytoband" : { // Start
          // arm[x]: Arm. One of these 2:
          "armCode" : "<code>",
          "armString" : "<string>",
          // region[x]: Region. One of these 2:
          "regionCode" : "<code>",
          "regionString" : "<string>",
          // band[x]: Band. One of these 2:
          "bandCode" : "<code>",
          "bandString" : "<string>",
          // subBand[x]: Sub-band. One of these 2:
          "subBandCode" : "<code>",
          "subBandString" : "<string>"
        },
        "endCytoband" : { // End
          // arm[x]: Arm. One of these 2:
          "armCode" : "<code>",
          "armString" : "<string>",
          // region[x]: Region. One of these 2:
          "regionCode" : "<code>",
          "regionString" : "<string>",
          // band[x]: Band. One of these 2:
          "bandCode" : "<code>",
          "bandString" : "<string>",
          // subBand[x]: SuBand. One of these 2:
          "subBandCode" : "<code>",
          "subBandString" : "<string>"
        }
      }
    },
    "featureLocation" : ["<string>"] // Reserved and possibly deprecated
  }],
  "representation" : [{ // A representation of a molecular entity
    "focus" : { CodeableConcept }, // The domain concept that is the focus of a given instance of the representation
    "code" : [{ CodeableConcept }], // A code (e.g., sequence accession number) used to represent a molecular entity
    "literal" : { // A molecular entity defined as a string literal
      "encoding" : { CodeableConcept }, // The encoding used in the value
      "value" : "<string>" // R!  A string literal representation of the molecular entity, using the encoding specified in encoding
    },
    "resolvable" : { Reference(DocumentReference) }, // A resolvable representation of a molecular entity (e.g., URI, attached and formatted file)
    "extracted" : { // A molecular entity that is represented as a portion of a different entity
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived
      "coordinateInterval" : { // The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
        "coordinateSystem" : { // The coordinate system used to define the location
          "system" : { CodeableConcept }, // The type of coordinate system used icon
          "origin" : { CodeableConcept }, // The location of the origin of the coordinate system
          "normalizationMethod" : { CodeableConcept } // The normalization method used for determining a location within the coordinate system
        },
        // start[x]: The start location of the interval. One of these 2:
        "startQuantity" : { Quantity },
        "startRange" : { Range },
        // end[x]: The end location of the interval. One of these 2:
        "endQuantity" : { Quantity },
        "endRange" : { Range }
      },
      "reverseComplement" : <boolean> // A flag that indicates whether the extracted sequence should be reverse complemented
    },
    "repeated" : { // A representation as a repeated motif
      "sequenceMotif" : { Reference(MolecularDefinition) }, // R!  The motif that is repeated
      "copyCount" : <integer> // R!  The number of copies of the motif
    },
    "concatenated" : { // An ordered concatenation of molecular entities
      "sequenceElement" : [{ // R!  One of the concatenated entities
        "sequence" : { Reference(MolecularDefinition) }, // R!  A reference to the sequence that defines this specific concatenated element
        "ordinalIndex" : <integer> // R!  The ordinal index of the element within the concatenated representation
      }]
    },
    "relative" : { // A molecular entity represented as an ordered series of edits on a specified starting entity
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The molecular entity on which edits will be applied
      "edit" : [{ // A defined edit (change) to be applied
        "editOrder" : <integer>, // Defines the order of edits when multiple edits are to be applied to the startingMolecule
        "coordinateInterval" : { // The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
          "coordinateSystem" : { // The coordinate system used to define the location
            "system" : { CodeableConcept }, // The type of coordinate system used icon
            "origin" : { CodeableConcept }, // The location of the origin of the coordinate system
            "normalizationMethod" : { CodeableConcept } // The normalization method used for determining a location within the coordinate system
          },
          // start[x]: The start location of the interval. One of these 2:
          "startQuantity" : { Quantity },
          "startRange" : { Range },
          // end[x]: The end location of the interval. One of these 2:
          "endQuantity" : { Quantity },
          "endRange" : { Range }
        },
        "replacementMolecule" : { Reference(MolecularDefinition) }, // R!  The molecular entity that serves as the replacement in the edit operation
        "replacedMolecule" : { Reference(MolecularDefinition) } // The portion of the molecular entity that is replaced by the replacementMolecule
      }]
    }
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MolecularDefinition;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Unique ID of an instance
  fhir:description [ markdown ] ; # 0..1 Description of the Molecular Definition instance
  fhir:moleculeType [ CodeableConcept ] ; # 0..1 The type of molecule (e.g., DNA, RNA, amino acid)
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* Classification of the molecule into types other than those defined by moleculeType
  fhir:topology  ( [ CodeableConcept ] ... ) ; # 0..* The structural topology of the molecular entity (e.g., linear, circular)
  fhir:memberState  ( [ Reference(MolecularDefinition) ] ... ) ; # 0..* Reserved for future profiles (e.g., haplotype, genotype)
  fhir:location ( [ # 0..* A defined location on a molecular entity
    fhir:sequenceLocation [ # 0..1 A coordinate-based location on a sequence
      fhir:sequenceContext [ Reference(MolecularDefinition) ] ; # 1..1 The sequence on which the location is defined
      fhir:coordinateInterval [ # 0..1 An interval on a sequence
        fhir:coordinateSystem [ # 0..1 The coordinate system used to define the location
          fhir:system [ CodeableConcept ] ; # 0..1 The type of coordinate system used
          fhir:origin [ CodeableConcept ] ; # 0..1 The location of the origin of the coordinate system
          fhir:normalizationMethod [ CodeableConcept ] ; # 0..1 The normalization method used for determining a location within the coordinate system
        ] ;
        # start[x] : 0..1 The start location of the interval. One of these 2
          fhir:start [  a fhir:Quantity ; Quantity ]
          fhir:start [  a fhir:Range ; Range ]
        # end[x] : 0..1 The end location of the interval. One of these 2
          fhir:end [  a fhir:Quantity ; Quantity ]
          fhir:end [  a fhir:Range ; Range ]
      ] ;
      fhir:strand [ CodeableConcept ] ; # 0..1 The strand at the coordinateInterval
    ] ;
    fhir:cytobandLocation [ # 0..1 A cytoband-based location on a sequence
      fhir:genomeAssembly [ # 1..1 Reference Genome
        fhir:organism [ CodeableConcept ] ; # 0..1 Species of the organism
        fhir:build [ CodeableConcept ] ; # 0..1 Build number
        fhir:accession [ CodeableConcept ] ; # 0..1 Accession
        # description[x] : 0..1 Genome assembly description. One of these 2
          fhir:description [  a fhir:markdown ; markdown ]
          fhir:description [  a fhir:string ; string ]
      ] ;
      fhir:cytobandInterval [ # 1..1 Cytoband Interval
        fhir:chromosome [ CodeableConcept ] ; # 1..1 Chromosome
        fhir:startCytoband [ # 0..1 Start
          # arm[x] : 0..1 Arm. One of these 2
            fhir:arm [  a fhir:code ; code ]
            fhir:arm [  a fhir:string ; string ]
          # region[x] : 0..1 Region. One of these 2
            fhir:region [  a fhir:code ; code ]
            fhir:region [  a fhir:string ; string ]
          # band[x] : 0..1 Band. One of these 2
            fhir:band [  a fhir:code ; code ]
            fhir:band [  a fhir:string ; string ]
          # subBand[x] : 0..1 Sub-band. One of these 2
            fhir:subBand [  a fhir:code ; code ]
            fhir:subBand [  a fhir:string ; string ]
        ] ;
        fhir:endCytoband [ # 0..1 End
          # arm[x] : 0..1 Arm. One of these 2
            fhir:arm [  a fhir:code ; code ]
            fhir:arm [  a fhir:string ; string ]
          # region[x] : 0..1 Region. One of these 2
            fhir:region [  a fhir:code ; code ]
            fhir:region [  a fhir:string ; string ]
          # band[x] : 0..1 Band. One of these 2
            fhir:band [  a fhir:code ; code ]
            fhir:band [  a fhir:string ; string ]
          # subBand[x] : 0..1 SuBand. One of these 2
            fhir:subBand [  a fhir:code ; code ]
            fhir:subBand [  a fhir:string ; string ]
        ] ;
      ] ;
    ] ;
    fhir:featureLocation  ( [ string ] ... ) ; # 0..* Reserved and possibly deprecated
  ] ... ) ;
  fhir:representation ( [ # 0..* A representation of a molecular entity
    fhir:focus [ CodeableConcept ] ; # 0..1 The domain concept that is the focus of a given instance of the representation
    fhir:code  ( [ CodeableConcept ] ... ) ; # 0..* A code (e.g., sequence accession number) used to represent a molecular entity
    fhir:literal [ # 0..1 A molecular entity defined as a string literal
      fhir:encoding [ CodeableConcept ] ; # 0..1 The encoding used in the value
      fhir:value [ string ] ; # 1..1 A string literal representation of the molecular entity, using the encoding specified in encoding
    ] ;
    fhir:resolvable [ Reference(DocumentReference) ] ; # 0..1 A resolvable representation of a molecular entity (e.g., URI, attached and formatted file)
    fhir:extracted [ # 0..1 A molecular entity that is represented as a portion of a different entity
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived
      fhir:coordinateInterval [ # 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
        fhir:coordinateSystem [ # 0..1 The coordinate system used to define the location
          fhir:system [ CodeableConcept ] ; # 0..1 The type of coordinate system used
          fhir:origin [ CodeableConcept ] ; # 0..1 The location of the origin of the coordinate system
          fhir:normalizationMethod [ CodeableConcept ] ; # 0..1 The normalization method used for determining a location within the coordinate system
        ] ;
        # start[x] : 0..1 The start location of the interval. One of these 2
          fhir:start [  a fhir:Quantity ; Quantity ]
          fhir:start [  a fhir:Range ; Range ]
        # end[x] : 0..1 The end location of the interval. One of these 2
          fhir:end [  a fhir:Quantity ; Quantity ]
          fhir:end [  a fhir:Range ; Range ]
      ] ;
      fhir:reverseComplement [ boolean ] ; # 0..1 A flag that indicates whether the extracted sequence should be reverse complemented
    ] ;
    fhir:repeated [ # 0..1 A representation as a repeated motif
      fhir:sequenceMotif [ Reference(MolecularDefinition) ] ; # 1..1 The motif that is repeated
      fhir:copyCount [ integer ] ; # 1..1 The number of copies of the motif
    ] ;
    fhir:concatenated [ # 0..1 An ordered concatenation of molecular entities
      fhir:sequenceElement ( [ # 1..* One of the concatenated entities
        fhir:sequence [ Reference(MolecularDefinition) ] ; # 1..1 A reference to the sequence that defines this specific concatenated element
        fhir:ordinalIndex [ integer ] ; # 1..1 The ordinal index of the element within the concatenated representation
      ] ... ) ;
    ] ;
    fhir:relative [ # 0..1 A molecular entity represented as an ordered series of edits on a specified starting entity
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The molecular entity on which edits will be applied
      fhir:edit ( [ # 0..* A defined edit (change) to be applied
        fhir:editOrder [ integer ] ; # 0..1 Defines the order of edits when multiple edits are to be applied to the startingMolecule
        fhir:coordinateInterval [ # 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
          fhir:coordinateSystem [ # 0..1 The coordinate system used to define the location
            fhir:system [ CodeableConcept ] ; # 0..1 The type of coordinate system used
            fhir:origin [ CodeableConcept ] ; # 0..1 The location of the origin of the coordinate system
            fhir:normalizationMethod [ CodeableConcept ] ; # 0..1 The normalization method used for determining a location within the coordinate system
          ] ;
          # start[x] : 0..1 The start location of the interval. One of these 2
            fhir:start [  a fhir:Quantity ; Quantity ]
            fhir:start [  a fhir:Range ; Range ]
          # end[x] : 0..1 The end location of the interval. One of these 2
            fhir:end [  a fhir:Quantity ; Quantity ]
            fhir:end [  a fhir:Range ; Range ]
        ] ;
        fhir:replacementMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The molecular entity that serves as the replacement in the edit operation
        fhir:replacedMolecule [ Reference(MolecularDefinition) ] ; # 0..1 The portion of the molecular entity that is replaced by the replacementMolecule
      ] ... ) ;
    ] ;
  ] ... ) ;
]

Changes from both R4 and R4B

This resource did not exist in Release R4

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MolecularDefinition TU DomainResource Definitional content for a molecular entity

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Unique ID of an instance

... description 0..1 markdown Description of the Molecular Definition instance
... moleculeType Σ 0..1 CodeableConcept The type of molecule (e.g., DNA, RNA, amino acid)
... topology Σ 0..* CodeableConcept The structural topology of the molecular entity (e.g., linear, circular)

... memberState Σ 0..* Reference(MolecularDefinition) Reserved for future profiles (e.g., haplotype, genotype)

... location Σ 0..* BackboneElement A defined location on a molecular entity

.... sequenceLocation Σ 0..1 BackboneElement A coordinate-based location on a sequence
..... sequenceContext Σ 1..1 Reference(MolecularDefinition) The sequence on which the location is defined
..... coordinateInterval Σ 0..1 BackboneElement An interval on a sequence
...... coordinateSystem Σ 0..1 BackboneElement The coordinate system used to define the location
....... system Σ 0..1 CodeableConcept The type of coordinate system used
Binding: LL5323-2 icon (Extensible)
....... origin Σ 0..1 CodeableConcept The location of the origin of the coordinate system
....... normalizationMethod Σ 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system
...... start[x] Σ 0..1 The start location of the interval
....... startQuantity Quantity
....... startRange Range
...... end[x] Σ 0..1 The end location of the interval
....... endQuantity Quantity
....... endRange Range
..... strand 0..1 CodeableConcept The strand at the coordinateInterval
.... cytobandLocation Σ 0..1 BackboneElement A cytoband-based location on a sequence
..... genomeAssembly Σ 1..1 BackboneElement Reference Genome
...... organism 0..1 CodeableConcept Species of the organism
...... build 0..1 CodeableConcept Build number
...... accession 0..1 CodeableConcept Accession
...... description[x] 0..1 Genome assembly description
....... descriptionMarkdown markdown
....... descriptionString string
..... cytobandInterval Σ 1..1 BackboneElement Cytoband Interval
...... chromosome Σ 1..1 CodeableConcept Chromosome
...... startCytoband Σ 0..1 BackboneElement Start
....... arm[x] 0..1 Arm
........ armCode code
........ armString string
....... region[x] 0..1 Region
........ regionCode code
........ regionString string
....... band[x] 0..1 Band
........ bandCode code
........ bandString string
....... subBand[x] 0..1 Sub-band
........ subBandCode code
........ subBandString string
...... endCytoband Σ 0..1 BackboneElement End
....... arm[x] 0..1 Arm
........ armCode code
........ armString string
....... region[x] 0..1 Region
........ regionCode code
........ regionString string
....... band[x] 0..1 Band
........ bandCode code
........ bandString string
....... subBand[x] 0..1 SuBand
........ subBandCode code
........ subBandString string
.... featureLocation Σ 0..* string Reserved and possibly deprecated

... representation Σ 0..* BackboneElement A representation of a molecular entity

.... focus Σ 0..1 CodeableConcept The domain concept that is the focus of a given instance of the representation
.... code Σ 0..* CodeableConcept A code (e.g., sequence accession number) used to represent a molecular entity

.... literal Σ 0..1 BackboneElement A molecular entity defined as a string literal
..... encoding Σ 0..1 CodeableConcept The encoding used in the value
..... value Σ 1..1 string A string literal representation of the molecular entity, using the encoding specified in encoding
.... resolvable Σ 0..1 Reference(DocumentReference) A resolvable representation of a molecular entity (e.g., URI, attached and formatted file)
.... extracted Σ 0..1 BackboneElement A molecular entity that is represented as a portion of a different entity
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived
..... coordinateInterval Σ 0..1 BackboneElement The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
...... coordinateSystem Σ 0..1 BackboneElement The coordinate system used to define the location
....... system Σ 0..1 CodeableConcept The type of coordinate system used
Binding: LL5323-2 icon (Extensible)
....... origin Σ 0..1 CodeableConcept The location of the origin of the coordinate system
....... normalizationMethod Σ 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system
...... start[x] Σ 0..1 The start location of the interval
....... startQuantity Quantity
....... startRange Range
...... end[x] Σ 0..1 The end location of the interval
....... endQuantity Quantity
....... endRange Range
..... reverseComplement Σ 0..1 boolean A flag that indicates whether the extracted sequence should be reverse complemented
.... repeated Σ 0..1 BackboneElement A representation as a repeated motif
..... sequenceMotif Σ 1..1 Reference(MolecularDefinition) The motif that is repeated
..... copyCount Σ 1..1 integer The number of copies of the motif
.... concatenated Σ 0..1 BackboneElement An ordered concatenation of molecular entities
..... sequenceElement Σ 1..* BackboneElement One of the concatenated entities

...... sequence Σ 1..1 Reference(MolecularDefinition) A reference to the sequence that defines this specific concatenated element
...... ordinalIndex Σ 1..1 integer The ordinal index of the element within the concatenated representation
.... relative Σ 0..1 BackboneElement A molecular entity represented as an ordered series of edits on a specified starting entity
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The molecular entity on which edits will be applied
..... edit Σ 0..* BackboneElement A defined edit (change) to be applied

...... editOrder 0..1 integer Defines the order of edits when multiple edits are to be applied to the startingMolecule
...... coordinateInterval Σ 0..1 BackboneElement The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
....... coordinateSystem Σ 0..1 BackboneElement The coordinate system used to define the location
........ system Σ 0..1 CodeableConcept The type of coordinate system used
Binding: LL5323-2 icon (Extensible)
........ origin Σ 0..1 CodeableConcept The location of the origin of the coordinate system
........ normalizationMethod Σ 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system
....... start[x] Σ 0..1 The start location of the interval
........ startQuantity Quantity
........ startRange Range
....... end[x] Σ 0..1 The end location of the interval
........ endQuantity Quantity
........ endRange Range
...... replacementMolecule Σ 1..1 Reference(MolecularDefinition) The molecular entity that serves as the replacement in the edit operation
...... replacedMolecule Σ 0..1 Reference(MolecularDefinition) The portion of the molecular entity that is replaced by the replacementMolecule

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

MolecularDefinition (DomainResource)A unique identifier for a particular instance of this resourceidentifier : Identifier [0..*]A description of the molecular entity in a human friendly formatdescription : markdown [0..1]The type of molecule (e.g., DNA, RNA, amino acid). This is a broad concept that refers to the general physical composition of the molecule, intended to facilitate searching and to provide domain context for profiles and instances. The terminology binding may be expanded to support additional types of molecules in the future (e.g., peptide nucleic acids, oligosaccharides)moleculeType : CodeableConcept [0..1]Classifications of an instance of the resource into arbitrary types, based on domain semantics. For example, this element could indicate that an instance of moleculeType 'RNA' could have a type of 'mRNA' or 'siRNA'type : CodeableConcept [0..*]The structural topology of the molecular entity. For sequences (e.g., DNA), this could specify 'linear' and 'circular'. More complex entities might be branched or have a quaternary structuretopology : CodeableConcept [0..*]Reserved for future profiles (e.g., haplotype, genotype)memberState : Reference [0..*] « MolecularDefinition »LocationReserved and possibly deprecatedfeatureLocation : string [0..*]SequenceLocationA reference to a sequence on which the location is definedsequenceContext : Reference [1..1] « MolecularDefinition »The specific strand at the coordinateInterval, when the interval alone is not sufficient to define a location (e.g., double stranded DNA). Example values include 'forward' and 'reverse'strand : CodeableConcept [0..1]CoordinateIntervalThe start location of the interval expressed as a precise coordinate (Quantity) or expressed as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supportedstart[x] : DataType [0..1] « Quantity|Range »The end location of the interval expressed as a precise coordinate (Quantity) or as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supported.end[x] : DataType [0..1] « Quantity|Range »CoordinateSystemA definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingsystem : CodeableConcept [0..1] « null (Strength=Extensible)LL5323-2+ »The location of the origin (0 or 1, depending on the coordinate system). For example, this could specify the origin is at the start of the sequence (e.g., 5’ end or N-terminus), the beginning of a designated feature (e.g., A in the ATG translation initiation codon), or the end of a designated feature (e.g., 3’ end of an exon, from which an offset is calculated into the following intron)origin : CodeableConcept [0..1]The normalization method used for determining a location within the coordinate system. Examples include left shift (e.g., VCF), right shift (e.g., HGVS), or fully justified (e.g., VOCA)normalizationMethod : CodeableConcept [0..1]CytobandLocationGenomeAssemblySpecies of the organismorganism : CodeableConcept [0..1]The build number of this genome assemblebuild : CodeableConcept [0..1]The accession of this genome assembleaccession : CodeableConcept [0..1]The description of this genome assemblydescription[x] : PrimitiveType [0..1] « markdown|string »CytobandIntervalThe chromosome where this cytoband interval occurschromosome : CodeableConcept [1..1]StartCytobandThe arm of this start intervalarm[x] : PrimitiveType [0..1] « code|string »The region of this start intervalregion[x] : PrimitiveType [0..1] « code|string »The band of this start intervalband[x] : PrimitiveType [0..1] « code|string »The sub-band of this start intervalsubBand[x] : PrimitiveType [0..1] « code|string »EndCytobandThe arm of this end intervalarm[x] : PrimitiveType [0..1] « code|string »The region of this end intervalregion[x] : PrimitiveType [0..1] « code|string »The band of this end intervalband[x] : PrimitiveType [0..1] « code|string »The sub-band of this end intervalsubBand[x] : PrimitiveType [0..1] « code|string »RepresentationThe domain concept that is the focus of the representation. This element is used to disambiguate the representations of the “reference” and the “alternate” alleles at a given location, for examplefocus : CodeableConcept [0..1]A code (e.g., sequence accession number) used to represent a molecular entitycode : CodeableConcept [0..*]A resolvable representation of a molecular entity, which may be specified as a URI and/or attached document (in a defined format)resolvable : Reference [0..1] « DocumentReference »LiteralThe encoding used for the expression of the entity. For a primary sequence, this element represents the alphabet used (e.g., 1 character DNA without ambiguity codes, 3 character amino acid codes)encoding : CodeableConcept [0..1]A string literal representation of the molecular entity, using a specific encoding. For example, this may be the primary sequence of a strand of DNAvalue : string [1..1]ExtractedA reference to the molecular entity that serves as the conceptual 'parent' from which the intended entity is derived. For example, this could be a chromosome sequence on which a coordinateInterval is definedstartingMolecule : Reference [1..1] « MolecularDefinition »A flag that indicates whether the extracted sequence should be reverse complemented in order to produce the intended entity. This element is only relevant to molecular entities that support the concept of reverse complement (e.g., double stranded DNA)reverseComplement : boolean [0..1]CoordinateIntervalThe start location of the interval expressed as a precise coordinate (Quantity) or expressed as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supportedstart[x] : DataType [0..1] « Quantity|Range »The end location of the interval expressed as a precise coordinate (Quantity) or as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supported.end[x] : DataType [0..1] « Quantity|Range »CoordinateSystemA definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingsystem : CodeableConcept [0..1] « null (Strength=Extensible)LL5323-2+ »The location of the origin (0 or 1, depending on the coordinate system). For example, this could specify the origin is at the start of the sequence (e.g., 5’ end or N-terminus), the beginning of a designated feature (e.g., A in the ATG translation initiation codon), or the end of a designated feature (e.g., 3’ end of an exon, from which an offset is calculated into the following intron)origin : CodeableConcept [0..1]The normalization method used for determining a location within the coordinate system. Examples include left shift (e.g., VCF), right shift (e.g., HGVS), or fully justified (e.g., VOCA)normalizationMethod : CodeableConcept [0..1]RepeatedThe motif that is repeated in tandem, which ultimately defines the intended molecular entitysequenceMotif : Reference [1..1] « MolecularDefinition »The number of times the motif is repeated to create the intended molecular entitycopyCount : integer [1..1]ConcatenatedSequenceElementA reference to the sequence that defines this specific concatenated elementsequence : Reference [1..1] « MolecularDefinition »The ordinal index of the element within the concatenated representationordinalIndex : integer [1..1]RelativeThe molecular entity that serves as the starting point, on which edits will be appliedstartingMolecule : Reference [1..1] « MolecularDefinition »EditDefines the order of edits when multiple edits are to be applied to the startingMolecule. This is important when edits may overlap (intervals) or when edits change the length of the entityeditOrder : integer [0..1]The molecular entity that serves as the replacement in the edit operation. After the edit has been applied, the state of the entity at the specified coordinateInterval is defined by the state of the replacementMoleculereplacementMolecule : Reference [1..1] « MolecularDefinition »The portion of the molecular entity that is replaced by the replacementMolecule as a result of the edit. The value of this element can be derived as the state of the entity at the specified coordinateInterval, prior to the edit being applied. It is provided for conveniencereplacedMolecule : Reference [0..1] « MolecularDefinition »CoordinateIntervalThe start location of the interval expressed as a precise coordinate (Quantity) or expressed as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supportedstart[x] : DataType [0..1] « Quantity|Range »The end location of the interval expressed as a precise coordinate (Quantity) or as a range (Range) that is defined by low (range start) and high (range end). Open-ended ranges, where one end is unbounded, may be supported.end[x] : DataType [0..1] « Quantity|Range »CoordinateSystemA definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingsystem : CodeableConcept [0..1] « null (Strength=Extensible)LL5323-2+ »The location of the origin (0 or 1, depending on the coordinate system). For example, this could specify the origin is at the start of the sequence (e.g., 5’ end or N-terminus), the beginning of a designated feature (e.g., A in the ATG translation initiation codon), or the end of a designated feature (e.g., 3’ end of an exon, from which an offset is calculated into the following intron)origin : CodeableConcept [0..1]The normalization method used for determining a location within the coordinate system. Examples include left shift (e.g., VCF), right shift (e.g., HGVS), or fully justified (e.g., VOCA)normalizationMethod : CodeableConcept [0..1]A definition of the coordinate system. Examples include 1-based character counting, and 0-based interval countingcoordinateSystem[0..1]An interval on a sequence, defined by coordinate-based start and end coordinatescoordinateInterval[0..1]A location on a sequence, defined using a nucleotide coordinate systemsequenceLocation[0..1]The reference genome assemblegenomeAssembly[1..1]The start of this cytoband IntervalstartCytoband[0..1]The end of this cytoband IntervalendCytoband[0..1]The Cytoband IntervalcytobandInterval[1..1]A location on a sequence, defined using cytobandscytobandLocation[0..1]A defined location on a molecular entity. Location definitions may vary with respect to coordinate space and precision or level of granularitylocation[0..*]A molecular entity defined as a string literalliteral[0..1]The coordinate system used to define the location, which may vary depending on application or context of usecoordinateSystem[0..1]The interval on startingMolecule that defines the portion to be extracted in order to create the intended entitycoordinateInterval[0..1]A molecular entity that is represented as a portion of a different entity. For example, this element can represent a subsequence (e.g., genetic region) that is part of and conceptually extracted from a longer sequence (e.g., chromosome sequence). The “parent” entity is specified in startingMolecule and the location of the intended molecular entity on the parent entity is defined by coordinateIntervalextracted[0..1]A representation of a molecular entity that is expressed as a number of copies of a repeated motifrepeated[0..1]One of the concatenated entities within the concatenated representationsequenceElement[1..*]A representation comprised of an ordered concatenation of two or more molecular entitiesconcatenated[0..1]The coordinate system used to define the location, which may vary depending on application or context of usecoordinateSystem[0..1]The interval on startingMolecule that defines the portion to be extracted in order to create the intended entitycoordinateInterval[0..1]A defined edit (change) to be applied to the molecular entityedit[0..*]A molecular entity represented as an ordered series of edits on a specified starting entity. This representation can be used to define one entity relative to anotherrelative[0..1]A representation of a molecular entity, specifically including sequence. Note this element is intended to define the entity primarily through computable, discrete elements that express domain semantics rather than replicating a particular file format or relational schemarepresentation[0..*]

XML Template

<MolecularDefinition xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Unique ID of an instance --></identifier>
 <description value="[markdown]"/><!-- 0..1 Description of the Molecular Definition instance -->
 <moleculeType><!-- 0..1 CodeableConcept The type of molecule (e.g., DNA, RNA, amino acid) --></moleculeType>
 <type><!-- 0..* CodeableConcept Classification of the molecule into types other than those defined by moleculeType --></type>
 <topology><!-- 0..* CodeableConcept The structural topology of the molecular entity (e.g., linear, circular) --></topology>
 <memberState><!-- 0..* Reference(MolecularDefinition) Reserved for future profiles (e.g., haplotype, genotype) --></memberState>
 <location>  <!-- 0..* A defined location on a molecular entity -->
  <sequenceLocation>  <!-- 0..1 A coordinate-based location on a sequence -->
   <sequenceContext><!-- 1..1 Reference(MolecularDefinition) The sequence on which the location is defined --></sequenceContext>
   <coordinateInterval>  <!-- 0..1 An interval on a sequence -->
    <coordinateSystem>  <!-- 0..1 The coordinate system used to define the location -->
     <system><!-- 0..1 CodeableConcept The type of coordinate system used icon --></system>
     <origin><!-- 0..1 CodeableConcept The location of the origin of the coordinate system --></origin>
     <normalizationMethod><!-- 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system --></normalizationMethod>
    </coordinateSystem>
    <start[x]><!-- 0..1 Quantity|Range The start location of the interval --></start[x]>
    <end[x]><!-- 0..1 Quantity|Range The end location of the interval --></end[x]>
   </coordinateInterval>
   <strand><!-- 0..1 CodeableConcept The strand at the coordinateInterval --></strand>
  </sequenceLocation>
  <cytobandLocation>  <!-- 0..1 A cytoband-based location on a sequence -->
   <genomeAssembly>  <!-- 1..1 Reference Genome -->
    <organism><!-- 0..1 CodeableConcept Species of the organism --></organism>
    <build><!-- 0..1 CodeableConcept Build number --></build>
    <accession><!-- 0..1 CodeableConcept Accession --></accession>
    <description[x]><!-- 0..1 markdown|string Genome assembly description --></description[x]>
   </genomeAssembly>
   <cytobandInterval>  <!-- 1..1 Cytoband Interval -->
    <chromosome><!-- 1..1 CodeableConcept Chromosome --></chromosome>
    <startCytoband>  <!-- 0..1 Start -->
     <arm[x]><!-- 0..1 code|string Arm --></arm[x]>
     <region[x]><!-- 0..1 code|string Region --></region[x]>
     <band[x]><!-- 0..1 code|string Band --></band[x]>
     <subBand[x]><!-- 0..1 code|string Sub-band --></subBand[x]>
    </startCytoband>
    <endCytoband>  <!-- 0..1 End -->
     <arm[x]><!-- 0..1 code|string Arm --></arm[x]>
     <region[x]><!-- 0..1 code|string Region --></region[x]>
     <band[x]><!-- 0..1 code|string Band --></band[x]>
     <subBand[x]><!-- 0..1 code|string SuBand --></subBand[x]>
    </endCytoband>
   </cytobandInterval>
  </cytobandLocation>
  <featureLocation value="[string]"/><!-- 0..* Reserved and possibly deprecated -->
 </location>
 <representation>  <!-- 0..* A representation of a molecular entity -->
  <focus><!-- 0..1 CodeableConcept The domain concept that is the focus of a given instance of the representation --></focus>
  <code><!-- 0..* CodeableConcept A code (e.g., sequence accession number) used to represent a molecular entity --></code>
  <literal>  <!-- 0..1 A molecular entity defined as a string literal -->
   <encoding><!-- 0..1 CodeableConcept The encoding used in the value --></encoding>
   <value value="[string]"/><!-- 1..1 A string literal representation of the molecular entity, using the encoding specified in encoding -->
  </literal>
  <resolvable><!-- 0..1 Reference(DocumentReference) A resolvable representation of a molecular entity (e.g., URI, attached and formatted file) --></resolvable>
  <extracted>  <!-- 0..1 A molecular entity that is represented as a portion of a different entity -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived --></startingMolecule>
   <coordinateInterval>  <!-- 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity -->
    <coordinateSystem>  <!-- 0..1 The coordinate system used to define the location -->
     <system><!-- 0..1 CodeableConcept The type of coordinate system used icon --></system>
     <origin><!-- 0..1 CodeableConcept The location of the origin of the coordinate system --></origin>
     <normalizationMethod><!-- 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system --></normalizationMethod>
    </coordinateSystem>
    <start[x]><!-- 0..1 Quantity|Range The start location of the interval --></start[x]>
    <end[x]><!-- 0..1 Quantity|Range The end location of the interval --></end[x]>
   </coordinateInterval>
   <reverseComplement value="[boolean]"/><!-- 0..1 A flag that indicates whether the extracted sequence should be reverse complemented -->
  </extracted>
  <repeated>  <!-- 0..1 A representation as a repeated motif -->
   <sequenceMotif><!-- 1..1 Reference(MolecularDefinition) The motif that is repeated --></sequenceMotif>
   <copyCount value="[integer]"/><!-- 1..1 The number of copies of the motif -->
  </repeated>
  <concatenated>  <!-- 0..1 An ordered concatenation of molecular entities -->
   <sequenceElement>  <!-- 1..* One of the concatenated entities -->
    <sequence><!-- 1..1 Reference(MolecularDefinition) A reference to the sequence that defines this specific concatenated element --></sequence>
    <ordinalIndex value="[integer]"/><!-- 1..1 The ordinal index of the element within the concatenated representation -->
   </sequenceElement>
  </concatenated>
  <relative>  <!-- 0..1 A molecular entity represented as an ordered series of edits on a specified starting entity -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The molecular entity on which edits will be applied --></startingMolecule>
   <edit>  <!-- 0..* A defined edit (change) to be applied -->
    <editOrder value="[integer]"/><!-- 0..1 Defines the order of edits when multiple edits are to be applied to the startingMolecule -->
    <coordinateInterval>  <!-- 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity -->
     <coordinateSystem>  <!-- 0..1 The coordinate system used to define the location -->
      <system><!-- 0..1 CodeableConcept The type of coordinate system used icon --></system>
      <origin><!-- 0..1 CodeableConcept The location of the origin of the coordinate system --></origin>
      <normalizationMethod><!-- 0..1 CodeableConcept The normalization method used for determining a location within the coordinate system --></normalizationMethod>
     </coordinateSystem>
     <start[x]><!-- 0..1 Quantity|Range The start location of the interval --></start[x]>
     <end[x]><!-- 0..1 Quantity|Range The end location of the interval --></end[x]>
    </coordinateInterval>
    <replacementMolecule><!-- 1..1 Reference(MolecularDefinition) The molecular entity that serves as the replacement in the edit operation --></replacementMolecule>
    <replacedMolecule><!-- 0..1 Reference(MolecularDefinition) The portion of the molecular entity that is replaced by the replacementMolecule --></replacedMolecule>
   </edit>
  </relative>
 </representation>
</MolecularDefinition>

JSON Template

{doco
  "resourceType" : "MolecularDefinition",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Unique ID of an instance
  "description" : "<markdown>", // Description of the Molecular Definition instance
  "moleculeType" : { CodeableConcept }, // The type of molecule (e.g., DNA, RNA, amino acid)
  "type" : [{ CodeableConcept }], // Classification of the molecule into types other than those defined by moleculeType
  "topology" : [{ CodeableConcept }], // The structural topology of the molecular entity (e.g., linear, circular)
  "memberState" : [{ Reference(MolecularDefinition) }], // Reserved for future profiles (e.g., haplotype, genotype)
  "location" : [{ // A defined location on a molecular entity
    "sequenceLocation" : { // A coordinate-based location on a sequence
      "sequenceContext" : { Reference(MolecularDefinition) }, // R!  The sequence on which the location is defined
      "coordinateInterval" : { // An interval on a sequence
        "coordinateSystem" : { // The coordinate system used to define the location
          "system" : { CodeableConcept }, // The type of coordinate system used icon
          "origin" : { CodeableConcept }, // The location of the origin of the coordinate system
          "normalizationMethod" : { CodeableConcept } // The normalization method used for determining a location within the coordinate system
        },
        // start[x]: The start location of the interval. One of these 2:
        "startQuantity" : { Quantity },
        "startRange" : { Range },
        // end[x]: The end location of the interval. One of these 2:
        "endQuantity" : { Quantity },
        "endRange" : { Range }
      },
      "strand" : { CodeableConcept } // The strand at the coordinateInterval
    },
    "cytobandLocation" : { // A cytoband-based location on a sequence
      "genomeAssembly" : { // R!  Reference Genome
        "organism" : { CodeableConcept }, // Species of the organism
        "build" : { CodeableConcept }, // Build number
        "accession" : { CodeableConcept }, // Accession
        // description[x]: Genome assembly description. One of these 2:
        "descriptionMarkdown" : "<markdown>",
        "descriptionString" : "<string>"
      },
      "cytobandInterval" : { // R!  Cytoband Interval
        "chromosome" : { CodeableConcept }, // R!  Chromosome
        "startCytoband" : { // Start
          // arm[x]: Arm. One of these 2:
          "armCode" : "<code>",
          "armString" : "<string>",
          // region[x]: Region. One of these 2:
          "regionCode" : "<code>",
          "regionString" : "<string>",
          // band[x]: Band. One of these 2:
          "bandCode" : "<code>",
          "bandString" : "<string>",
          // subBand[x]: Sub-band. One of these 2:
          "subBandCode" : "<code>",
          "subBandString" : "<string>"
        },
        "endCytoband" : { // End
          // arm[x]: Arm. One of these 2:
          "armCode" : "<code>",
          "armString" : "<string>",
          // region[x]: Region. One of these 2:
          "regionCode" : "<code>",
          "regionString" : "<string>",
          // band[x]: Band. One of these 2:
          "bandCode" : "<code>",
          "bandString" : "<string>",
          // subBand[x]: SuBand. One of these 2:
          "subBandCode" : "<code>",
          "subBandString" : "<string>"
        }
      }
    },
    "featureLocation" : ["<string>"] // Reserved and possibly deprecated
  }],
  "representation" : [{ // A representation of a molecular entity
    "focus" : { CodeableConcept }, // The domain concept that is the focus of a given instance of the representation
    "code" : [{ CodeableConcept }], // A code (e.g., sequence accession number) used to represent a molecular entity
    "literal" : { // A molecular entity defined as a string literal
      "encoding" : { CodeableConcept }, // The encoding used in the value
      "value" : "<string>" // R!  A string literal representation of the molecular entity, using the encoding specified in encoding
    },
    "resolvable" : { Reference(DocumentReference) }, // A resolvable representation of a molecular entity (e.g., URI, attached and formatted file)
    "extracted" : { // A molecular entity that is represented as a portion of a different entity
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived
      "coordinateInterval" : { // The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
        "coordinateSystem" : { // The coordinate system used to define the location
          "system" : { CodeableConcept }, // The type of coordinate system used icon
          "origin" : { CodeableConcept }, // The location of the origin of the coordinate system
          "normalizationMethod" : { CodeableConcept } // The normalization method used for determining a location within the coordinate system
        },
        // start[x]: The start location of the interval. One of these 2:
        "startQuantity" : { Quantity },
        "startRange" : { Range },
        // end[x]: The end location of the interval. One of these 2:
        "endQuantity" : { Quantity },
        "endRange" : { Range }
      },
      "reverseComplement" : <boolean> // A flag that indicates whether the extracted sequence should be reverse complemented
    },
    "repeated" : { // A representation as a repeated motif
      "sequenceMotif" : { Reference(MolecularDefinition) }, // R!  The motif that is repeated
      "copyCount" : <integer> // R!  The number of copies of the motif
    },
    "concatenated" : { // An ordered concatenation of molecular entities
      "sequenceElement" : [{ // R!  One of the concatenated entities
        "sequence" : { Reference(MolecularDefinition) }, // R!  A reference to the sequence that defines this specific concatenated element
        "ordinalIndex" : <integer> // R!  The ordinal index of the element within the concatenated representation
      }]
    },
    "relative" : { // A molecular entity represented as an ordered series of edits on a specified starting entity
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The molecular entity on which edits will be applied
      "edit" : [{ // A defined edit (change) to be applied
        "editOrder" : <integer>, // Defines the order of edits when multiple edits are to be applied to the startingMolecule
        "coordinateInterval" : { // The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
          "coordinateSystem" : { // The coordinate system used to define the location
            "system" : { CodeableConcept }, // The type of coordinate system used icon
            "origin" : { CodeableConcept }, // The location of the origin of the coordinate system
            "normalizationMethod" : { CodeableConcept } // The normalization method used for determining a location within the coordinate system
          },
          // start[x]: The start location of the interval. One of these 2:
          "startQuantity" : { Quantity },
          "startRange" : { Range },
          // end[x]: The end location of the interval. One of these 2:
          "endQuantity" : { Quantity },
          "endRange" : { Range }
        },
        "replacementMolecule" : { Reference(MolecularDefinition) }, // R!  The molecular entity that serves as the replacement in the edit operation
        "replacedMolecule" : { Reference(MolecularDefinition) } // The portion of the molecular entity that is replaced by the replacementMolecule
      }]
    }
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MolecularDefinition;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Unique ID of an instance
  fhir:description [ markdown ] ; # 0..1 Description of the Molecular Definition instance
  fhir:moleculeType [ CodeableConcept ] ; # 0..1 The type of molecule (e.g., DNA, RNA, amino acid)
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* Classification of the molecule into types other than those defined by moleculeType
  fhir:topology  ( [ CodeableConcept ] ... ) ; # 0..* The structural topology of the molecular entity (e.g., linear, circular)
  fhir:memberState  ( [ Reference(MolecularDefinition) ] ... ) ; # 0..* Reserved for future profiles (e.g., haplotype, genotype)
  fhir:location ( [ # 0..* A defined location on a molecular entity
    fhir:sequenceLocation [ # 0..1 A coordinate-based location on a sequence
      fhir:sequenceContext [ Reference(MolecularDefinition) ] ; # 1..1 The sequence on which the location is defined
      fhir:coordinateInterval [ # 0..1 An interval on a sequence
        fhir:coordinateSystem [ # 0..1 The coordinate system used to define the location
          fhir:system [ CodeableConcept ] ; # 0..1 The type of coordinate system used
          fhir:origin [ CodeableConcept ] ; # 0..1 The location of the origin of the coordinate system
          fhir:normalizationMethod [ CodeableConcept ] ; # 0..1 The normalization method used for determining a location within the coordinate system
        ] ;
        # start[x] : 0..1 The start location of the interval. One of these 2
          fhir:start [  a fhir:Quantity ; Quantity ]
          fhir:start [  a fhir:Range ; Range ]
        # end[x] : 0..1 The end location of the interval. One of these 2
          fhir:end [  a fhir:Quantity ; Quantity ]
          fhir:end [  a fhir:Range ; Range ]
      ] ;
      fhir:strand [ CodeableConcept ] ; # 0..1 The strand at the coordinateInterval
    ] ;
    fhir:cytobandLocation [ # 0..1 A cytoband-based location on a sequence
      fhir:genomeAssembly [ # 1..1 Reference Genome
        fhir:organism [ CodeableConcept ] ; # 0..1 Species of the organism
        fhir:build [ CodeableConcept ] ; # 0..1 Build number
        fhir:accession [ CodeableConcept ] ; # 0..1 Accession
        # description[x] : 0..1 Genome assembly description. One of these 2
          fhir:description [  a fhir:markdown ; markdown ]
          fhir:description [  a fhir:string ; string ]
      ] ;
      fhir:cytobandInterval [ # 1..1 Cytoband Interval
        fhir:chromosome [ CodeableConcept ] ; # 1..1 Chromosome
        fhir:startCytoband [ # 0..1 Start
          # arm[x] : 0..1 Arm. One of these 2
            fhir:arm [  a fhir:code ; code ]
            fhir:arm [  a fhir:string ; string ]
          # region[x] : 0..1 Region. One of these 2
            fhir:region [  a fhir:code ; code ]
            fhir:region [  a fhir:string ; string ]
          # band[x] : 0..1 Band. One of these 2
            fhir:band [  a fhir:code ; code ]
            fhir:band [  a fhir:string ; string ]
          # subBand[x] : 0..1 Sub-band. One of these 2
            fhir:subBand [  a fhir:code ; code ]
            fhir:subBand [  a fhir:string ; string ]
        ] ;
        fhir:endCytoband [ # 0..1 End
          # arm[x] : 0..1 Arm. One of these 2
            fhir:arm [  a fhir:code ; code ]
            fhir:arm [  a fhir:string ; string ]
          # region[x] : 0..1 Region. One of these 2
            fhir:region [  a fhir:code ; code ]
            fhir:region [  a fhir:string ; string ]
          # band[x] : 0..1 Band. One of these 2
            fhir:band [  a fhir:code ; code ]
            fhir:band [  a fhir:string ; string ]
          # subBand[x] : 0..1 SuBand. One of these 2
            fhir:subBand [  a fhir:code ; code ]
            fhir:subBand [  a fhir:string ; string ]
        ] ;
      ] ;
    ] ;
    fhir:featureLocation  ( [ string ] ... ) ; # 0..* Reserved and possibly deprecated
  ] ... ) ;
  fhir:representation ( [ # 0..* A representation of a molecular entity
    fhir:focus [ CodeableConcept ] ; # 0..1 The domain concept that is the focus of a given instance of the representation
    fhir:code  ( [ CodeableConcept ] ... ) ; # 0..* A code (e.g., sequence accession number) used to represent a molecular entity
    fhir:literal [ # 0..1 A molecular entity defined as a string literal
      fhir:encoding [ CodeableConcept ] ; # 0..1 The encoding used in the value
      fhir:value [ string ] ; # 1..1 A string literal representation of the molecular entity, using the encoding specified in encoding
    ] ;
    fhir:resolvable [ Reference(DocumentReference) ] ; # 0..1 A resolvable representation of a molecular entity (e.g., URI, attached and formatted file)
    fhir:extracted [ # 0..1 A molecular entity that is represented as a portion of a different entity
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The molecular entity that serves as the conceptual 'parent' from which the intended entity is derived
      fhir:coordinateInterval [ # 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
        fhir:coordinateSystem [ # 0..1 The coordinate system used to define the location
          fhir:system [ CodeableConcept ] ; # 0..1 The type of coordinate system used
          fhir:origin [ CodeableConcept ] ; # 0..1 The location of the origin of the coordinate system
          fhir:normalizationMethod [ CodeableConcept ] ; # 0..1 The normalization method used for determining a location within the coordinate system
        ] ;
        # start[x] : 0..1 The start location of the interval. One of these 2
          fhir:start [  a fhir:Quantity ; Quantity ]
          fhir:start [  a fhir:Range ; Range ]
        # end[x] : 0..1 The end location of the interval. One of these 2
          fhir:end [  a fhir:Quantity ; Quantity ]
          fhir:end [  a fhir:Range ; Range ]
      ] ;
      fhir:reverseComplement [ boolean ] ; # 0..1 A flag that indicates whether the extracted sequence should be reverse complemented
    ] ;
    fhir:repeated [ # 0..1 A representation as a repeated motif
      fhir:sequenceMotif [ Reference(MolecularDefinition) ] ; # 1..1 The motif that is repeated
      fhir:copyCount [ integer ] ; # 1..1 The number of copies of the motif
    ] ;
    fhir:concatenated [ # 0..1 An ordered concatenation of molecular entities
      fhir:sequenceElement ( [ # 1..* One of the concatenated entities
        fhir:sequence [ Reference(MolecularDefinition) ] ; # 1..1 A reference to the sequence that defines this specific concatenated element
        fhir:ordinalIndex [ integer ] ; # 1..1 The ordinal index of the element within the concatenated representation
      ] ... ) ;
    ] ;
    fhir:relative [ # 0..1 A molecular entity represented as an ordered series of edits on a specified starting entity
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The molecular entity on which edits will be applied
      fhir:edit ( [ # 0..* A defined edit (change) to be applied
        fhir:editOrder [ integer ] ; # 0..1 Defines the order of edits when multiple edits are to be applied to the startingMolecule
        fhir:coordinateInterval [ # 0..1 The interval on startingMolecule that defines the portion to be extracted to produce the intended entity
          fhir:coordinateSystem [ # 0..1 The coordinate system used to define the location
            fhir:system [ CodeableConcept ] ; # 0..1 The type of coordinate system used
            fhir:origin [ CodeableConcept ] ; # 0..1 The location of the origin of the coordinate system
            fhir:normalizationMethod [ CodeableConcept ] ; # 0..1 The normalization method used for determining a location within the coordinate system
          ] ;
          # start[x] : 0..1 The start location of the interval. One of these 2
            fhir:start [  a fhir:Quantity ; Quantity ]
            fhir:start [  a fhir:Range ; Range ]
          # end[x] : 0..1 The end location of the interval. One of these 2
            fhir:end [  a fhir:Quantity ; Quantity ]
            fhir:end [  a fhir:Range ; Range ]
        ] ;
        fhir:replacementMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The molecular entity that serves as the replacement in the edit operation
        fhir:replacedMolecule [ Reference(MolecularDefinition) ] ; # 0..1 The portion of the molecular entity that is replaced by the replacementMolecule
      ] ... ) ;
    ] ;
  ] ... ) ;
]

Changes from both R4 and R4B

This resource did not exist in Release R4

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

Path ValueSet Type Documentation
MolecularDefinition.location.sequenceLocation.coordinateInterval.coordinateSystem.system http://loinc.org/vs/LL5323-2 icon Extensible
MolecularDefinition.representation.extracted.coordinateInterval.coordinateSystem.system http://loinc.org/vs/LL5323-2 icon Extensible
MolecularDefinition.representation.relative.edit.coordinateInterval.coordinateSystem.system http://loinc.org/vs/LL5323-2 icon Extensible

Molecular sequences are represented using numerous encodings, which are not always explicitly specified. The representation.literal.encoding attribute captures this information directly, so that implementors can validate the content of messages and computationally determine how a particular sequence should be interpreted.

The examples below illustrate different encodings, which could be used to create terms for this attribute. They are based on the IUPAC symbols for nucleotide and amino acid sequences.

Symbol Meaning Origin of designation
G Guanine G
A Adenine A
T Thymine T
C Cytosine C
Symbol Meaning Origin of designation
G Guanine G
A Adenine A
U Uracil U
C Cytosine C
Symbol Meaning Origin of designation
G Guanine G
A Adenine A
T Thymine T
C Cytosine C
N G or A or T or C aNy
Symbol Meaning Origin of designation
G Guanine G
A Adenine A
T Thymine T
C Cytosine C
R G or A puRine
Y T or C pYrimidine
M A or C aMino
K G or T Keto
S G or C Strong interaction (3 H bonds)
W A or T Weak interaction (2 H bonds)
H A or C or T not-G, H follows G in the alphabet
B G or T or C not-A, B follows A
V G or C or A not-T (not-U), V follows U
D G or A or T not-C, D follows C
N G or A or T or C aNy
Symbol Amino acid
A alanine
C cysteine
D aspartic acid
E glutamic acid
F phenylalanine
G glycine
H histidine
I isoleucine
K lysine
L leucine
M methionine
N asparagine
P proline
Q glutamine
R arginine
S serine
T threonine
V valine
W tryptophan
Y tyrosine
Symbol Amino acid
Ala alanine
Cys cysteine
Asp aspartic acid
Glu glutamic acid
Phe phenylalanine
Gly glycine
His histidine
Ile isoleucine
Lys lysine
Leu leucine
Met methionine
Asn asparagine
Pro proline
Gln glutamine
Arg arginine
Ser serine
Thr threonine
Val valine
Trp tryptophan
Tyr tyrosine
Symbol Amino acid
A alanine
B aspartic acid or asparagine
C cysteine
D aspartic acid
E glutamic acid
F phenylalanine
G glycine
H histidine
I isoleucine
K lysine
L leucine
M methionine
N asparagine
P proline
Q glutamine
R arginine
S serine
T threonine
U selenocysteine
V valine
W tryptophan
X unknown or 'other' amino acid
Y tyrosine
Z glutamic acid or glutamine
Symbol Amino acid
Ala alanine
Asx aspartic acid or asparagine
Cys cysteine
Asp aspartic acid
Glu glutamic acid
Phe phenylalanine
Gly glycine
His histidine
Ile isoleucine
Lys lysine
Leu leucine
Met methionine
Asn asparagine
Pro proline
Gln glutamine
Arg arginine
Ser serine
Thr threonine
Sec selenocysteine
Val valine
Trp tryptophan
Xaa unknown or 'other' amino acid
Tyr tyrosine
Glx glutamic acid or glutamine

The Molecular Definition resource supports several different methods for representing a molecule. Some of the elements described below may apply only to sequences, and different elements may be added to support other types of molecular concepts.

Native representations: The literal, code, and resolvable are native representations, meaning they represent a sequence “as-is” without any additional computation.

Derived representations: The extracted, concatenated, repeated, and relative representations are derived representations, meaning they require one or more computational operations to be performed to create the sequence that is being represented.

The literal element can be used to represent a sequence as a string of characters. By convention, nucleotide sequences are expressed 5’ to 3’ and protein sequences are expressed N to C terminus. The encoding element can optionally be used to specify the encoding used for the sequence literal. The encoding can be important in disambiguating sequences that share alphabets (for example, ATG might represent a translation start codon in DNA, but it could also represent a peptide containing 3 amino acids).

The code element can be used to represent a sequence by reference, using an accession number that identifies a specific sequence within a repository. The code, system, and version elements of the Coding data type can be used to fully disambiguate one code from another. Note that the code element does not guarantee that the repository is publicly accessible or that the sequence referenced by the code can be retrieved, it only specifies the sequence using a code that could be exchanged. Thus, this element could be used for both a public sequence repository (e.g., GenBank) and a private database (e.g., biobank).

The resolvable element can be used to represent a sequence by reference, but it also implies that the sequence is accessible and SHOULD be resolvable (although a security layer may be present). This element makes use of the Document Reference resource, which contains the content.attachment element. The Attachment datatype can be used to represent sequences that are captured as a formatted file (using .contentType and .data) or as a URL (using .contentType and .url).

The extracted element can be used to represent a sequence that is derived from another, longer sequence. The startingMolecule element refers to the “parent” sequence, and is itself an instance of Molecular Definition (with its own representation). The coordinateInterval element specifies a precise interval on the “parent” sequence, which is to be extracted (conceptually or literally) and optionally reverse-complemented. This element provides a way to conveniently reference regions of very long molecules (e.g., chromosomes) without requiring either the “parent” or the extracted sequence to be serialized. Conceptually, this representation is the inverse operation of the concatenated representation.

The concatenated element can be used to represent a sequence that is comprised of other sequences that are concatenated together to form the intended sequence. Each sequenceElement is specified as an instance of Molecular Definition (and each has its own representation). The order of concatenation is explicitly defined using the ordinalIndex element. Conceptually, this representation is the inverse operation of the extracted representation.

The repeated element can be used to represent a sequence that is comprised of a sequence motif that is repeated a specified number of times. The sequenceMotif is an instance of Molecular Definition (and has its own representation), and copyCount specifies the number of times the motif is copied in tandem. Conceptually, this representation is a special case of the concatenated representation, where each element is an identical copy of a given motif.

The relative element can be used to represent a sequence in relation to another sequence, where the difference between the two sequences can be expressed as an ordered series of edit operations. This representation can be used to conveniently represent minor but meaningful differences between long or complex sequences (e.g., HLA alleles). Algorithmically, the relative representation defines a sequence by beginning with a startingMolecule (an instance of Molecular Definition) and performing at least one edit operation on it. Each edit operation is performed in order and includes replacing the sequence (the replacedMolecule) at a defined coordinateInterval with the sequence specified by the replacementMolecule. The resulting sequence after all edits have been performed is the sequence referenced by this representation element.

Note that the edits specified in this representation are operations and NOT variations. Variations are defined as a specific comparison between two states (a reference and an alternative), and while they are sometimes called “changes” and therefore they might be confused for edit operations, they are semantically distinct concepts.

Since the derived representations (extracted, concatenated, repeated, and relative) each reference Molecular Definition, representations can be combined to support complex use cases. For example:

  • An extracted representation can use as its startingMolecule a chromosome sequence that is specified using an accession number (represented as a code).
  • A repeated representation can define the sequenceMotif using a literal.
  • A concatenated representation for an assembled contig can include each sequenceElement as an attached, formatted file via resolvable.
  • A relative representation can specify the startingMolecule using a code, and the replacementMolecule for each edit could be defined using a literal.

It is possible to create arbitrarily deep structures using derived representations, and while there might be rationale for doing so implementations should avoid overly-complex representation structures.

Every representation, regardless of its complexity, can be resolved to a literal. Two instances of MolecularDefinition are considered equivalent if they define the same entity. For molecular sequences, this means that for two instances of MolecularDefinition to be equivalent they must resolve to the same literal sequence. Two instances are identical if their serializations are identical: they must contain the same elements, and each corresponding element must have the same value.

The Molecular Definition resource supports several profiles that represent molecular concepts:

  • Sequence: a primary sequence
  • Allele: a Sequence at a Location on a larger, contextual Sequence
  • Variation: a defined comparison between a specified reference Allele and an alternative Allele, both at a given Location on a larger, contextual Sequence

In addition, profiles have been drafted to represent the concepts of Haplotype and Genotype, although they have not been exercised as deeply as the profiles listed above. Finally, preliminary work has demonstrated that the Molecular Definition resource could be used to represent concepts related to structural variation, including Adjacency and Fusion. It is anticipated that profiles to support these concepts will be developed over time.

The MolecularDefinition resource is an abstract resource that provides building blocks for creating semantically robust, computable structures that define molecular entities. The two most complex backbone elements, location and representation, support the concept of molecular sequences but they might not be relevant to other types of entities. Conversely, other entities may require different backbone elements. As such, it is expected that these high-level backbone elements will serve as modular schemas that can be profiled as needed for a given molecular entity. Profiling could include constraints on cardinality (e.g., the Sequence profile has 0..0 location, while Allele has 1..1 location) and slicing.

The representation backbone element provides a series of methods for specifying the value of a sequence. As a result, the entire structure can be used any time a sequence is referenced, and this is accomplished by slicing. For example, the current sequence-based profiles of MolecularDefinition slice the representation element as follows:

Profile Cardinality Focus (slice) Semantic meaning
Sequence 1..1 Primary Sequence The primary sequence of the molecule
Allele 1..1 Allele The sequence of the Allele at the specified Location
Allele 0..1 Context The sequence of the contextual sequence at the specified Location
Variation 1..1 Reference The sequence defined as the reference allele (at the specified Location)
Variation 1..1 Alternate The sequence defined as the alternate allele (at the specified Location)
Variation 0..1 Context The sequence of the contextual sequence at the specified Location

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
identifier token The unique identity for a particular sequence MolecularDefinition.identifier
member_state reference Reference to the state of the molecular member MolecularDefinition.memberState
(MolecularDefinition)
molecule_type token Amino Acid Sequence/ DNA Sequence / RNA Sequence MolecularDefinition.moleculeType
topology token The structural topology of the molecular entity (e.g., linear, circular) MolecularDefinition.topology
type token Classification of the molecule into types other than those defined by moleculeType MolecularDefinition.type