Release 5 R6 Ballot (3rd Draft)

This page is part of the FHIR Specification (v5.0.0: R5 - STU v6.0.0-ballot3: Release 6 Ballot (3rd Draft) (see Ballot Notes ). This is the The current published version in it's permanent home (it will always be available at this URL). is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

10.7 Resource MolecularSequence - Content

Clinical Genomics icon Work Group Maturity Level : 1   Trial Use Security Category : Patient N/A Compartments : Patient No defined compartments

Representation of a molecular sequence.

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

The MolecularSequence resource is designed for representing molecular sequences. It can represent the sequence in different ways, allowing implementations to adopt the most effective one for their use case.

It is strongly encouraged to provide as much information in this resource for any reported sequences, because receiving systems (e.g. discovery research, outcomes analysis, and public health reporting) may use this information to normalize sequences over time or across sources. However, these data should not be used to dynamically correct/change sequence representations for clinical use outside of the laboratory, due to insufficient information.

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. This means that if a single MolecularSequence instance contains a literal , two formatted file files, and a relative , all four of those representations must represent the same 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 MolecularSequence resource should only be used to capture a molecular sequence. It will not be used for other entities such as variant, variant annotations, genotypes, haplotypes, etc. Those concepts will be captured in Observation profiles found in the Genomics Reporting Implementation Guide icon . The sequence that was observed that led to the identification of those concepts can be delivered with this resource, and will be referenced by those observations.

MolecularSequence 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 formatted file element.

Structure

sequenceString sequenceReference
Name Flags Card. Type Description & Constraints doco
. . MolecularSequence TU DomainResource Representation of a molecular sequence

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

. . . type Σ 0..1 code aa | dna | rna
Binding: sequence Type ( Required )
. . subject . literal Σ 0..1 0..* Reference ( Patient | Group | Substance | BiologicallyDerivedProduct | NutritionProduct BackboneElement ) Subject this sequence is associated too A literal representation of a Molecular Sequence

. . focus . . sequenceValue Σ 0..* 1..1 Reference ( Any string ) What the molecular sequence is about, when it is not about the subject of record The primary (linear) sequence, expressed as a literal string
. . device . relative Σ 0..1 0..* Reference ( Device BackboneElement ) The method for sequencing A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence

. . . . performer startingSequence Σ 0..1 1..1 Reference ( Organization MolecularSequence ) Who should The Molecular Sequence that serves as the starting sequence, on which edits will be responsible for test result applied
. . literal . . edit Σ 0..1 0..* string BackboneElement Sequence that was observed An edit (change) made to a sequence

. . . . formatted . editOrder Σ 0..* 0..1 Attachment integer Embedded file or a link (URL) which contains content The order of this edit, relative to represent other edits on the starting sequence
. . relative . . . coordinateSystem Σ 0..* 1..1 BackboneElement CodeableConcept A sequence defined relative The coordinate system used to another sequence define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based
Binding: LL5323-2 icon ( Extensible )
. . . . coordinateSystem . start Σ 1..1 CodeableConcept integer Ways The start coordinate of identifying nucleotides or amino acids within a sequence Binding: LL5323-2 ( Extensible ) the interval that will be edited
. . . . . ordinalPosition end Σ 0..1 1..1 integer Indicates the order in which The end coordinate of the sequence should interval that will be considered when putting multiple 'relative' elements together edited
. . . . sequenceRange . replacementSequence Σ 0..1 1..1 Range Reference ( MolecularSequence ) Indicates the nucleotide range in The sequence that defines the composed replacement sequence when multiple 'relative' elements are used together in the edit operation
. . . . startingSequence . replacedSequence Σ C 0..1 BackboneElement Reference ( MolecularSequence ) A The sequence used as starting on the 'starting' sequence + Rule: Both genomeAssembly and chromosome must for the edit operation, defined by the specified interval, that will be both contained if either one of them is contained + Rule: Have and only have one of replaced during the following elements in startingSequence: 1. genomeAssembly; 2 sequence edit
. . genomeAssembly . extracted Σ C 0..1 0..* CodeableConcept BackboneElement The genome assembly used for starting sequence, e.g. GRCh38 A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
Binding: LL1040-6 ( Extensible )
. . . chromosome . startingSequence Σ C 0..1 CodeableConcept 1..1 Chromosome Identifier Binding: LL2938-0 Reference ( Required MolecularSequence ) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
. . . sequence[x] . start Σ C 0..1 1..1 integer The reference sequence start coordinate (on the parent sequence) of the interval that represents defines the starting sequence Binding: Multiple bindings acceptable (NCBI or LRG) ( Example ) subsequence to be extracted
. . . sequenceCodeableConcept . end CodeableConcept Σ 1..1 string integer The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
Reference ( MolecularSequence )
. . . windowStart . coordinateSystem Σ 0..1 1..1 integer CodeableConcept Start position of The coordinate system used to define the window on interval that defines the starting sequence subsequence to be extracted. Coordinate systems are usually 0- or 1-based
. . . . windowEnd reverseComplement Σ 0..1 integer boolean End position of the window on A flag that indicates whether the starting extracted sequence should be reverse complemented
. . orientation . repeated Σ 0..1 0..* code BackboneElement sense | antisense A Molecular Sequence that is represented as a repeated sequence motif
Binding: orientation Type ( Required )
. . . strand . sequenceMotif Σ 0..1 1..1 code watson | crick Binding: strand Type Reference ( Required MolecularSequence ) The sequence that defines the repeated motif
. . . edit . copyCount Σ 0..* 1..1 BackboneElement integer Changes in sequence from The number of repeats (copies) of the starting sequence motif
. . start . concatenated Σ 0..1 integer BackboneElement Start position A Molecular Sequence that is represented as an ordered concatenation of the edit on the starting sequence two or more Molecular Sequences
. . . end . sequenceElement Σ 0..1 1..* integer BackboneElement End position One element of the edit on the starting sequence a concatenated Molecular Sequence

. . . . replacementSequence . sequence Σ 0..1 1..1 string Reference ( MolecularSequence ) Allele that was observed The Molecular Sequence corresponding to this element
. . . . . replacedSequence ordinalIndex Σ 0..1 1..1 string integer Allele in the starting The ordinal position of this sequence element within the concatenated Molecular Sequence

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

MolecularSequence ( DomainResource ) A unique identifier for this particular sequence instance identifier : Identifier [0..*] Amino The type of the Molecular Sequence (Amino Acid Sequence/ Sequence, DNA Sequence / Sequence, RNA Sequence Sequence) type : code [0..1] « null (Strength=Required) SequenceType ! » Indicates the subject this sequence is associated too Sequence that was observed as file content. Can be an actual file contents, or referenced by a URL to an external system subject file : Reference [0..1] « Patient | Group | Substance Attachment | [0..*] BiologicallyDerivedProduct | NutritionProduct » Literal The actual focus of a molecular sequence when it is not the patient of record representing something or someone associated with the patient such primary (linear) sequence, expressed as a spouse, parent, child, or sibling. For example, in trio testing, the subject would be the child (proband) and the focus would be the parent literal string focus sequenceValue : Reference [0..*] « Any string » [1..1] Specimen used for sequencing specimen : Reference [0..1] « Specimen » The method for sequencing, for example, chip information device : Reference [0..1] « Device » Relative The organization or lab Molecular Sequence that should serves as the starting sequence, on which edits will be responsible for this result applied performer startingSequence : Reference [0..1] [1..1] « Organization MolecularSequence » Sequence that was observed literal : string [0..1] Edit Sequence that was observed as file content. Can be an actual file contents, or referenced by a URL The order of this edit, relative to an external system other edits on the starting sequence formatted editOrder : Attachment integer [0..*] Relative [0..1] These The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are different ways of identifying nucleotides usually 0- or amino acids within a sequence. Different databases and file types may use different systems. For detail definitions, see https://loinc.org/92822-6/ for more detail 1-based coordinateSystem : CodeableConcept [1..1] « null (Strength=Extensible) LL5323-2 + » Indicates the order in which The start coordinate of the sequence should interval that will be considered when putting multiple 'relative' elements together edited ordinalPosition start : integer [0..1] [1..1] Indicates the nucleotide range in The end coordinate of the composed sequence when multiple 'relative' elements are used together interval that will be edited sequenceRange end : Range integer [0..1] StartingSequence [1..1] The genome assembly sequence that defines the replacement sequence used for starting sequence, e.g. GRCh38 in the edit operation genomeAssembly replacementSequence : CodeableConcept [0..1] « null (Strength=Extensible) LL1040-6 Reference + » [1..1] « This element has or is affected by some invariants C MolecularSequence » Structural unit composed of a nucleic acid molecule which controls its own replication through The sequence on the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)) 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit chromosome replacedSequence : CodeableConcept Reference [0..1] « null (Strength=Required) LL2938-0 ! » « This element has or is affected by some invariants C MolecularSequence » Extracted The reference sequence Molecular Sequence that represents serves as the starting parent sequence, from which the intended sequence will be extracted sequence[x] startingSequence : DataType [0..1] « CodeableConcept | string | Reference ( MolecularSequence ); null (Strength=Example) Multiple bindings acceptable ...?? » [1..1] « This element has or is affected by some invariants C MolecularSequence » Start position of the window on the starting sequence. This value should honor The start coordinate (on the rules parent sequence) of the coordinateSystem interval that defines the subsequence to be extracted windowStart start : integer [0..1] [1..1] End position of the window on the starting sequence. This value should honor The end coordinate (on the rules parent sequence) of the coordinateSystem interval that defines the subsequence to be extracted windowEnd end : integer [0..1] [1..1] A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and coordinate system used to define the opposite complementary strand is interval that defines the "antisense" strand subsequence to be extracted. Coordinate systems are usually 0- or 1-based orientation coordinateSystem : code CodeableConcept [0..1] « null (Strength=Required) OrientationType ! » [1..1] An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on A flag that indicates whether the long arm extracted sequence should be reverse complemented strand reverseComplement : code boolean [0..1] « null (Strength=Required) StrandType ! » Edit Repeated Start position of the edit on the starting sequence. If The sequence that defines the coordinate system is either 0-based or 1-based, then start position is inclusive repeated motif start sequenceMotif : integer Reference [0..1] [1..1] « MolecularSequence » End position The number of repeats (copies) of the edit on the starting sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position sequence motif end copyCount : integer [0..1] [1..1] Concatenated SequenceElement Allele that was observed. Nucleotide(s)/amino acids from start position of sequence The Molecular Sequence corresponding to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end this element replacementSequence sequence : string Reference [0..1] [1..1] « MolecularSequence » Allele in the starting sequence. Nucleotide(s)/amino acids from start position of sequence to stop The ordinal position of this sequence on the positive (+) strand of the starting sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in element within the range between variant.start and variant.end concatenated Molecular Sequence replacedSequence ordinalIndex : string integer [0..1] [1..1] A literal representation of a Molecular Sequence literal [0..*] An edit (change) made to a sequence edit [0..*] A Molecular Sequence that is used represented as an ordered series of edits on a specified starting sequence to describe variants relative [0..*] A Molecular Sequence that are present in is represented as an extracted portion of a sequence analyzed different Molecular Sequence startingSequence extracted [0..1] [0..*] Changes in sequence from the starting A Molecular Sequence that is represented as a repeated sequence motif edit repeated [0..*] One element of a concatenated Molecular Sequence sequenceElement [1..*] A sequence defined relative to another sequence Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences relative concatenated [0..*] [0..1]

XML Template

<MolecularSequence 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 sequence --></identifier>
 <
 <|
   </subject>
 <</focus>
 <</specimen>
 <</device>
 <</performer>
 <
 <</formatted>
 <
  <</coordinateSystem>
  <
  <</sequenceRange>
  <
   <</genomeAssembly>
   <</chromosome>
   <</sequence[x]>
   <
   <
   <
   <
  </startingSequence>
  <
   <
   <
   <
   <

 <type value="[code]"/><!-- 0..1 aa | dna | rna -->
 <literal>  <!-- 0..* A literal representation of a Molecular Sequence -->
  <sequenceValue value="[string]"/><!-- 1..1 The primary (linear) sequence, expressed as a literal string -->
 </literal>
 <file><!-- 0..* Attachment Embedded file or a link (URL) which contains content to represent the sequence --></file>
 <relative>  <!-- 0..* A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence -->
  <startingSequence><!-- 1..1 Reference(MolecularSequence) The Molecular Sequence that serves as the starting sequence, on which edits will be applied --></startingSequence>
  <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 -->
   <replacementSequence><!-- 1..1 Reference(MolecularSequence) The sequence that defines the replacement sequence used in the edit operation --></replacementSequence>
   <replacedSequence><!-- 0..1 Reference(MolecularSequence) The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit --></replacedSequence>

  </edit>
 </relative>
 <extracted>  <!-- 0..* A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence -->
  <startingSequence><!-- 1..1 Reference(MolecularSequence) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted --></startingSequence>
  <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..* A Molecular Sequence that is represented as a repeated sequence motif -->
  <sequenceMotif><!-- 1..1 Reference(MolecularSequence) 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(MolecularSequence) 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>

</MolecularSequence>

JSON Template

{doco
  "resourceType" : "MolecularSequence",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Unique ID for this particular sequence
  "
  "|
   
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "
      "
      "
      
      " },
      ">",
      " },
      "
      "
      "
      "
    },
    "
      "
      "
      "
      "

  "type" : "<code>", // aa | dna | rna
  "literal" : [{ // A literal representation of a Molecular Sequence
    "sequenceValue" : "<string>" // R!  The primary (linear) sequence, expressed as a literal string
  }],
  "file" : [{ Attachment }], // Embedded file or a link (URL) which contains content to represent the sequence
  "relative" : [{ // A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence
    "startingSequence" : { Reference(MolecularSequence) }, // 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
      "replacementSequence" : { Reference(MolecularSequence) }, // R!  The sequence that defines the replacement sequence used in the edit operation
      "replacedSequence" : { Reference(MolecularSequence) } // The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit

    }]
  }]

  }],
  "extracted" : [{ // A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
    "startingSequence" : { Reference(MolecularSequence) }, // 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(MolecularSequence) }, // 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(MolecularSequence) }, // R!  The Molecular Sequence corresponding to this element
      "ordinalIndex" : <integer> // R!  The ordinal position of this sequence element within the concatenated Molecular Sequence
    }]
  }

}

