R6 Ballot (2nd Draft)

Publish-box (todo)

10.8 Resource MolecularDefinition - Content

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

Representation of a molecular definition.

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 MoleculerDefinition resource is designed for representing genetic molecules (e.g., sequence). It can represent the genetic molecules in different ways, allowing implementations to adopt the most effective ones for their use cases.

The MoleculerDefinition resource is designed to represent a single sequence or a composite of genetic sequences (e.g., haplotype). Each genetic molecule might have multiple representations, but implementers SHALL ensure all representations are for the same molecule. This means that if a single MoleculerDefinition instance contains a literal, two formatted files, and a relative, all four of those representations must represent the same genetic molecule (e.g.,sequence). This can be a challenge across systems, as semantic equivalency of sequences cannot be guaranteed unless there is an agreed upon standard between sending and receiving systems.

The MoleculerDefinition resource should only be used to capture molecular representations of genetic concepts such as sequence, allele, and haplotype. It will not be used for observational data related to specific patient. Those concepts will be captured in Observation profiles found in the Genomics Reporting Implementation Guide icon. The molecule that was observed and that led to the identification of those concepts can be delivered with this resource, and will be referenced by those observations.

MoleculerDefinition will not be used to capture data such as precise read of DNA sequences and sequence alignment are not included; such data may be accessible through references to GA4GH icon (Global Alliance for Genomics and Health) API, and may be referenced to by the literal element.

  • Resource References: itself

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MolecularDefinition TU DomainResource Representation of a molecular definition

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Unique ID for this particular resource

... type Σ 0..1 code aa | dna | rna
Binding: sequence Type (Required)
... location Σ 0..* BackboneElement Location of this molecule

.... sequenceLocation Σ 0..1 BackboneElement Location of this molecule in context of a sequence
..... sequenceContext Σ 1..1 Reference(MolecularDefinition) Reference sequence
..... coordinateInterval Σ 0..1 BackboneElement Coordinate Interval for this location
...... numberingSystem Σ 0..1 CodeableConcept Coordinate System
...... start[x] Σ 0..1 Start
....... startQuantity Quantity
....... startRange Range
...... end[x] Σ 0..1 End
....... endQuantity Quantity
....... endRange Range
..... strand 0..1 CodeableConcept Forward or Reverse
.... cytobandLocation Σ 0..1 BackboneElement Location of this molecule in context of a cytoband
..... 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 assemble 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..* BackboneElement Location in context of a feature

..... geneId Σ 0..* CodeableConcept Gene Id

... representation Σ 0..* BackboneElement Representation

.... focus Σ 0..1 CodeableConcept The focus of the representation
.... code Σ 0..* CodeableConcept A code of the representation

.... literal Σ 0..1 BackboneElement A literal representation
..... encoding Σ 0..1 CodeableConcept The encoding used for the expression of the primary sequence
..... value Σ 1..1 string The primary (linear) sequence, expressed as a literal string
.... resolvable Σ 0..1 Attachment A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself
.... extracted Σ 0..1 BackboneElement A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
..... start Σ 1..1 integer The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
..... end Σ 1..1 integer The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
..... coordinateSystem Σ 1..1 CodeableConcept The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based
..... reverseComplement Σ 0..1 boolean A flag that indicates whether the extracted sequence should be reverse complemented
.... repeated Σ 0..1 BackboneElement A Molecular Sequence that is represented as a repeated sequence motif
..... sequenceMotif Σ 1..1 Reference(MolecularDefinition) The sequence that defines the repeated motif
..... copyCount Σ 1..1 integer The number of repeats (copies) of the sequence motif
.... concatenated Σ 0..1 BackboneElement A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
..... sequenceElement Σ 1..* BackboneElement One element of a concatenated Molecular Sequence

...... sequence Σ 1..1 Reference(MolecularDefinition) The Molecular Sequence corresponding to this element
...... ordinalIndex Σ 1..1 integer The ordinal position of this sequence element within the concatenated Molecular Sequence
.... relative Σ 0..1 BackboneElement A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the starting sequence, on which edits will be applied
..... edit Σ 0..* BackboneElement An edit (change) made to a sequence

...... editOrder 0..1 integer The order of this edit, relative to other edits on the starting sequence
...... coordinateSystem Σ 1..1 CodeableConcept The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based
Binding: LL5323-2 icon (Extensible)
...... start Σ 1..1 integer The start coordinate of the interval that will be edited
...... end Σ 1..1 integer The end coordinate of the interval that will be edited
...... replacementMolecule Σ 1..1 Reference(MolecularDefinition) The sequence that defines the replacement sequence used in the edit operation
...... replacedMolecule Σ 0..1 Reference(MolecularDefinition) The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