Turtle Template

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


[ a fhir:MolecularSequence;
  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 sequence
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      # . One of these 3
        fhir: ]
        fhir: ]
        fhir:) ]
      fhir:
      fhir:
      fhir:
      fhir:
    ] ;
    fhir:
      fhir:
      fhir:
      fhir:
      fhir:

  fhir:type [ code ] ; # 0..1 aa | dna | rna
  fhir:literal ( [ # 0..* A literal representation of a Molecular Sequence
    fhir:sequenceValue [ string ] ; # 1..1 The primary (linear) sequence, expressed as a literal string
  ] ... ) ;
  fhir:file  ( [ Attachment ] ... ) ; # 0..* Embedded file or a link (URL) which contains content to represent the sequence
  fhir:relative ( [ # 0..* A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence
    fhir:startingSequence [ Reference(MolecularSequence) ] ; # 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:replacementSequence [ Reference(MolecularSequence) ] ; # 1..1 The sequence that defines the replacement sequence used in the edit operation
      fhir:replacedSequence [ Reference(MolecularSequence) ] ; # 0..1 The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit

    ] ... ) ;
  ] ... ) ;
  fhir:extracted ( [ # 0..* A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
    fhir:startingSequence [ Reference(MolecularSequence) ] ; # 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..* A Molecular Sequence that is represented as a repeated sequence motif
    fhir:sequenceMotif [ Reference(MolecularSequence) ] ; # 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(MolecularSequence) ] ; # 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
    ] ... ) ;
  ] ;

]

Changes from both R4 and R4B

MolecularSequence
MolecularSequence.subject MolecularSequence.literal
  • Renamed from patient to subject Added Element
MolecularSequence.literal.sequenceValue
  • Type Reference: Added Target Types Group, Substance, BiologicallyDerivedProduct, NutritionProduct Mandatory Element
MolecularSequence.focus MolecularSequence.file
  • Added Element
MolecularSequence.literal MolecularSequence.relative
  • Added Element
MolecularSequence.formatted MolecularSequence.relative.startingSequence
  • Added Mandatory Element
MolecularSequence.relative MolecularSequence.relative.edit
  • Added Element
MolecularSequence.relative.coordinateSystem MolecularSequence.relative.edit.editOrder
  • Added Element
MolecularSequence.relative.edit.coordinateSystem
  • Added Mandatory Element
MolecularSequence.relative.ordinalPosition MolecularSequence.relative.edit.start
  • Added Mandatory Element
MolecularSequence.relative.sequenceRange MolecularSequence.relative.edit.end
  • Added Mandatory Element
MolecularSequence.relative.startingSequence MolecularSequence.relative.edit.replacementSequence
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.genomeAssembly MolecularSequence.relative.edit.replacedSequence
  • Added Element
MolecularSequence.relative.startingSequence.chromosome MolecularSequence.extracted
  • Added Element