MolecularDefinition (DomainResource)A unique identifier for this particular resource instanceidentifier : Identifier [0..*]The type of the Molecular Definition (Amino Acid, DNA, RNA)type : code [0..1] « null (Strength=Required)SequenceType! »A member or part of this moleculememberState : Reference [0..*] « MolecularDefinition »LocationSequenceLocationThe reference Sequence that contains this locationsequenceContext : Reference [1..1] « MolecularDefinition »The identification of the strand direction, i.e, forward vs reverse strandstrand : CodeableConcept [0..1]CoordinateIntervalThe coordinate system of this intervalnumberingSystem : CodeableConcept [0..1]The start of this intervalstart[x] : DataType [0..1] « Quantity|Range »The end of this intervalend[x] : DataType [0..1] « Quantity|Range »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 assembledescription[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 »FeatureLocationThe gene Id where this molecule occursgeneId : CodeableConcept [0..*]RepresentationA representation focus, e.g., reference or alternative statefocus : CodeableConcept [0..1]A representation codecode : CodeableConcept [0..*]A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself. The sequence may be provided inline as an attached document or through a resolvable URIresolvable : Attachment [0..1]LiteralThe encoding used for the expression of the primary sequence. This defines the characters that may be used in the primary sequence and it permits the explicit inclusion/exclusion of IUPAC ambiguity codesencoding : CodeableConcept [0..1]The primary (linear) sequence, expressed as a literal stringvalue : string [1..1]ExtractedThe Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extractedstartingMolecule : Reference [1..1] « MolecularDefinition »The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extractedstart : integer [1..1]The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extractedend : integer [1..1]The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-basedcoordinateSystem : CodeableConcept [1..1]A flag that indicates whether the extracted sequence should be reverse complementedreverseComplement : boolean [0..1]RepeatedThe sequence that defines the repeated motifsequenceMotif : Reference [1..1] « MolecularDefinition »The number of repeats (copies) of the sequence motifcopyCount : integer [1..1]ConcatenatedSequenceElementThe Molecular Sequence corresponding to this elementsequence : Reference [1..1] « MolecularDefinition »The ordinal position of this sequence element within the concatenated Molecular SequenceordinalIndex : integer [1..1]RelativeThe Molecular Sequence that serves as the starting sequence, on which edits will be appliedstartingMolecule : Reference [1..1] « MolecularDefinition »EditThe order of this edit, relative to other edits on the starting sequenceeditOrder : integer [0..1]The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-basedcoordinateSystem : CodeableConcept [1..1] « null (Strength=Extensible)LL5323-2+ »The start coordinate of the interval that will be editedstart : integer [1..1]The end coordinate of the interval that will be editedend : integer [1..1]The sequence that defines the replacement sequence used in the edit operationreplacementMolecule : Reference [1..1] « MolecularDefinition »The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the editreplacedMolecule : Reference [0..1] « MolecularDefinition »The coordinate interval for this locationcoordinateInterval[0..1]The Location of this molecule in context of a sequencesequenceLocation[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]The location of this molecule in context of a cytobandcytobandLocation[0..1]The location of this molecule in context of a featurefeatureLocation[0..*]The molecular location of this moleculelocation[0..*]A literal representationliteral[0..1]A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequenceextracted[0..1]A Molecular Sequence that is represented as a repeated sequence motifrepeated[0..1]One element of a concatenated Molecular SequencesequenceElement[1..*]A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequencesconcatenated[0..1]An edit (change) made to a sequenceedit[0..*]A Molecular Definition that is represented as an ordered series of edits on a specified starting sequencerelative[0..1]The representation of this molecular definition, e.g., as a literal or repeated elementsrepresentation[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 for this particular resource --></identifier>
 <type value="[code]"/><!-- 0..1 aa | dna | rna -->
 <location>  <!-- 0..* Location of this molecule -->
  <sequenceLocation>  <!-- 0..1 Location of this molecule in context of a sequence -->
   <sequenceContext><!-- 1..1 Reference(MolecularDefinition) Reference sequence --></sequenceContext>
   <coordinateInterval>  <!-- 0..1 Coordinate Interval for this location -->
    <numberingSystem><!-- 0..1 CodeableConcept Coordinate System --></numberingSystem>
    <start[x]><!-- 0..1 Quantity|Range Start --></start[x]>
    <end[x]><!-- 0..1 Quantity|Range End --></end[x]>
   </coordinateInterval>
   <strand><!-- 0..1 CodeableConcept Forward or Reverse --></strand>
  </sequenceLocation>
  <cytobandLocation>  <!-- 0..1 Location of this molecule in context of a cytoband -->
   <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 assemble 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>  <!-- 0..* Location in context of a feature -->
   <geneId><!-- 0..* CodeableConcept Gene Id --></geneId>
  </featureLocation>
 </location>
 <memberState><!-- 0..* Reference(MolecularDefinition) Member --></memberState>
 <representation>  <!-- 0..* Representation -->
  <focus><!-- 0..1 CodeableConcept The focus of the representation --></focus>
  <code><!-- 0..* CodeableConcept A code of the representation --></code>
  <literal>  <!-- 0..1 A literal representation -->
   <encoding><!-- 0..1 CodeableConcept The encoding used for the expression of the primary sequence --></encoding>
   <value value="[string]"/><!-- 1..1 The primary (linear) sequence, expressed as a literal string -->
  </literal>
  <resolvable><!-- 0..1 Attachment A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself --></resolvable>
  <extracted>  <!-- 0..1 A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted --></startingMolecule>
   <start value="[integer]"/><!-- 1..1 The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted -->
   <end value="[integer]"/><!-- 1..1 The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted -->
   <coordinateSystem><!-- 1..1 CodeableConcept The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based --></coordinateSystem>
   <reverseComplement value="[boolean]"/><!-- 0..1 A flag that indicates whether the extracted sequence should be reverse complemented -->
  </extracted>
  <repeated>  <!-- 0..1 A Molecular Sequence that is represented as a repeated sequence motif -->
   <sequenceMotif><!-- 1..1 Reference(MolecularDefinition) The sequence that defines the repeated motif --></sequenceMotif>
   <copyCount value="[integer]"/><!-- 1..1 The number of repeats (copies) of the sequence motif -->
  </repeated>
  <concatenated>  <!-- 0..1 A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences -->
   <sequenceElement>  <!-- 1..* One element of a concatenated Molecular Sequence -->
    <sequence><!-- 1..1 Reference(MolecularDefinition) The Molecular Sequence corresponding to this element --></sequence>
    <ordinalIndex value="[integer]"/><!-- 1..1 The ordinal position of this sequence element within the concatenated Molecular Sequence -->
   </sequenceElement>
  </concatenated>
  <relative>  <!-- 0..1 A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the starting sequence, on which edits will be applied --></startingMolecule>
   <edit>  <!-- 0..* An edit (change) made to a sequence -->
    <editOrder value="[integer]"/><!-- 0..1 The order of this edit, relative to other edits on the starting sequence -->
    <coordinateSystem><!-- 1..1 CodeableConcept The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based icon --></coordinateSystem>
    <start value="[integer]"/><!-- 1..1 The start coordinate of the interval that will be edited -->
    <end value="[integer]"/><!-- 1..1 The end coordinate of the interval that will be edited -->
    <replacementMolecule><!-- 1..1 Reference(MolecularDefinition) The sequence that defines the replacement sequence used in the edit operation --></replacementMolecule>
    <replacedMolecule><!-- 0..1 Reference(MolecularDefinition) The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit --></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 for this particular resource
  "type" : "<code>", // aa | dna | rna
  "location" : [{ // Location of this molecule
    "sequenceLocation" : { // Location of this molecule in context of a sequence
      "sequenceContext" : { Reference(MolecularDefinition) }, // R!  Reference sequence
      "coordinateInterval" : { // Coordinate Interval for this location
        "numberingSystem" : { CodeableConcept }, // Coordinate System
        // start[x]: Start. One of these 2:
        "startQuantity" : { Quantity },
        "startRange" : { Range },
        // end[x]: End. One of these 2:
        "endQuantity" : { Quantity },
        "endRange" : { Range }
      },
      "strand" : { CodeableConcept } // Forward or Reverse
    },
    "cytobandLocation" : { // Location of this molecule in context of a cytoband
      "genomeAssembly" : { // R!  Reference Genome
        "organism" : { CodeableConcept }, // Species of the organism
        "build" : { CodeableConcept }, // Build number
        "accession" : { CodeableConcept }, // Accession
        // description[x]: Genome assemble 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" : [{ // Location in context of a feature
      "geneId" : [{ CodeableConcept }] // Gene Id
    }]
  }],
  "memberState" : [{ Reference(MolecularDefinition) }], // Member
  "representation" : [{ // Representation
    "focus" : { CodeableConcept }, // The focus of the representation
    "code" : [{ CodeableConcept }], // A code of the representation
    "literal" : { // A literal representation
      "encoding" : { CodeableConcept }, // The encoding used for the expression of the primary sequence
      "value" : "<string>" // R!  The primary (linear) sequence, expressed as a literal string
    },
    "resolvable" : { Attachment }, // A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself
    "extracted" : { // A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
      "start" : <integer>, // R!  The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      "end" : <integer>, // R!  The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      "coordinateSystem" : { CodeableConcept }, // R!  The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based
      "reverseComplement" : <boolean> // A flag that indicates whether the extracted sequence should be reverse complemented
    },
    "repeated" : { // A Molecular Sequence that is represented as a repeated sequence motif
      "sequenceMotif" : { Reference(MolecularDefinition) }, // R!  The sequence that defines the repeated motif
      "copyCount" : <integer> // R!  The number of repeats (copies) of the sequence motif
    },
    "concatenated" : { // A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
      "sequenceElement" : [{ // R!  One element of a concatenated Molecular Sequence
        "sequence" : { Reference(MolecularDefinition) }, // R!  The Molecular Sequence corresponding to this element
        "ordinalIndex" : <integer> // R!  The ordinal position of this sequence element within the concatenated Molecular Sequence
      }]
    },
    "relative" : { // A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The Molecular Sequence that serves as the starting sequence, on which edits will be applied
      "edit" : [{ // An edit (change) made to a sequence
        "editOrder" : <integer>, // The order of this edit, relative to other edits on the starting sequence
        "coordinateSystem" : { CodeableConcept }, // R!  The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based icon
        "start" : <integer>, // R!  The start coordinate of the interval that will be edited
        "end" : <integer>, // R!  The end coordinate of the interval that will be edited
        "replacementMolecule" : { Reference(MolecularDefinition) }, // R!  The sequence that defines the replacement sequence used in the edit operation
        "replacedMolecule" : { Reference(MolecularDefinition) } // The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit
      }]
    }
  }]
}

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 for this particular resource
  fhir:type [ code ] ; # 0..1 aa | dna | rna
  fhir:location ( [ # 0..* Location of this molecule
    fhir:sequenceLocation [ # 0..1 Location of this molecule in context of a sequence
      fhir:sequenceContext [ Reference(MolecularDefinition) ] ; # 1..1 Reference sequence
      fhir:coordinateInterval [ # 0..1 Coordinate Interval for this location
        fhir:numberingSystem [ CodeableConcept ] ; # 0..1 Coordinate System
        # start[x] : 0..1 Start. One of these 2
          fhir:start [  a fhir:Quantity ; Quantity ]
          fhir:start [  a fhir:Range ; Range ]
        # end[x] : 0..1 End. One of these 2
          fhir:end [  a fhir:Quantity ; Quantity ]
          fhir:end [  a fhir:Range ; Range ]
      ] ;
      fhir:strand [ CodeableConcept ] ; # 0..1 Forward or Reverse
    ] ;
    fhir:cytobandLocation [ # 0..1 Location of this molecule in context of a cytoband
      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 assemble 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 ( [ # 0..* Location in context of a feature
      fhir:geneId  ( [ CodeableConcept ] ... ) ; # 0..* Gene Id
    ] ... ) ;
  ] ... ) ;
  fhir:memberState  ( [ Reference(MolecularDefinition) ] ... ) ; # 0..* Member
  fhir:representation ( [ # 0..* Representation
    fhir:focus [ CodeableConcept ] ; # 0..1 The focus of the representation
    fhir:code  ( [ CodeableConcept ] ... ) ; # 0..* A code of the representation
    fhir:literal [ # 0..1 A literal representation
      fhir:encoding [ CodeableConcept ] ; # 0..1 The encoding used for the expression of the primary sequence
      fhir:value [ string ] ; # 1..1 The primary (linear) sequence, expressed as a literal string
    ] ;
    fhir:resolvable [ Attachment ] ; # 0..1 A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself
    fhir:extracted [ # 0..1 A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
      fhir:start [ integer ] ; # 1..1 The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      fhir:end [ integer ] ; # 1..1 The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      fhir:coordinateSystem [ CodeableConcept ] ; # 1..1 The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based
      fhir:reverseComplement [ boolean ] ; # 0..1 A flag that indicates whether the extracted sequence should be reverse complemented
    ] ;
    fhir:repeated [ # 0..1 A Molecular Sequence that is represented as a repeated sequence motif
      fhir:sequenceMotif [ Reference(MolecularDefinition) ] ; # 1..1 The sequence that defines the repeated motif
      fhir:copyCount [ integer ] ; # 1..1 The number of repeats (copies) of the sequence motif
    ] ;
    fhir:concatenated [ # 0..1 A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
      fhir:sequenceElement ( [ # 1..* One element of a concatenated Molecular Sequence
        fhir:sequence [ Reference(MolecularDefinition) ] ; # 1..1 The Molecular Sequence corresponding to this element
        fhir:ordinalIndex [ integer ] ; # 1..1 The ordinal position of this sequence element within the concatenated Molecular Sequence
      ] ... ) ;
    ] ;
    fhir:relative [ # 0..1 A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The Molecular Sequence that serves as the starting sequence, on which edits will be applied
      fhir:edit ( [ # 0..* An edit (change) made to a sequence
        fhir:editOrder [ integer ] ; # 0..1 The order of this edit, relative to other edits on the starting sequence
        fhir:coordinateSystem [ CodeableConcept ] ; # 1..1 The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based
        fhir:start [ integer ] ; # 1..1 The start coordinate of the interval that will be edited
        fhir:end [ integer ] ; # 1..1 The end coordinate of the interval that will be edited
        fhir:replacementMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The sequence that defines the replacement sequence used in the edit operation
        fhir:replacedMolecule [ Reference(MolecularDefinition) ] ; # 0..1 The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit
      ] ... ) ;
    ] ;
  ] ... ) ;
]

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 Representation of a molecular definition

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ 0..* Identifier Unique ID for this particular resource

... type Σ 0..1 code aa | dna | rna
Binding: sequence Type (Required)
... location Σ 0..* BackboneElement Location of this molecule

.... sequenceLocation Σ 0..1 BackboneElement Location of this molecule in context of a sequence
..... sequenceContext Σ 1..1 Reference(MolecularDefinition) Reference sequence
..... coordinateInterval Σ 0..1 BackboneElement Coordinate Interval for this location
...... numberingSystem Σ 0..1 CodeableConcept Coordinate System
...... start[x] Σ 0..1 Start
....... startQuantity Quantity
....... startRange Range
...... end[x] Σ 0..1 End
....... endQuantity Quantity
....... endRange Range
..... strand 0..1 CodeableConcept Forward or Reverse
.... cytobandLocation Σ 0..1 BackboneElement Location of this molecule in context of a cytoband
..... 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 assemble 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..* BackboneElement Location in context of a feature

..... geneId Σ 0..* CodeableConcept Gene Id

... representation Σ 0..* BackboneElement Representation

.... focus Σ 0..1 CodeableConcept The focus of the representation
.... code Σ 0..* CodeableConcept A code of the representation

.... literal Σ 0..1 BackboneElement A literal representation
..... encoding Σ 0..1 CodeableConcept The encoding used for the expression of the primary sequence
..... value Σ 1..1 string The primary (linear) sequence, expressed as a literal string
.... resolvable Σ 0..1 Attachment A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself
.... extracted Σ 0..1 BackboneElement A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
..... start Σ 1..1 integer The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
..... end Σ 1..1 integer The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
..... coordinateSystem Σ 1..1 CodeableConcept The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based
..... reverseComplement Σ 0..1 boolean A flag that indicates whether the extracted sequence should be reverse complemented
.... repeated Σ 0..1 BackboneElement A Molecular Sequence that is represented as a repeated sequence motif
..... sequenceMotif Σ 1..1 Reference(MolecularDefinition) The sequence that defines the repeated motif
..... copyCount Σ 1..1 integer The number of repeats (copies) of the sequence motif
.... concatenated Σ 0..1 BackboneElement A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
..... sequenceElement Σ 1..* BackboneElement One element of a concatenated Molecular Sequence

...... sequence Σ 1..1 Reference(MolecularDefinition) The Molecular Sequence corresponding to this element
...... ordinalIndex Σ 1..1 integer The ordinal position of this sequence element within the concatenated Molecular Sequence
.... relative Σ 0..1 BackboneElement A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
..... startingMolecule Σ 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the starting sequence, on which edits will be applied
..... edit Σ 0..* BackboneElement An edit (change) made to a sequence

...... editOrder 0..1 integer The order of this edit, relative to other edits on the starting sequence
...... coordinateSystem Σ 1..1 CodeableConcept The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based
Binding: LL5323-2 icon (Extensible)
...... start Σ 1..1 integer The start coordinate of the interval that will be edited
...... end Σ 1..1 integer The end coordinate of the interval that will be edited
...... replacementMolecule Σ 1..1 Reference(MolecularDefinition) The sequence that defines the replacement sequence used in the edit operation
...... replacedMolecule Σ 0..1 Reference(MolecularDefinition) The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

MolecularDefinition (DomainResource)A unique identifier for this particular resource instanceidentifier : Identifier [0..*]The type of the Molecular Definition (Amino Acid, DNA, RNA)type : code [0..1] « null (Strength=Required)SequenceType! »A member or part of this moleculememberState : Reference [0..*] « MolecularDefinition »LocationSequenceLocationThe reference Sequence that contains this locationsequenceContext : Reference [1..1] « MolecularDefinition »The identification of the strand direction, i.e, forward vs reverse strandstrand : CodeableConcept [0..1]CoordinateIntervalThe coordinate system of this intervalnumberingSystem : CodeableConcept [0..1]The start of this intervalstart[x] : DataType [0..1] « Quantity|Range »The end of this intervalend[x] : DataType [0..1] « Quantity|Range »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 assembledescription[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 »FeatureLocationThe gene Id where this molecule occursgeneId : CodeableConcept [0..*]RepresentationA representation focus, e.g., reference or alternative statefocus : CodeableConcept [0..1]A representation codecode : CodeableConcept [0..*]A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself. The sequence may be provided inline as an attached document or through a resolvable URIresolvable : Attachment [0..1]LiteralThe encoding used for the expression of the primary sequence. This defines the characters that may be used in the primary sequence and it permits the explicit inclusion/exclusion of IUPAC ambiguity codesencoding : CodeableConcept [0..1]The primary (linear) sequence, expressed as a literal stringvalue : string [1..1]ExtractedThe Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extractedstartingMolecule : Reference [1..1] « MolecularDefinition »The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extractedstart : integer [1..1]The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extractedend : integer [1..1]The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-basedcoordinateSystem : CodeableConcept [1..1]A flag that indicates whether the extracted sequence should be reverse complementedreverseComplement : boolean [0..1]RepeatedThe sequence that defines the repeated motifsequenceMotif : Reference [1..1] « MolecularDefinition »The number of repeats (copies) of the sequence motifcopyCount : integer [1..1]ConcatenatedSequenceElementThe Molecular Sequence corresponding to this elementsequence : Reference [1..1] « MolecularDefinition »The ordinal position of this sequence element within the concatenated Molecular SequenceordinalIndex : integer [1..1]RelativeThe Molecular Sequence that serves as the starting sequence, on which edits will be appliedstartingMolecule : Reference [1..1] « MolecularDefinition »EditThe order of this edit, relative to other edits on the starting sequenceeditOrder : integer [0..1]The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-basedcoordinateSystem : CodeableConcept [1..1] « null (Strength=Extensible)LL5323-2+ »The start coordinate of the interval that will be editedstart : integer [1..1]The end coordinate of the interval that will be editedend : integer [1..1]The sequence that defines the replacement sequence used in the edit operationreplacementMolecule : Reference [1..1] « MolecularDefinition »The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the editreplacedMolecule : Reference [0..1] « MolecularDefinition »The coordinate interval for this locationcoordinateInterval[0..1]The Location of this molecule in context of a sequencesequenceLocation[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]The location of this molecule in context of a cytobandcytobandLocation[0..1]The location of this molecule in context of a featurefeatureLocation[0..*]The molecular location of this moleculelocation[0..*]A literal representationliteral[0..1]A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequenceextracted[0..1]A Molecular Sequence that is represented as a repeated sequence motifrepeated[0..1]One element of a concatenated Molecular SequencesequenceElement[1..*]A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequencesconcatenated[0..1]An edit (change) made to a sequenceedit[0..*]A Molecular Definition that is represented as an ordered series of edits on a specified starting sequencerelative[0..1]The representation of this molecular definition, e.g., as a literal or repeated elementsrepresentation[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 for this particular resource --></identifier>
 <type value="[code]"/><!-- 0..1 aa | dna | rna -->
 <location>  <!-- 0..* Location of this molecule -->
  <sequenceLocation>  <!-- 0..1 Location of this molecule in context of a sequence -->
   <sequenceContext><!-- 1..1 Reference(MolecularDefinition) Reference sequence --></sequenceContext>
   <coordinateInterval>  <!-- 0..1 Coordinate Interval for this location -->
    <numberingSystem><!-- 0..1 CodeableConcept Coordinate System --></numberingSystem>
    <start[x]><!-- 0..1 Quantity|Range Start --></start[x]>
    <end[x]><!-- 0..1 Quantity|Range End --></end[x]>
   </coordinateInterval>
   <strand><!-- 0..1 CodeableConcept Forward or Reverse --></strand>
  </sequenceLocation>
  <cytobandLocation>  <!-- 0..1 Location of this molecule in context of a cytoband -->
   <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 assemble 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>  <!-- 0..* Location in context of a feature -->
   <geneId><!-- 0..* CodeableConcept Gene Id --></geneId>
  </featureLocation>
 </location>
 <memberState><!-- 0..* Reference(MolecularDefinition) Member --></memberState>
 <representation>  <!-- 0..* Representation -->
  <focus><!-- 0..1 CodeableConcept The focus of the representation --></focus>
  <code><!-- 0..* CodeableConcept A code of the representation --></code>
  <literal>  <!-- 0..1 A literal representation -->
   <encoding><!-- 0..1 CodeableConcept The encoding used for the expression of the primary sequence --></encoding>
   <value value="[string]"/><!-- 1..1 The primary (linear) sequence, expressed as a literal string -->
  </literal>
  <resolvable><!-- 0..1 Attachment A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself --></resolvable>
  <extracted>  <!-- 0..1 A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted --></startingMolecule>
   <start value="[integer]"/><!-- 1..1 The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted -->
   <end value="[integer]"/><!-- 1..1 The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted -->
   <coordinateSystem><!-- 1..1 CodeableConcept The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based --></coordinateSystem>
   <reverseComplement value="[boolean]"/><!-- 0..1 A flag that indicates whether the extracted sequence should be reverse complemented -->
  </extracted>
  <repeated>  <!-- 0..1 A Molecular Sequence that is represented as a repeated sequence motif -->
   <sequenceMotif><!-- 1..1 Reference(MolecularDefinition) The sequence that defines the repeated motif --></sequenceMotif>
   <copyCount value="[integer]"/><!-- 1..1 The number of repeats (copies) of the sequence motif -->
  </repeated>
  <concatenated>  <!-- 0..1 A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences -->
   <sequenceElement>  <!-- 1..* One element of a concatenated Molecular Sequence -->
    <sequence><!-- 1..1 Reference(MolecularDefinition) The Molecular Sequence corresponding to this element --></sequence>
    <ordinalIndex value="[integer]"/><!-- 1..1 The ordinal position of this sequence element within the concatenated Molecular Sequence -->
   </sequenceElement>
  </concatenated>
  <relative>  <!-- 0..1 A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence -->
   <startingMolecule><!-- 1..1 Reference(MolecularDefinition) The Molecular Sequence that serves as the starting sequence, on which edits will be applied --></startingMolecule>
   <edit>  <!-- 0..* An edit (change) made to a sequence -->
    <editOrder value="[integer]"/><!-- 0..1 The order of this edit, relative to other edits on the starting sequence -->
    <coordinateSystem><!-- 1..1 CodeableConcept The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based icon --></coordinateSystem>
    <start value="[integer]"/><!-- 1..1 The start coordinate of the interval that will be edited -->
    <end value="[integer]"/><!-- 1..1 The end coordinate of the interval that will be edited -->
    <replacementMolecule><!-- 1..1 Reference(MolecularDefinition) The sequence that defines the replacement sequence used in the edit operation --></replacementMolecule>
    <replacedMolecule><!-- 0..1 Reference(MolecularDefinition) The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit --></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 for this particular resource
  "type" : "<code>", // aa | dna | rna
  "location" : [{ // Location of this molecule
    "sequenceLocation" : { // Location of this molecule in context of a sequence
      "sequenceContext" : { Reference(MolecularDefinition) }, // R!  Reference sequence
      "coordinateInterval" : { // Coordinate Interval for this location
        "numberingSystem" : { CodeableConcept }, // Coordinate System
        // start[x]: Start. One of these 2:
        "startQuantity" : { Quantity },
        "startRange" : { Range },
        // end[x]: End. One of these 2:
        "endQuantity" : { Quantity },
        "endRange" : { Range }
      },
      "strand" : { CodeableConcept } // Forward or Reverse
    },
    "cytobandLocation" : { // Location of this molecule in context of a cytoband
      "genomeAssembly" : { // R!  Reference Genome
        "organism" : { CodeableConcept }, // Species of the organism
        "build" : { CodeableConcept }, // Build number
        "accession" : { CodeableConcept }, // Accession
        // description[x]: Genome assemble 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" : [{ // Location in context of a feature
      "geneId" : [{ CodeableConcept }] // Gene Id
    }]
  }],
  "memberState" : [{ Reference(MolecularDefinition) }], // Member
  "representation" : [{ // Representation
    "focus" : { CodeableConcept }, // The focus of the representation
    "code" : [{ CodeableConcept }], // A code of the representation
    "literal" : { // A literal representation
      "encoding" : { CodeableConcept }, // The encoding used for the expression of the primary sequence
      "value" : "<string>" // R!  The primary (linear) sequence, expressed as a literal string
    },
    "resolvable" : { Attachment }, // A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself
    "extracted" : { // A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
      "start" : <integer>, // R!  The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      "end" : <integer>, // R!  The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      "coordinateSystem" : { CodeableConcept }, // R!  The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based
      "reverseComplement" : <boolean> // A flag that indicates whether the extracted sequence should be reverse complemented
    },
    "repeated" : { // A Molecular Sequence that is represented as a repeated sequence motif
      "sequenceMotif" : { Reference(MolecularDefinition) }, // R!  The sequence that defines the repeated motif
      "copyCount" : <integer> // R!  The number of repeats (copies) of the sequence motif
    },
    "concatenated" : { // A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
      "sequenceElement" : [{ // R!  One element of a concatenated Molecular Sequence
        "sequence" : { Reference(MolecularDefinition) }, // R!  The Molecular Sequence corresponding to this element
        "ordinalIndex" : <integer> // R!  The ordinal position of this sequence element within the concatenated Molecular Sequence
      }]
    },
    "relative" : { // A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
      "startingMolecule" : { Reference(MolecularDefinition) }, // R!  The Molecular Sequence that serves as the starting sequence, on which edits will be applied
      "edit" : [{ // An edit (change) made to a sequence
        "editOrder" : <integer>, // The order of this edit, relative to other edits on the starting sequence
        "coordinateSystem" : { CodeableConcept }, // R!  The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based icon
        "start" : <integer>, // R!  The start coordinate of the interval that will be edited
        "end" : <integer>, // R!  The end coordinate of the interval that will be edited
        "replacementMolecule" : { Reference(MolecularDefinition) }, // R!  The sequence that defines the replacement sequence used in the edit operation
        "replacedMolecule" : { Reference(MolecularDefinition) } // The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit
      }]
    }
  }]
}

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 for this particular resource
  fhir:type [ code ] ; # 0..1 aa | dna | rna
  fhir:location ( [ # 0..* Location of this molecule
    fhir:sequenceLocation [ # 0..1 Location of this molecule in context of a sequence
      fhir:sequenceContext [ Reference(MolecularDefinition) ] ; # 1..1 Reference sequence
      fhir:coordinateInterval [ # 0..1 Coordinate Interval for this location
        fhir:numberingSystem [ CodeableConcept ] ; # 0..1 Coordinate System
        # start[x] : 0..1 Start. One of these 2
          fhir:start [  a fhir:Quantity ; Quantity ]
          fhir:start [  a fhir:Range ; Range ]
        # end[x] : 0..1 End. One of these 2
          fhir:end [  a fhir:Quantity ; Quantity ]
          fhir:end [  a fhir:Range ; Range ]
      ] ;
      fhir:strand [ CodeableConcept ] ; # 0..1 Forward or Reverse
    ] ;
    fhir:cytobandLocation [ # 0..1 Location of this molecule in context of a cytoband
      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 assemble 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 ( [ # 0..* Location in context of a feature
      fhir:geneId  ( [ CodeableConcept ] ... ) ; # 0..* Gene Id
    ] ... ) ;
  ] ... ) ;
  fhir:memberState  ( [ Reference(MolecularDefinition) ] ... ) ; # 0..* Member
  fhir:representation ( [ # 0..* Representation
    fhir:focus [ CodeableConcept ] ; # 0..1 The focus of the representation
    fhir:code  ( [ CodeableConcept ] ... ) ; # 0..* A code of the representation
    fhir:literal [ # 0..1 A literal representation
      fhir:encoding [ CodeableConcept ] ; # 0..1 The encoding used for the expression of the primary sequence
      fhir:value [ string ] ; # 1..1 The primary (linear) sequence, expressed as a literal string
    ] ;
    fhir:resolvable [ Attachment ] ; # 0..1 A resolvable representation of a molecule that optionally contains formatting in addition to the specification of the primary sequence itself
    fhir:extracted [ # 0..1 A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
      fhir:start [ integer ] ; # 1..1 The start coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      fhir:end [ integer ] ; # 1..1 The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
      fhir:coordinateSystem [ CodeableConcept ] ; # 1..1 The coordinate system used to define the interval that defines the subsequence to be extracted. Coordinate systems are usually 0- or 1-based
      fhir:reverseComplement [ boolean ] ; # 0..1 A flag that indicates whether the extracted sequence should be reverse complemented
    ] ;
    fhir:repeated [ # 0..1 A Molecular Sequence that is represented as a repeated sequence motif
      fhir:sequenceMotif [ Reference(MolecularDefinition) ] ; # 1..1 The sequence that defines the repeated motif
      fhir:copyCount [ integer ] ; # 1..1 The number of repeats (copies) of the sequence motif
    ] ;
    fhir:concatenated [ # 0..1 A Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences
      fhir:sequenceElement ( [ # 1..* One element of a concatenated Molecular Sequence
        fhir:sequence [ Reference(MolecularDefinition) ] ; # 1..1 The Molecular Sequence corresponding to this element
        fhir:ordinalIndex [ integer ] ; # 1..1 The ordinal position of this sequence element within the concatenated Molecular Sequence
      ] ... ) ;
    ] ;
    fhir:relative [ # 0..1 A Molecular Definition that is represented as an ordered series of edits on a specified starting sequence
      fhir:startingMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The Molecular Sequence that serves as the starting sequence, on which edits will be applied
      fhir:edit ( [ # 0..* An edit (change) made to a sequence
        fhir:editOrder [ integer ] ; # 0..1 The order of this edit, relative to other edits on the starting sequence
        fhir:coordinateSystem [ CodeableConcept ] ; # 1..1 The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based
        fhir:start [ integer ] ; # 1..1 The start coordinate of the interval that will be edited
        fhir:end [ integer ] ; # 1..1 The end coordinate of the interval that will be edited
        fhir:replacementMolecule [ Reference(MolecularDefinition) ] ; # 1..1 The sequence that defines the replacement sequence used in the edit operation
        fhir:replacedMolecule [ Reference(MolecularDefinition) ] ; # 0..1 The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit
      ] ... ) ;
    ] ;
  ] ... ) ;
]

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.type SequenceType Required

Type if a sequence -- DNA, RNA, or amino acid sequence.

MolecularDefinition.representation.relative.edit.coordinateSystem http://loinc.org/LL5323-2/ icon Extensible

This resource supports three patterns for representing a sequence of interest:

  • By providing a literal string of IUPAC codes representing nucleotides or amino acids.
  • By linking to a formatted file or link containing the sequence information (e.g. FASTA file or GA4GH sequence repository).
  • By providing a list of edits from a starting sequence.

The MolecularSequence resource is designed to represent a single sequence in an instance. Each sequence might have multiple representations, but implementers SHALL ensure all representations are for the same sequence.

literal: This string element can be used to hold the sequence as a string of characters.

formatted: This Attachment is used to refer to the sequence as embedded file content or via a URL reference.

This method can be used to refer to sequence data from in an external source. If the sequence is referring to a GA4GH repository, the formatted.url should refer to a GA4GH compliant endpoint that conforms to GA4GH data models.

relative: This complex element is used for encoding sequence. When the information of starting sequence and edits are provided, the observed sequence will be derived. Here is a picture below:

null

relative.ordinalPosition: Indicates the order in which the sequence should be considered when putting multiple relative instances together.

relative.sequenceRange: Indicates the nucleotide range in the composed sequence when multiple relative instances are used together.

These attributes help to clarify what sequence is being represented with less computation/inference on the recipient side. Implementers SHOULD use sequenceRange first to determine order as the most reliable. If sequenceRange is not present then ordinalPosition SHOULD be used. Finally, if both sequenceRange and ordinalPosition are absent, then the order of the relative data elements SHOULD be used to calculate a composition. It is the responsibility of the data sender to ensure the message can be consistently understood. Additionally, gaps in sequenceRange are considered intentional (i.e. the composed sequence contains a sequence of N's, the placeholder nucleotide, for the gap range).

relative.startingSequence: There are four optional ways to represent a starting sequence in MolecularSequence resource:

  1. relative.startingSequence.sequenceCodeableConcept: Starting sequence id in public database;
  2. relative.startingSequence.sequenceString: Starting sequence string;
  3. relative.startingSequence.sequenceReference: Reference to starting sequence stored in another sequence entity;
  4. relative.startingSequence.genomeAssembly, relative.startingSequence.chromosome: The combination of genome assembly and chromosome.

The relative.startingSequence.windowStart and relative.startingSequence.windowEnddefines a range from the starting sequence that is used to define a subsequence used as the starting sequence.

When saving the sequence information, the nucleic acid will be numbered with order. Some representations use a 0-based system (e.g. GA4GH API, BAM files) while some use a 1-based system (e.g. VCF file format). The element coordinateSystem contains this information.

relative.coordinateSystem binds to a LOINC answer list, please review those answers here icon as well as the detailed description found here icon.

There are many considerations concerning the directionality of DNA or RNA. Here we are using relative.startingSequence.orientation and relative.startingSequence.strand. Orientation represents the sense of the sequence, which has different meanings depending on the type. Strand represents the sequence writing order. Watson strand refers to 5' to 3' top strand (5' -> 3'), whereas Crick strand refers to 5' to 3' bottom strand (3' <- 5').

Only two possible values can be made by strand, watson and crick. Since the directionality of the sequence string might be represented in different ways in different omics scenario, below are examples of how to map other expressions into its correlated value:

Watson Crick
5′-to-3′ direction 3′-to-5′ direction
+1 -1
Sense Antisense
Positive Negative

There are attributes where the sequence is represented as a string of characters.

  • relative.startingSequence.sequenceString
  • relative.edit.replacementSequence
  • relative.edit.replacedSequence
  • literal

The characters used in these string representations of a sequence should be constrained to the IUPAC codes found here https://www.bioinformatics.org/sms2/iupac.html icon.

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
type token Amino Acid Sequence/ DNA Sequence / RNA Sequence MolecularDefinition.type