MolecularSequence.relative.startingSequence.sequence[x] MolecularSequence.extracted.startingSequence
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.windowStart MolecularSequence.extracted.start
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.windowEnd MolecularSequence.extracted.end
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.orientation MolecularSequence.extracted.coordinateSystem
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.strand MolecularSequence.extracted.reverseComplement
  • Added Element
MolecularSequence.relative.edit MolecularSequence.repeated
  • Added Element
MolecularSequence.relative.edit.start MolecularSequence.repeated.sequenceMotif
  • Added Mandatory Element
MolecularSequence.relative.edit.end MolecularSequence.repeated.copyCount
  • Added Mandatory Element
MolecularSequence.relative.edit.replacementSequence MolecularSequence.concatenated
  • Added Element
MolecularSequence.relative.edit.replacedSequence MolecularSequence.concatenated.sequenceElement
  • Added Mandatory Element
MolecularSequence.concatenated.sequenceElement.sequence
  • Added Mandatory Element
MolecularSequence.concatenated.sequenceElement.ordinalIndex
  • Added Mandatory Element
MolecularSequence.coordinateSystem
  • Deleted (>relative.coordinateSystem)
MolecularSequence.patient
  • Deleted
MolecularSequence.specimen
  • Deleted
MolecularSequence.quantity MolecularSequence.device
  • Deleted
MolecularSequence.performer
  • Deleted
MolecularSequence.quantity
  • Deleted (Removed. Covered by the Variant Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)
MolecularSequence.referenceSeq
  • Deleted (->relative.startingSequence.sequence[x])
MolecularSequence.variant
  • Deleted (Removed. Covered by the Variant Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)
MolecularSequence.observedSeq
  • Deleted (->relative.startingSequence.sequenceString)
MolecularSequence.quality
  • Deleted (Removed from the resource.)
MolecularSequence.readCoverage
  • Deleted (Removed. Covered by the RegionStudied Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)
MolecularSequence.repository
  • Deleted (->formatted)
MolecularSequence.pointer
  • Deleted (->relative)
MolecularSequence.structureVariant
  • Deleted (Removed. Covered by the Variant Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)

See the Full Difference for further information

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

See R4 <--> R5 Conversion Maps (status = See Conversions Summary .)

Structure

0..1 sequenceString sequenceReference
Name Flags Card. Type Description & Constraints doco
. . MolecularSequence TU DomainResource Representation of a molecular sequence

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

. . . type Σ 0..1 code aa | dna | rna
Binding: sequence Type ( Required )
. . subject . literal Σ 0..1 0..* Reference ( Patient | Group | Substance | BiologicallyDerivedProduct | NutritionProduct BackboneElement ) Subject this sequence is associated too A literal representation of a Molecular Sequence

. . focus . . sequenceValue Σ 0..* 1..1 Reference ( Any string ) What the molecular sequence is about, when it is not about the subject of record The primary (linear) sequence, expressed as a literal string
. . device . relative Σ 0..1 0..* Reference ( Device BackboneElement ) The method for sequencing A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence

. . . . performer startingSequence Σ 0..1 1..1 Reference ( Organization MolecularSequence ) Who should The Molecular Sequence that serves as the starting sequence, on which edits will be responsible for test result applied
. . literal . . edit Σ 0..1 0..* string BackboneElement Sequence that was observed An edit (change) made to a sequence

. . . . formatted . editOrder Σ 0..* 0..1 Attachment integer Embedded file or a link (URL) which contains content The order of this edit, relative to represent other edits on the starting sequence
. . relative . . . coordinateSystem Σ 0..* 1..1 BackboneElement CodeableConcept A sequence defined relative The coordinate system used to another sequence define the edited intervals on the starting sequence. Coordinate systems are usually 0- or 1-based
Binding: LL5323-2 icon ( Extensible )
. . . . coordinateSystem . start Σ 1..1 CodeableConcept integer Ways The start coordinate of identifying nucleotides or amino acids within a sequence Binding: LL5323-2 ( Extensible ) the interval that will be edited
. . . . . ordinalPosition end Σ 0..1 1..1 integer Indicates the order in which The end coordinate of the sequence should interval that will be considered when putting multiple 'relative' elements together edited
. . . . sequenceRange . replacementSequence Σ 0..1 1..1 Range Reference ( MolecularSequence ) Indicates the nucleotide range in The sequence that defines the composed replacement sequence when multiple 'relative' elements are used together in the edit operation
. . . . startingSequence . replacedSequence Σ C 0..1 BackboneElement Reference ( MolecularSequence ) A The sequence used as starting on the 'starting' sequence + Rule: Both genomeAssembly and chromosome must for the edit operation, defined by the specified interval, that will be both contained if either one of them is contained + Rule: Have and only have one of replaced during the following elements in startingSequence: 1. genomeAssembly; 2 sequence edit
. . genomeAssembly . extracted Σ C 0..1 0..* CodeableConcept BackboneElement The genome assembly used for starting sequence, e.g. GRCh38 A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
Binding: LL1040-6 ( Extensible )
. . . chromosome . startingSequence Σ C CodeableConcept 1..1 Chromosome Identifier Binding: LL2938-0 Reference ( Required MolecularSequence ) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted
. . . sequence[x] . start Σ C 0..1 1..1 integer The reference sequence start coordinate (on the parent sequence) of the interval that represents defines the starting sequence Binding: Multiple bindings acceptable (NCBI or LRG) ( Example ) subsequence to be extracted
. . . sequenceCodeableConcept . end CodeableConcept Σ 1..1 string integer The end coordinate (on the parent sequence) of the interval that defines the subsequence to be extracted
Reference ( MolecularSequence )
. . . windowStart . coordinateSystem Σ 0..1 1..1 integer CodeableConcept Start position of The coordinate system used to define the window on interval that defines the starting sequence subsequence to be extracted. Coordinate systems are usually 0- or 1-based
. . . . windowEnd reverseComplement Σ 0..1 integer boolean End position of the window on A flag that indicates whether the starting extracted sequence should be reverse complemented
. . orientation . repeated Σ 0..1 0..* code BackboneElement sense | antisense A Molecular Sequence that is represented as a repeated sequence motif
Binding: orientation Type ( Required )
. . . strand . sequenceMotif Σ 0..1 1..1 code watson | crick Binding: strand Type Reference ( Required MolecularSequence ) The sequence that defines the repeated motif
. . . edit . copyCount Σ 0..* 1..1 BackboneElement integer Changes in sequence from The number of repeats (copies) of the starting sequence motif
. . start . concatenated Σ 0..1 integer BackboneElement Start position A Molecular Sequence that is represented as an ordered concatenation of the edit on the starting sequence two or more Molecular Sequences
. . . end . sequenceElement Σ 0..1 1..* integer BackboneElement End position One element of the edit on the starting sequence a concatenated Molecular Sequence

. . . . replacementSequence . sequence Σ 0..1 1..1 string Reference ( MolecularSequence ) Allele that was observed The Molecular Sequence corresponding to this element
. . . . . replacedSequence ordinalIndex Σ 0..1 1..1 string integer Allele in the starting The ordinal position of this sequence element within the concatenated Molecular Sequence

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

MolecularSequence ( DomainResource ) A unique identifier for this particular sequence instance identifier : Identifier [0..*] Amino The type of the Molecular Sequence (Amino Acid Sequence/ Sequence, DNA Sequence / Sequence, RNA Sequence Sequence) type : code [0..1] « null (Strength=Required) SequenceType ! » Indicates the subject this sequence is associated too Sequence that was observed as file content. Can be an actual file contents, or referenced by a URL to an external system subject file : Reference [0..1] « Patient | Group | Substance Attachment | [0..*] BiologicallyDerivedProduct | NutritionProduct » Literal The actual focus of a molecular sequence when it is not the patient of record representing something or someone associated with the patient such primary (linear) sequence, expressed as a spouse, parent, child, or sibling. For example, in trio testing, the subject would be the child (proband) and the focus would be the parent literal string focus sequenceValue : Reference [0..*] « Any string » [1..1] Specimen used for sequencing specimen : Reference [0..1] « Specimen » The method for sequencing, for example, chip information device : Reference [0..1] « Device » Relative The organization or lab Molecular Sequence that should serves as the starting sequence, on which edits will be responsible for this result applied performer startingSequence : Reference [0..1] [1..1] « Organization MolecularSequence » Sequence that was observed literal : string [0..1] Edit Sequence that was observed as file content. Can be an actual file contents, or referenced by a URL The order of this edit, relative to an external system other edits on the starting sequence formatted editOrder : Attachment integer [0..*] Relative [0..1] These The coordinate system used to define the edited intervals on the starting sequence. Coordinate systems are different ways of identifying nucleotides usually 0- or amino acids within a sequence. Different databases and file types may use different systems. For detail definitions, see https://loinc.org/92822-6/ for more detail 1-based coordinateSystem : CodeableConcept [1..1] « null (Strength=Extensible) LL5323-2 + » Indicates the order in which The start coordinate of the sequence should interval that will be considered when putting multiple 'relative' elements together edited ordinalPosition start : integer [0..1] [1..1] Indicates the nucleotide range in The end coordinate of the composed sequence when multiple 'relative' elements are used together interval that will be edited sequenceRange end : Range integer [0..1] StartingSequence [1..1] The genome assembly sequence that defines the replacement sequence used for starting sequence, e.g. GRCh38 in the edit operation genomeAssembly replacementSequence : CodeableConcept [0..1] « null (Strength=Extensible) LL1040-6 Reference + » [1..1] « This element has or is affected by some invariants C MolecularSequence » Structural unit composed of a nucleic acid molecule which controls its own replication through The sequence on the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)) 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit chromosome replacedSequence : CodeableConcept Reference [0..1] « null (Strength=Required) LL2938-0 ! » « This element has or is affected by some invariants C MolecularSequence » Extracted The reference sequence Molecular Sequence that represents serves as the starting parent sequence, from which the intended sequence will be extracted sequence[x] startingSequence : DataType [0..1] « CodeableConcept | string | Reference ( MolecularSequence ); null (Strength=Example) Multiple bindings acceptable ...?? » [1..1] « This element has or is affected by some invariants C MolecularSequence » Start position of the window on the starting sequence. This value should honor The start coordinate (on the rules parent sequence) of the coordinateSystem interval that defines the subsequence to be extracted windowStart start : integer [0..1] [1..1] End position of the window on the starting sequence. This value should honor The end coordinate (on the rules parent sequence) of the coordinateSystem interval that defines the subsequence to be extracted windowEnd end : integer [0..1] [1..1] A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and coordinate system used to define the opposite complementary strand is interval that defines the "antisense" strand subsequence to be extracted. Coordinate systems are usually 0- or 1-based orientation coordinateSystem : code CodeableConcept [0..1] « null (Strength=Required) OrientationType ! » [1..1] An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on A flag that indicates whether the long arm extracted sequence should be reverse complemented strand reverseComplement : code boolean [0..1] « null (Strength=Required) StrandType ! » Edit Repeated Start position of the edit on the starting sequence. If The sequence that defines the coordinate system is either 0-based or 1-based, then start position is inclusive repeated motif start sequenceMotif : integer Reference [0..1] [1..1] « MolecularSequence » End position The number of repeats (copies) of the edit on the starting sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position sequence motif end copyCount : integer [0..1] [1..1] Concatenated SequenceElement Allele that was observed. Nucleotide(s)/amino acids from start position of sequence The Molecular Sequence corresponding to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end this element replacementSequence sequence : string Reference [0..1] [1..1] « MolecularSequence » Allele in the starting sequence. Nucleotide(s)/amino acids from start position of sequence to stop The ordinal position of this sequence on the positive (+) strand of the starting sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in element within the range between variant.start and variant.end concatenated Molecular Sequence replacedSequence ordinalIndex : string integer [0..1] [1..1] A literal representation of a Molecular Sequence literal [0..*] An edit (change) made to a sequence edit [0..*] A Molecular Sequence that is used represented as an ordered series of edits on a specified starting sequence to describe variants relative [0..*] A Molecular Sequence that are present in is represented as an extracted portion of a sequence analyzed different Molecular Sequence startingSequence extracted [0..1] [0..*] Changes in sequence from the starting A Molecular Sequence that is represented as a repeated sequence motif edit repeated [0..*] One element of a concatenated Molecular Sequence sequenceElement [1..*] A sequence defined relative to another sequence Molecular Sequence that is represented as an ordered concatenation of two or more Molecular Sequences relative concatenated [0..*] [0..1]

XML Template

<MolecularSequence 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 sequence --></identifier>
 <
 <|
   </subject>
 <</focus>
 <</specimen>
 <</device>
 <</performer>
 <
 <</formatted>
 <
  <</coordinateSystem>
  <
  <</sequenceRange>
  <
   <</genomeAssembly>
   <</chromosome>
   <</sequence[x]>
   <
   <
   <
   <
  </startingSequence>
  <
   <
   <
   <
   <

 <type value="[code]"/><!-- 0..1 aa | dna | rna -->
 <literal>  <!-- 0..* A literal representation of a Molecular Sequence -->
  <sequenceValue value="[string]"/><!-- 1..1 The primary (linear) sequence, expressed as a literal string -->
 </literal>
 <file><!-- 0..* Attachment Embedded file or a link (URL) which contains content to represent the sequence --></file>
 <relative>  <!-- 0..* A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence -->
  <startingSequence><!-- 1..1 Reference(MolecularSequence) The Molecular Sequence that serves as the starting sequence, on which edits will be applied --></startingSequence>
  <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 -->
   <replacementSequence><!-- 1..1 Reference(MolecularSequence) The sequence that defines the replacement sequence used in the edit operation --></replacementSequence>
   <replacedSequence><!-- 0..1 Reference(MolecularSequence) The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit --></replacedSequence>

  </edit>
 </relative>
 <extracted>  <!-- 0..* A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence -->
  <startingSequence><!-- 1..1 Reference(MolecularSequence) The Molecular Sequence that serves as the parent sequence, from which the intended sequence will be extracted --></startingSequence>
  <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..* A Molecular Sequence that is represented as a repeated sequence motif -->
  <sequenceMotif><!-- 1..1 Reference(MolecularSequence) 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(MolecularSequence) 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>

</MolecularSequence>

JSON Template

{doco
  "resourceType" : "MolecularSequence",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Unique ID for this particular sequence
  "
  "|
   
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "
      "
      "
      
      " },
      ">",
      " },
      "
      "
      "
      "
    },
    "
      "
      "
      "
      "

  "type" : "<code>", // aa | dna | rna
  "literal" : [{ // A literal representation of a Molecular Sequence
    "sequenceValue" : "<string>" // R!  The primary (linear) sequence, expressed as a literal string
  }],
  "file" : [{ Attachment }], // Embedded file or a link (URL) which contains content to represent the sequence
  "relative" : [{ // A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence
    "startingSequence" : { Reference(MolecularSequence) }, // 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
      "replacementSequence" : { Reference(MolecularSequence) }, // R!  The sequence that defines the replacement sequence used in the edit operation
      "replacedSequence" : { Reference(MolecularSequence) } // The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit

    }]
  }]

  }],
  "extracted" : [{ // A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
    "startingSequence" : { Reference(MolecularSequence) }, // 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(MolecularSequence) }, // 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(MolecularSequence) }, // R!  The Molecular Sequence corresponding to this element
      "ordinalIndex" : <integer> // R!  The ordinal position of this sequence element within the concatenated Molecular Sequence
    }]
  }

}

Turtle Template

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


[ a fhir:MolecularSequence;
  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 sequence
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      fhir:
      # . One of these 3
        fhir: ]
        fhir: ]
        fhir:) ]
      fhir:
      fhir:
      fhir:
      fhir:
    ] ;
    fhir:
      fhir:
      fhir:
      fhir:
      fhir:

  fhir:type [ code ] ; # 0..1 aa | dna | rna
  fhir:literal ( [ # 0..* A literal representation of a Molecular Sequence
    fhir:sequenceValue [ string ] ; # 1..1 The primary (linear) sequence, expressed as a literal string
  ] ... ) ;
  fhir:file  ( [ Attachment ] ... ) ; # 0..* Embedded file or a link (URL) which contains content to represent the sequence
  fhir:relative ( [ # 0..* A Molecular Sequence that is represented as an ordered series of edits on a specified starting sequence
    fhir:startingSequence [ Reference(MolecularSequence) ] ; # 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:replacementSequence [ Reference(MolecularSequence) ] ; # 1..1 The sequence that defines the replacement sequence used in the edit operation
      fhir:replacedSequence [ Reference(MolecularSequence) ] ; # 0..1 The sequence on the 'starting' sequence for the edit operation, defined by the specified interval, that will be replaced during the edit

    ] ... ) ;
  ] ... ) ;
  fhir:extracted ( [ # 0..* A Molecular Sequence that is represented as an extracted portion of a different Molecular Sequence
    fhir:startingSequence [ Reference(MolecularSequence) ] ; # 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..* A Molecular Sequence that is represented as a repeated sequence motif
    fhir:sequenceMotif [ Reference(MolecularSequence) ] ; # 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(MolecularSequence) ] ; # 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
    ] ... ) ;
  ] ;

]

Changes from both R4 and R4B

MolecularSequence
MolecularSequence.subject MolecularSequence.literal
  • Renamed from patient to subject Added Element
MolecularSequence.literal.sequenceValue
  • Type Reference: Added Target Types Group, Substance, BiologicallyDerivedProduct, NutritionProduct Mandatory Element
MolecularSequence.focus MolecularSequence.file
  • Added Element
MolecularSequence.literal MolecularSequence.relative
  • Added Element
MolecularSequence.formatted MolecularSequence.relative.startingSequence
  • Added Mandatory Element
MolecularSequence.relative MolecularSequence.relative.edit
  • Added Element
MolecularSequence.relative.coordinateSystem MolecularSequence.relative.edit.editOrder
  • Added Element
MolecularSequence.relative.edit.coordinateSystem
  • Added Mandatory Element
MolecularSequence.relative.ordinalPosition MolecularSequence.relative.edit.start
  • Added Mandatory Element
MolecularSequence.relative.sequenceRange MolecularSequence.relative.edit.end
  • Added Mandatory Element
MolecularSequence.relative.startingSequence MolecularSequence.relative.edit.replacementSequence
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.genomeAssembly MolecularSequence.relative.edit.replacedSequence
  • Added Element
MolecularSequence.relative.startingSequence.chromosome MolecularSequence.extracted
  • Added Element
MolecularSequence.relative.startingSequence.sequence[x] MolecularSequence.extracted.startingSequence
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.windowStart MolecularSequence.extracted.start
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.windowEnd MolecularSequence.extracted.end
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.orientation MolecularSequence.extracted.coordinateSystem
  • Added Mandatory Element
MolecularSequence.relative.startingSequence.strand MolecularSequence.extracted.reverseComplement
  • Added Element
MolecularSequence.relative.edit MolecularSequence.repeated
  • Added Element
MolecularSequence.relative.edit.start MolecularSequence.repeated.sequenceMotif
  • Added Mandatory Element
MolecularSequence.relative.edit.end MolecularSequence.repeated.copyCount
  • Added Mandatory Element
MolecularSequence.relative.edit.replacementSequence MolecularSequence.concatenated
  • Added Element
MolecularSequence.relative.edit.replacedSequence MolecularSequence.concatenated.sequenceElement
  • Added Mandatory Element
MolecularSequence.concatenated.sequenceElement.sequence
  • Added Mandatory Element
MolecularSequence.concatenated.sequenceElement.ordinalIndex
  • Added Mandatory Element
MolecularSequence.coordinateSystem
  • Deleted (>relative.coordinateSystem)
MolecularSequence.patient
  • Deleted
MolecularSequence.quantity MolecularSequence.specimen
  • Deleted
MolecularSequence.device
  • Deleted
MolecularSequence.performer
  • Deleted
MolecularSequence.quantity
  • Deleted (Removed. Covered by the Variant Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)
MolecularSequence.referenceSeq
  • Deleted (->relative.startingSequence.sequence[x])
MolecularSequence.variant
  • Deleted (Removed. Covered by the Variant Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)
MolecularSequence.observedSeq
  • Deleted (->relative.startingSequence.sequenceString)
MolecularSequence.quality
  • Deleted (Removed from the resource.)
MolecularSequence.readCoverage
  • Deleted (Removed. Covered by the RegionStudied Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)
MolecularSequence.repository
  • Deleted (->formatted)
MolecularSequence.pointer
  • Deleted (->relative)
MolecularSequence.structureVariant
  • Deleted (Removed. Covered by the Variant Profile in the CG IG: http://hl7.org/fhir/uv/genomics-reporting/index.html)

See the Full Difference for further information

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

See R4 <--> R5 Conversion Maps (status = See Conversions Summary .)

 

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

MolecularSequence.relative.startingSequence.genomeAssembly http://loinc.org/LL1040-6/ Extensible MolecularSequence.relative.startingSequence.chromosome http://loinc.org/LL2938-0/ Required MolecularSequence.relative.startingSequence.sequence[x] ?? Example MolecularSequence.relative.startingSequence.orientation OrientationType Required Type for orientation. MolecularSequence.relative.startingSequence.strand StrandType Required Type for strand.
Path ValueSet Type Documentation
MolecularSequence.type SequenceType Required

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

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

10.7.4.2 Constraints UniqueKey Level Location Description Expression  msq-5 Rule MolecularSequence.relative.startingSequence Both genomeAssembly and chromosome must be both contained if either one of them is contained chromosome.exists() = genomeAssembly.exists()  msq-6 Rule MolecularSequence.relative.startingSequence Have and only have one of the following elements in startingSequence: 1. genomeAssembly; 2 sequence genomeAssembly.exists() xor sequence.exists()

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 file : 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 file.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).

In a FGFR2:MET Fusion use case, where the fusion was uncovered through RNA sequencing, a partial representation can be found here .

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.windowEnd defines 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 .

Here are two examples: 0-based example: here 1-based example: here

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
focus reference What the molecular sequence is about, when it is not about the subject of record MolecularSequence.focus (Any) identifier token The unique identity for a particular sequence MolecularSequence.identifier 65 Resources patient reference The subject that the sequence is about MolecularSequence.subject.where(resolve() is Patient) ( Patient ) 66 64 Resources
subject reference The subject that the sequence is about MolecularSequence.subject ( Group , BiologicallyDerivedProduct , NutritionProduct , Patient , Substance ) type token Amino Acid Sequence/ DNA Sequence / RNA Sequence MolecularSequence.type 11 Resources