This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions
Clinical Genomics Work Group | Maturity Level: 1 | Trial Use | Compartments: Not linked to any defined compartments |
Raw data describing a biological sequence.
The Sequence resource is designed to describe an atomic sequence which contains the alignment sequencing test result and multiple variations. Atomic sequences can be connected by link element and they will lead to sequence graph. By this method, a sequence can be reported. Complete genetic sequence information, of which specific genetic variations are a part, is reported by reference to the GA4GH repository. Thus, the FHIR Sequence resource avoids large genomic payloads in a manner analogous to how the FHIR ImagingStudy resource references large images maintained in other systems. For use cases, details on how this resource interact with other Clinical Genomics resources or profiles, please refer to implementation guidance document here .
This resource is designed to describe sequence variations with clinical significance with information such as:
It is strongly encouraged to provide all available information in this resource for any reported variants, because receiving systems (e.g. discovery research, outcomes analysis, and public health reporting) may use this information to normalize variants over time or across sources. However, these data should not be used to dynamically correct/change variant representations for clinical use outside of the laboratory, due to insufficient information.
Implementers should be aware that semantic equivalency of results of genetic variants cannot be guaranteed unless there is an agreed upon standard between sending and receiving systems.
Focus of the resource is to provide sequencing alignment data immediately relevant to what the interpretation on clinical decision-making originates from. Hence data such as precise read of DNA sequences and sequence alignment are not included; such data are nonetheless accessible through references to GA4GH (Global Alliance for Genomics and Health) API. The Sequence resource will be referenced by Observation to provide variant information. As clinical assessments/diagnosis of a patient are typically captured in the Condition resource or the ClinicalImpression resource, the Sequence resource can be referenced by the Condition resource to provide specific genetic data to support an assertions. This is analogous to how Condition references other resources, such as AllergyIntolerance, Procedure, and Questionnaire resources.
This resource is referenced by observation
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Sequence | ΣI | DomainResource | Information about a biological sequence + Only 0 and 1 are valid for coordinateSystem Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | Σ | 0..* | Identifier | Unique ID for this particular sequence. This is a FHIR-defined id |
type | Σ | 0..1 | code | aa | dna | rna sequenceType (Example) |
coordinateSystem | Σ | 1..1 | integer | Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) |
patient | Σ | 0..1 | Reference(Patient) | Who and/or what this is about |
specimen | Σ | 0..1 | Reference(Specimen) | Specimen used for sequencing |
device | Σ | 0..1 | Reference(Device) | The method for sequencing |
performer | Σ | 0..1 | Reference(Organization) | Who should be responsible for test result |
quantity | Σ | 0..1 | Quantity | The number of copies of the seqeunce of interest. (RNASeq) |
referenceSeq | ΣI | 0..1 | BackboneElement | A sequence used as reference + Only +1 and -1 are valid for strand + GenomeBuild and chromosome must be both contained if either one of them is contained + Have and only have one of the following elements in referenceSeq : 1. genomeBuild ; 2 referenceSeqId; 3. referenceSeqPointer; 4. referenceSeqString; |
chromosome | Σ | 0..1 | CodeableConcept | Chromosome containing genetic finding chromosome-human (Example) |
genomeBuild | Σ | 0..1 | string | The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' |
referenceSeqId | Σ | 0..1 | CodeableConcept | Reference identifier ENSEMBL (Example) |
referenceSeqPointer | Σ | 0..1 | Reference(Sequence) | A Pointer to another Sequence entity as reference sequence |
referenceSeqString | Σ | 0..1 | string | A string to represent reference sequence |
strand | Σ | 0..1 | integer | Directionality of DNA ( +1/-1) |
windowStart | Σ | 1..1 | integer | Start position of the window on the reference sequence |
windowEnd | Σ | 1..1 | integer | End position of the window on the reference sequence |
variant | Σ | 0..* | BackboneElement | Variant in sequence |
start | Σ | 0..1 | integer | Start position of the variant on the reference sequence |
end | Σ | 0..1 | integer | End position of the variant on the reference sequence |
observedAllele | Σ | 0..1 | string | Allele that was observed |
referenceAllele | Σ | 0..1 | string | Allele in the reference sequence |
cigar | Σ | 0..1 | string | Extended CIGAR string for aligning the sequence with reference bases |
variantPointer | Σ | 0..1 | Reference(Observation) | Pointer to observed variant information |
observedSeq | Σ | 0..1 | string | Sequence that was observed |
quality | Σ | 0..* | BackboneElement | An set of value as quality of sequence |
type | Σ | 1..1 | code | indel | snp | unknown qualityType (Required) |
standardSequence | Σ | 0..1 | CodeableConcept | Standard sequence for comparison FDA-StandardSequence (Example) |
start | Σ | 0..1 | integer | Start position of the sequence |
end | Σ | 0..1 | integer | End position of the sequence |
score | Σ | 0..1 | Quantity | Quality score for the comparison |
method | Σ | 0..1 | CodeableConcept | Method to get quality FDA-Method (Example) |
truthTP | Σ | 0..1 | decimal | True positives from the perspective of the truth data |
queryTP | Σ | 0..1 | decimal | True positives from the perspective of the query data |
truthFN | Σ | 0..1 | decimal | False negatives |
queryFP | Σ | 0..1 | decimal | False positives |
gtFP | Σ | 0..1 | decimal | False positives where the non-REF alleles in the Truth and Query Call Sets match |
precision | Σ | 0..1 | decimal | Precision of comparison |
recall | Σ | 0..1 | decimal | Recall of comparison |
fScore | Σ | 0..1 | decimal | F-score |
readCoverage | Σ | 0..1 | integer | Average number of reads representing a given nucleotide in the reconstructed sequence |
repository | Σ | 0..* | BackboneElement | External repository which contains detailed report related with observedSeq in this resource |
type | Σ | 1..1 | code | directlink | openapi | login | oauth | other repositoryType (Required) |
url | Σ | 0..1 | uri | URI of the repository |
name | Σ | 0..1 | string | Repository's name |
datasetId | Σ | 0..1 | string | Id of the dataset that used to call for dataset in repository |
variantsetId | Σ | 0..1 | string | Id of the variantset that used to call for variantset in repository |
readsetId | Σ | 0..1 | string | Id of the read |
pointer | Σ | 0..* | Reference(Sequence) | Pointer to next atomic sequence |
Documentation for this format |
UML Diagram (Legend)
XML Template
<Sequence xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Unique ID for this particular sequence. This is a FHIR-defined id --></identifier> <type value="[code]"/><!-- 0..1 aa | dna | rna --> <coordinateSystem value="[integer]"/><!-- 1..1 Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) --> <patient><!-- 0..1 Reference(Patient) Who and/or what this is about --></patient> <specimen><!-- 0..1 Reference(Specimen) Specimen used for sequencing --></specimen> <device><!-- 0..1 Reference(Device) The method for sequencing --></device> <performer><!-- 0..1 Reference(Organization) Who should be responsible for test result --></performer> <quantity><!-- 0..1 Quantity The number of copies of the seqeunce of interest. (RNASeq) --></quantity> <referenceSeq> <!-- 0..1 A sequence used as reference --> <chromosome><!-- 0..1 CodeableConcept Chromosome containing genetic finding --></chromosome> <genomeBuild value="[string]"/><!-- 0..1 The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' --> <referenceSeqId><!-- 0..1 CodeableConcept Reference identifier --></referenceSeqId> <referenceSeqPointer><!-- 0..1 Reference(Sequence) A Pointer to another Sequence entity as reference sequence --></referenceSeqPointer> <referenceSeqString value="[string]"/><!-- 0..1 A string to represent reference sequence --> <strand value="[integer]"/><!-- 0..1 Directionality of DNA ( +1/-1) --> <windowStart value="[integer]"/><!-- 1..1 Start position of the window on the reference sequence --> <windowEnd value="[integer]"/><!-- 1..1 End position of the window on the reference sequence --> </referenceSeq> <variant> <!-- 0..* Variant in sequence --> <start value="[integer]"/><!-- 0..1 Start position of the variant on the reference sequence --> <end value="[integer]"/><!-- 0..1 End position of the variant on the reference sequence --> <observedAllele value="[string]"/><!-- 0..1 Allele that was observed --> <referenceAllele value="[string]"/><!-- 0..1 Allele in the reference sequence --> <cigar value="[string]"/><!-- 0..1 Extended CIGAR string for aligning the sequence with reference bases --> <variantPointer><!-- 0..1 Reference(Observation) Pointer to observed variant information --></variantPointer> </variant> <observedSeq value="[string]"/><!-- 0..1 Sequence that was observed --> <quality> <!-- 0..* An set of value as quality of sequence --> <type value="[code]"/><!-- 1..1 indel | snp | unknown --> <standardSequence><!-- 0..1 CodeableConcept Standard sequence for comparison --></standardSequence> <start value="[integer]"/><!-- 0..1 Start position of the sequence --> <end value="[integer]"/><!-- 0..1 End position of the sequence --> <score><!-- 0..1 Quantity Quality score for the comparison --></score> <method><!-- 0..1 CodeableConcept Method to get quality --></method> <truthTP value="[decimal]"/><!-- 0..1 True positives from the perspective of the truth data --> <queryTP value="[decimal]"/><!-- 0..1 True positives from the perspective of the query data --> <truthFN value="[decimal]"/><!-- 0..1 False negatives --> <queryFP value="[decimal]"/><!-- 0..1 False positives --> <gtFP value="[decimal]"/><!-- 0..1 False positives where the non-REF alleles in the Truth and Query Call Sets match --> <precision value="[decimal]"/><!-- 0..1 Precision of comparison --> <recall value="[decimal]"/><!-- 0..1 Recall of comparison --> <fScore value="[decimal]"/><!-- 0..1 F-score --> </quality> <readCoverage value="[integer]"/><!-- 0..1 Average number of reads representing a given nucleotide in the reconstructed sequence --> <repository> <!-- 0..* External repository which contains detailed report related with observedSeq in this resource --> <type value="[code]"/><!-- 1..1 directlink | openapi | login | oauth | other --> <url value="[uri]"/><!-- 0..1 URI of the repository --> <name value="[string]"/><!-- 0..1 Repository's name --> <datasetId value="[string]"/><!-- 0..1 Id of the dataset that used to call for dataset in repository --> <variantsetId value="[string]"/><!-- 0..1 Id of the variantset that used to call for variantset in repository --> <readsetId value="[string]"/><!-- 0..1 Id of the read --> </repository> <pointer><!-- 0..* Reference(Sequence) Pointer to next atomic sequence --></pointer> </Sequence>
JSON Template
{ "resourceType" : "Sequence", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Unique ID for this particular sequence. This is a FHIR-defined id "type" : "<code>", // aa | dna | rna "coordinateSystem" : <integer>, // R! Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) "patient" : { Reference(Patient) }, // Who and/or what this is about "specimen" : { Reference(Specimen) }, // Specimen used for sequencing "device" : { Reference(Device) }, // The method for sequencing "performer" : { Reference(Organization) }, // Who should be responsible for test result "quantity" : { Quantity }, // The number of copies of the seqeunce of interest. (RNASeq) "referenceSeq" : { // A sequence used as reference "chromosome" : { CodeableConcept }, // Chromosome containing genetic finding "genomeBuild" : "<string>", // The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' "referenceSeqId" : { CodeableConcept }, // Reference identifier "referenceSeqPointer" : { Reference(Sequence) }, // A Pointer to another Sequence entity as reference sequence "referenceSeqString" : "<string>", // A string to represent reference sequence "strand" : <integer>, // Directionality of DNA ( +1/-1) "windowStart" : <integer>, // R! Start position of the window on the reference sequence "windowEnd" : <integer> // R! End position of the window on the reference sequence }, "variant" : [{ // Variant in sequence "start" : <integer>, // Start position of the variant on the reference sequence "end" : <integer>, // End position of the variant on the reference sequence "observedAllele" : "<string>", // Allele that was observed "referenceAllele" : "<string>", // Allele in the reference sequence "cigar" : "<string>", // Extended CIGAR string for aligning the sequence with reference bases "variantPointer" : { Reference(Observation) } // Pointer to observed variant information }], "observedSeq" : "<string>", // Sequence that was observed "quality" : [{ // An set of value as quality of sequence "type" : "<code>", // R! indel | snp | unknown "standardSequence" : { CodeableConcept }, // Standard sequence for comparison "start" : <integer>, // Start position of the sequence "end" : <integer>, // End position of the sequence "score" : { Quantity }, // Quality score for the comparison "method" : { CodeableConcept }, // Method to get quality "truthTP" : <decimal>, // True positives from the perspective of the truth data "queryTP" : <decimal>, // True positives from the perspective of the query data "truthFN" : <decimal>, // False negatives "queryFP" : <decimal>, // False positives "gtFP" : <decimal>, // False positives where the non-REF alleles in the Truth and Query Call Sets match "precision" : <decimal>, // Precision of comparison "recall" : <decimal>, // Recall of comparison "fScore" : <decimal> // F-score }], "readCoverage" : <integer>, // Average number of reads representing a given nucleotide in the reconstructed sequence "repository" : [{ // External repository which contains detailed report related with observedSeq in this resource "type" : "<code>", // R! directlink | openapi | login | oauth | other "url" : "<uri>", // URI of the repository "name" : "<string>", // Repository's name "datasetId" : "<string>", // Id of the dataset that used to call for dataset in repository "variantsetId" : "<string>", // Id of the variantset that used to call for variantset in repository "readsetId" : "<string>" // Id of the read }], "pointer" : [{ Reference(Sequence) }] // Pointer to next atomic sequence }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Sequence; 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:Sequence.identifier [ Identifier ], ... ; # 0..* Unique ID for this particular sequence. This is a FHIR-defined id fhir:Sequence.type [ code ]; # 0..1 aa | dna | rna fhir:Sequence.coordinateSystem [ integer ]; # 1..1 Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) fhir:Sequence.patient [ Reference(Patient) ]; # 0..1 Who and/or what this is about fhir:Sequence.specimen [ Reference(Specimen) ]; # 0..1 Specimen used for sequencing fhir:Sequence.device [ Reference(Device) ]; # 0..1 The method for sequencing fhir:Sequence.performer [ Reference(Organization) ]; # 0..1 Who should be responsible for test result fhir:Sequence.quantity [ Quantity ]; # 0..1 The number of copies of the seqeunce of interest. (RNASeq) fhir:Sequence.referenceSeq [ # 0..1 A sequence used as reference fhir:Sequence.referenceSeq.chromosome [ CodeableConcept ]; # 0..1 Chromosome containing genetic finding fhir:Sequence.referenceSeq.genomeBuild [ string ]; # 0..1 The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' fhir:Sequence.referenceSeq.referenceSeqId [ CodeableConcept ]; # 0..1 Reference identifier fhir:Sequence.referenceSeq.referenceSeqPointer [ Reference(Sequence) ]; # 0..1 A Pointer to another Sequence entity as reference sequence fhir:Sequence.referenceSeq.referenceSeqString [ string ]; # 0..1 A string to represent reference sequence fhir:Sequence.referenceSeq.strand [ integer ]; # 0..1 Directionality of DNA ( +1/-1) fhir:Sequence.referenceSeq.windowStart [ integer ]; # 1..1 Start position of the window on the reference sequence fhir:Sequence.referenceSeq.windowEnd [ integer ]; # 1..1 End position of the window on the reference sequence ]; fhir:Sequence.variant [ # 0..* Variant in sequence fhir:Sequence.variant.start [ integer ]; # 0..1 Start position of the variant on the reference sequence fhir:Sequence.variant.end [ integer ]; # 0..1 End position of the variant on the reference sequence fhir:Sequence.variant.observedAllele [ string ]; # 0..1 Allele that was observed fhir:Sequence.variant.referenceAllele [ string ]; # 0..1 Allele in the reference sequence fhir:Sequence.variant.cigar [ string ]; # 0..1 Extended CIGAR string for aligning the sequence with reference bases fhir:Sequence.variant.variantPointer [ Reference(Observation) ]; # 0..1 Pointer to observed variant information ], ...; fhir:Sequence.observedSeq [ string ]; # 0..1 Sequence that was observed fhir:Sequence.quality [ # 0..* An set of value as quality of sequence fhir:Sequence.quality.type [ code ]; # 1..1 indel | snp | unknown fhir:Sequence.quality.standardSequence [ CodeableConcept ]; # 0..1 Standard sequence for comparison fhir:Sequence.quality.start [ integer ]; # 0..1 Start position of the sequence fhir:Sequence.quality.end [ integer ]; # 0..1 End position of the sequence fhir:Sequence.quality.score [ Quantity ]; # 0..1 Quality score for the comparison fhir:Sequence.quality.method [ CodeableConcept ]; # 0..1 Method to get quality fhir:Sequence.quality.truthTP [ decimal ]; # 0..1 True positives from the perspective of the truth data fhir:Sequence.quality.queryTP [ decimal ]; # 0..1 True positives from the perspective of the query data fhir:Sequence.quality.truthFN [ decimal ]; # 0..1 False negatives fhir:Sequence.quality.queryFP [ decimal ]; # 0..1 False positives fhir:Sequence.quality.gtFP [ decimal ]; # 0..1 False positives where the non-REF alleles in the Truth and Query Call Sets match fhir:Sequence.quality.precision [ decimal ]; # 0..1 Precision of comparison fhir:Sequence.quality.recall [ decimal ]; # 0..1 Recall of comparison fhir:Sequence.quality.fScore [ decimal ]; # 0..1 F-score ], ...; fhir:Sequence.readCoverage [ integer ]; # 0..1 Average number of reads representing a given nucleotide in the reconstructed sequence fhir:Sequence.repository [ # 0..* External repository which contains detailed report related with observedSeq in this resource fhir:Sequence.repository.type [ code ]; # 1..1 directlink | openapi | login | oauth | other fhir:Sequence.repository.url [ uri ]; # 0..1 URI of the repository fhir:Sequence.repository.name [ string ]; # 0..1 Repository's name fhir:Sequence.repository.datasetId [ string ]; # 0..1 Id of the dataset that used to call for dataset in repository fhir:Sequence.repository.variantsetId [ string ]; # 0..1 Id of the variantset that used to call for variantset in repository fhir:Sequence.repository.readsetId [ string ]; # 0..1 Id of the read ], ...; fhir:Sequence.pointer [ Reference(Sequence) ], ... ; # 0..* Pointer to next atomic sequence ]
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Sequence | ΣI | DomainResource | Information about a biological sequence + Only 0 and 1 are valid for coordinateSystem Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | Σ | 0..* | Identifier | Unique ID for this particular sequence. This is a FHIR-defined id |
type | Σ | 0..1 | code | aa | dna | rna sequenceType (Example) |
coordinateSystem | Σ | 1..1 | integer | Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) |
patient | Σ | 0..1 | Reference(Patient) | Who and/or what this is about |
specimen | Σ | 0..1 | Reference(Specimen) | Specimen used for sequencing |
device | Σ | 0..1 | Reference(Device) | The method for sequencing |
performer | Σ | 0..1 | Reference(Organization) | Who should be responsible for test result |
quantity | Σ | 0..1 | Quantity | The number of copies of the seqeunce of interest. (RNASeq) |
referenceSeq | ΣI | 0..1 | BackboneElement | A sequence used as reference + Only +1 and -1 are valid for strand + GenomeBuild and chromosome must be both contained if either one of them is contained + Have and only have one of the following elements in referenceSeq : 1. genomeBuild ; 2 referenceSeqId; 3. referenceSeqPointer; 4. referenceSeqString; |
chromosome | Σ | 0..1 | CodeableConcept | Chromosome containing genetic finding chromosome-human (Example) |
genomeBuild | Σ | 0..1 | string | The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' |
referenceSeqId | Σ | 0..1 | CodeableConcept | Reference identifier ENSEMBL (Example) |
referenceSeqPointer | Σ | 0..1 | Reference(Sequence) | A Pointer to another Sequence entity as reference sequence |
referenceSeqString | Σ | 0..1 | string | A string to represent reference sequence |
strand | Σ | 0..1 | integer | Directionality of DNA ( +1/-1) |
windowStart | Σ | 1..1 | integer | Start position of the window on the reference sequence |
windowEnd | Σ | 1..1 | integer | End position of the window on the reference sequence |
variant | Σ | 0..* | BackboneElement | Variant in sequence |
start | Σ | 0..1 | integer | Start position of the variant on the reference sequence |
end | Σ | 0..1 | integer | End position of the variant on the reference sequence |
observedAllele | Σ | 0..1 | string | Allele that was observed |
referenceAllele | Σ | 0..1 | string | Allele in the reference sequence |
cigar | Σ | 0..1 | string | Extended CIGAR string for aligning the sequence with reference bases |
variantPointer | Σ | 0..1 | Reference(Observation) | Pointer to observed variant information |
observedSeq | Σ | 0..1 | string | Sequence that was observed |
quality | Σ | 0..* | BackboneElement | An set of value as quality of sequence |
type | Σ | 1..1 | code | indel | snp | unknown qualityType (Required) |
standardSequence | Σ | 0..1 | CodeableConcept | Standard sequence for comparison FDA-StandardSequence (Example) |
start | Σ | 0..1 | integer | Start position of the sequence |
end | Σ | 0..1 | integer | End position of the sequence |
score | Σ | 0..1 | Quantity | Quality score for the comparison |
method | Σ | 0..1 | CodeableConcept | Method to get quality FDA-Method (Example) |
truthTP | Σ | 0..1 | decimal | True positives from the perspective of the truth data |
queryTP | Σ | 0..1 | decimal | True positives from the perspective of the query data |
truthFN | Σ | 0..1 | decimal | False negatives |
queryFP | Σ | 0..1 | decimal | False positives |
gtFP | Σ | 0..1 | decimal | False positives where the non-REF alleles in the Truth and Query Call Sets match |
precision | Σ | 0..1 | decimal | Precision of comparison |
recall | Σ | 0..1 | decimal | Recall of comparison |
fScore | Σ | 0..1 | decimal | F-score |
readCoverage | Σ | 0..1 | integer | Average number of reads representing a given nucleotide in the reconstructed sequence |
repository | Σ | 0..* | BackboneElement | External repository which contains detailed report related with observedSeq in this resource |
type | Σ | 1..1 | code | directlink | openapi | login | oauth | other repositoryType (Required) |
url | Σ | 0..1 | uri | URI of the repository |
name | Σ | 0..1 | string | Repository's name |
datasetId | Σ | 0..1 | string | Id of the dataset that used to call for dataset in repository |
variantsetId | Σ | 0..1 | string | Id of the variantset that used to call for variantset in repository |
readsetId | Σ | 0..1 | string | Id of the read |
pointer | Σ | 0..* | Reference(Sequence) | Pointer to next atomic sequence |
Documentation for this format |
XML Template
<Sequence xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Unique ID for this particular sequence. This is a FHIR-defined id --></identifier> <type value="[code]"/><!-- 0..1 aa | dna | rna --> <coordinateSystem value="[integer]"/><!-- 1..1 Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) --> <patient><!-- 0..1 Reference(Patient) Who and/or what this is about --></patient> <specimen><!-- 0..1 Reference(Specimen) Specimen used for sequencing --></specimen> <device><!-- 0..1 Reference(Device) The method for sequencing --></device> <performer><!-- 0..1 Reference(Organization) Who should be responsible for test result --></performer> <quantity><!-- 0..1 Quantity The number of copies of the seqeunce of interest. (RNASeq) --></quantity> <referenceSeq> <!-- 0..1 A sequence used as reference --> <chromosome><!-- 0..1 CodeableConcept Chromosome containing genetic finding --></chromosome> <genomeBuild value="[string]"/><!-- 0..1 The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' --> <referenceSeqId><!-- 0..1 CodeableConcept Reference identifier --></referenceSeqId> <referenceSeqPointer><!-- 0..1 Reference(Sequence) A Pointer to another Sequence entity as reference sequence --></referenceSeqPointer> <referenceSeqString value="[string]"/><!-- 0..1 A string to represent reference sequence --> <strand value="[integer]"/><!-- 0..1 Directionality of DNA ( +1/-1) --> <windowStart value="[integer]"/><!-- 1..1 Start position of the window on the reference sequence --> <windowEnd value="[integer]"/><!-- 1..1 End position of the window on the reference sequence --> </referenceSeq> <variant> <!-- 0..* Variant in sequence --> <start value="[integer]"/><!-- 0..1 Start position of the variant on the reference sequence --> <end value="[integer]"/><!-- 0..1 End position of the variant on the reference sequence --> <observedAllele value="[string]"/><!-- 0..1 Allele that was observed --> <referenceAllele value="[string]"/><!-- 0..1 Allele in the reference sequence --> <cigar value="[string]"/><!-- 0..1 Extended CIGAR string for aligning the sequence with reference bases --> <variantPointer><!-- 0..1 Reference(Observation) Pointer to observed variant information --></variantPointer> </variant> <observedSeq value="[string]"/><!-- 0..1 Sequence that was observed --> <quality> <!-- 0..* An set of value as quality of sequence --> <type value="[code]"/><!-- 1..1 indel | snp | unknown --> <standardSequence><!-- 0..1 CodeableConcept Standard sequence for comparison --></standardSequence> <start value="[integer]"/><!-- 0..1 Start position of the sequence --> <end value="[integer]"/><!-- 0..1 End position of the sequence --> <score><!-- 0..1 Quantity Quality score for the comparison --></score> <method><!-- 0..1 CodeableConcept Method to get quality --></method> <truthTP value="[decimal]"/><!-- 0..1 True positives from the perspective of the truth data --> <queryTP value="[decimal]"/><!-- 0..1 True positives from the perspective of the query data --> <truthFN value="[decimal]"/><!-- 0..1 False negatives --> <queryFP value="[decimal]"/><!-- 0..1 False positives --> <gtFP value="[decimal]"/><!-- 0..1 False positives where the non-REF alleles in the Truth and Query Call Sets match --> <precision value="[decimal]"/><!-- 0..1 Precision of comparison --> <recall value="[decimal]"/><!-- 0..1 Recall of comparison --> <fScore value="[decimal]"/><!-- 0..1 F-score --> </quality> <readCoverage value="[integer]"/><!-- 0..1 Average number of reads representing a given nucleotide in the reconstructed sequence --> <repository> <!-- 0..* External repository which contains detailed report related with observedSeq in this resource --> <type value="[code]"/><!-- 1..1 directlink | openapi | login | oauth | other --> <url value="[uri]"/><!-- 0..1 URI of the repository --> <name value="[string]"/><!-- 0..1 Repository's name --> <datasetId value="[string]"/><!-- 0..1 Id of the dataset that used to call for dataset in repository --> <variantsetId value="[string]"/><!-- 0..1 Id of the variantset that used to call for variantset in repository --> <readsetId value="[string]"/><!-- 0..1 Id of the read --> </repository> <pointer><!-- 0..* Reference(Sequence) Pointer to next atomic sequence --></pointer> </Sequence>
JSON Template
{ "resourceType" : "Sequence", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Unique ID for this particular sequence. This is a FHIR-defined id "type" : "<code>", // aa | dna | rna "coordinateSystem" : <integer>, // R! Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) "patient" : { Reference(Patient) }, // Who and/or what this is about "specimen" : { Reference(Specimen) }, // Specimen used for sequencing "device" : { Reference(Device) }, // The method for sequencing "performer" : { Reference(Organization) }, // Who should be responsible for test result "quantity" : { Quantity }, // The number of copies of the seqeunce of interest. (RNASeq) "referenceSeq" : { // A sequence used as reference "chromosome" : { CodeableConcept }, // Chromosome containing genetic finding "genomeBuild" : "<string>", // The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' "referenceSeqId" : { CodeableConcept }, // Reference identifier "referenceSeqPointer" : { Reference(Sequence) }, // A Pointer to another Sequence entity as reference sequence "referenceSeqString" : "<string>", // A string to represent reference sequence "strand" : <integer>, // Directionality of DNA ( +1/-1) "windowStart" : <integer>, // R! Start position of the window on the reference sequence "windowEnd" : <integer> // R! End position of the window on the reference sequence }, "variant" : [{ // Variant in sequence "start" : <integer>, // Start position of the variant on the reference sequence "end" : <integer>, // End position of the variant on the reference sequence "observedAllele" : "<string>", // Allele that was observed "referenceAllele" : "<string>", // Allele in the reference sequence "cigar" : "<string>", // Extended CIGAR string for aligning the sequence with reference bases "variantPointer" : { Reference(Observation) } // Pointer to observed variant information }], "observedSeq" : "<string>", // Sequence that was observed "quality" : [{ // An set of value as quality of sequence "type" : "<code>", // R! indel | snp | unknown "standardSequence" : { CodeableConcept }, // Standard sequence for comparison "start" : <integer>, // Start position of the sequence "end" : <integer>, // End position of the sequence "score" : { Quantity }, // Quality score for the comparison "method" : { CodeableConcept }, // Method to get quality "truthTP" : <decimal>, // True positives from the perspective of the truth data "queryTP" : <decimal>, // True positives from the perspective of the query data "truthFN" : <decimal>, // False negatives "queryFP" : <decimal>, // False positives "gtFP" : <decimal>, // False positives where the non-REF alleles in the Truth and Query Call Sets match "precision" : <decimal>, // Precision of comparison "recall" : <decimal>, // Recall of comparison "fScore" : <decimal> // F-score }], "readCoverage" : <integer>, // Average number of reads representing a given nucleotide in the reconstructed sequence "repository" : [{ // External repository which contains detailed report related with observedSeq in this resource "type" : "<code>", // R! directlink | openapi | login | oauth | other "url" : "<uri>", // URI of the repository "name" : "<string>", // Repository's name "datasetId" : "<string>", // Id of the dataset that used to call for dataset in repository "variantsetId" : "<string>", // Id of the variantset that used to call for variantset in repository "readsetId" : "<string>" // Id of the read }], "pointer" : [{ Reference(Sequence) }] // Pointer to next atomic sequence }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Sequence; 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:Sequence.identifier [ Identifier ], ... ; # 0..* Unique ID for this particular sequence. This is a FHIR-defined id fhir:Sequence.type [ code ]; # 0..1 aa | dna | rna fhir:Sequence.coordinateSystem [ integer ]; # 1..1 Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end) fhir:Sequence.patient [ Reference(Patient) ]; # 0..1 Who and/or what this is about fhir:Sequence.specimen [ Reference(Specimen) ]; # 0..1 Specimen used for sequencing fhir:Sequence.device [ Reference(Device) ]; # 0..1 The method for sequencing fhir:Sequence.performer [ Reference(Organization) ]; # 0..1 Who should be responsible for test result fhir:Sequence.quantity [ Quantity ]; # 0..1 The number of copies of the seqeunce of interest. (RNASeq) fhir:Sequence.referenceSeq [ # 0..1 A sequence used as reference fhir:Sequence.referenceSeq.chromosome [ CodeableConcept ]; # 0..1 Chromosome containing genetic finding fhir:Sequence.referenceSeq.genomeBuild [ string ]; # 0..1 The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37' fhir:Sequence.referenceSeq.referenceSeqId [ CodeableConcept ]; # 0..1 Reference identifier fhir:Sequence.referenceSeq.referenceSeqPointer [ Reference(Sequence) ]; # 0..1 A Pointer to another Sequence entity as reference sequence fhir:Sequence.referenceSeq.referenceSeqString [ string ]; # 0..1 A string to represent reference sequence fhir:Sequence.referenceSeq.strand [ integer ]; # 0..1 Directionality of DNA ( +1/-1) fhir:Sequence.referenceSeq.windowStart [ integer ]; # 1..1 Start position of the window on the reference sequence fhir:Sequence.referenceSeq.windowEnd [ integer ]; # 1..1 End position of the window on the reference sequence ]; fhir:Sequence.variant [ # 0..* Variant in sequence fhir:Sequence.variant.start [ integer ]; # 0..1 Start position of the variant on the reference sequence fhir:Sequence.variant.end [ integer ]; # 0..1 End position of the variant on the reference sequence fhir:Sequence.variant.observedAllele [ string ]; # 0..1 Allele that was observed fhir:Sequence.variant.referenceAllele [ string ]; # 0..1 Allele in the reference sequence fhir:Sequence.variant.cigar [ string ]; # 0..1 Extended CIGAR string for aligning the sequence with reference bases fhir:Sequence.variant.variantPointer [ Reference(Observation) ]; # 0..1 Pointer to observed variant information ], ...; fhir:Sequence.observedSeq [ string ]; # 0..1 Sequence that was observed fhir:Sequence.quality [ # 0..* An set of value as quality of sequence fhir:Sequence.quality.type [ code ]; # 1..1 indel | snp | unknown fhir:Sequence.quality.standardSequence [ CodeableConcept ]; # 0..1 Standard sequence for comparison fhir:Sequence.quality.start [ integer ]; # 0..1 Start position of the sequence fhir:Sequence.quality.end [ integer ]; # 0..1 End position of the sequence fhir:Sequence.quality.score [ Quantity ]; # 0..1 Quality score for the comparison fhir:Sequence.quality.method [ CodeableConcept ]; # 0..1 Method to get quality fhir:Sequence.quality.truthTP [ decimal ]; # 0..1 True positives from the perspective of the truth data fhir:Sequence.quality.queryTP [ decimal ]; # 0..1 True positives from the perspective of the query data fhir:Sequence.quality.truthFN [ decimal ]; # 0..1 False negatives fhir:Sequence.quality.queryFP [ decimal ]; # 0..1 False positives fhir:Sequence.quality.gtFP [ decimal ]; # 0..1 False positives where the non-REF alleles in the Truth and Query Call Sets match fhir:Sequence.quality.precision [ decimal ]; # 0..1 Precision of comparison fhir:Sequence.quality.recall [ decimal ]; # 0..1 Recall of comparison fhir:Sequence.quality.fScore [ decimal ]; # 0..1 F-score ], ...; fhir:Sequence.readCoverage [ integer ]; # 0..1 Average number of reads representing a given nucleotide in the reconstructed sequence fhir:Sequence.repository [ # 0..* External repository which contains detailed report related with observedSeq in this resource fhir:Sequence.repository.type [ code ]; # 1..1 directlink | openapi | login | oauth | other fhir:Sequence.repository.url [ uri ]; # 0..1 URI of the repository fhir:Sequence.repository.name [ string ]; # 0..1 Repository's name fhir:Sequence.repository.datasetId [ string ]; # 0..1 Id of the dataset that used to call for dataset in repository fhir:Sequence.repository.variantsetId [ string ]; # 0..1 Id of the variantset that used to call for variantset in repository fhir:Sequence.repository.readsetId [ string ]; # 0..1 Id of the read ], ...; fhir:Sequence.pointer [ Reference(Sequence) ], ... ; # 0..* Pointer to next atomic sequence ]
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)
Path | Definition | Type | Reference |
---|---|---|---|
Sequence.type | Type if a sequence -- DNA, RNA, or amino acid sequence | Example | sequenceType |
Sequence.referenceSeq.chromosome | Chromosome number for human | Example | chromosome-human |
Sequence.referenceSeq.referenceSeqId | Reference identifier | Example | ENSEMBL |
Sequence.quality.type | Type for quality report | Required | qualityType |
Sequence.quality.standardSequence | Reference identifier of the sequence that used to mark the quality of tested samples. | Example | FDA-StandardSequence |
Sequence.quality.method | The method used to evaluate the numerical quality of the observed sequence. | Example | FDA-Method |
Sequence.repository.type | Type for access of external URI | Required | repositoryType |
When saving the variant information, the nucleic acid will be numbered with order. Some files are using 0-based coordiantes (e.g. BCD file format) while some files are using 1-based coordinates (e.g. VCF file format) . The element coordinateSystem in Sequence Resource contains this information.
Sequence.coordinateSystem constraints within two possible values: 0 for 0-based system, which will mark the sequence from number 0, while 1 for 1-based system, which will begin marking the first position with number 1. The significant difference between two system is the end position. In 0-based system, the end position is exclusive , which means the last position will not be contained in the sequence window while in 1-based system, the end position is inclusive , which means the last position is included in the sequence window. Note both systems has an inclusive start position.
For example, ACGTGCAT will be numbered from 1 to 8 in 1-based system and will be numbered from 0 to 8 in 0-based system to mark flanks (i.e. place between two Nucleotide). So the interval [3,5] in 1-based system is GTG while interval [2,5) in 0-based system is same segment GTG.
There are lots of definition concerning with the Directionality of DNA or RNA. Here strand element in Sequence resource is defined to have constraints with value +1 and -1 , to indicate what is the direction for nucleotide series. In order to avoid confusion, we use +1 to express the "plus" strand (5' to 3') and -1 to express the "minus" strand (3' to 5'). Here is a very simple mapping that indicates which number the expression will be represented.
+1 | -1 |
Watson | Crick |
Sense | Antisense |
positive | negative |
Here is a small-scale example: if 5' GCGATATCGCAAA 3' is the data, then GC..AAA is plus strand while AAA..CG is the minus strand.
We hope that string of observedSeq can be constrained more than just any normal string but with notation tables. Here we present what the nucleotide acid stirng should be constrianed within the range:
A --> adenosine | M --> A C (amino) | U --> uridine | H --> A C T | V --> G C A |
C --> cytidine | S --> G C (strong) | D --> G A T | K --> G T (keto) | |
G --> guanine | W --> A T (weak) | R --> G A (purine) | N --> A G C T (any) | |
T --> thymidine | B --> G T C | Y --> T C (pyrimidine) | - --> gap of indeterminate length |
A alanine | P proline | B aspartate or asparagine | Q glutamine |
C cystine | R arginine | D aspartate | S serine |
E glutamate | T threonine | F phenylalanine | U selenocysteine |
G glycine | V valine | H histidine | W tryptophan |
I isoleucine | Y tyrosine | K lysine | Z glutamate or glutamine |
L leucine | X any | M methionine | * translation stop |
N asparagine | - gap of indeterminate length |
Search parameters for 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 |
chromosome | token | Chromosome number of the reference sequence | Sequence.referenceSeq.chromosome | |
coordinate | composite | Search parameter for region of the reference DNA sequence string. This will refer to part of a locus or part of a gene where search region will be represented in 1-based system. Since the coordinateSystem can either be 0-based or 1-based, this search query will include the result of both coordinateSystem that contains the equivalent segment of the gene or whole genome sequence. For example, a search for sequence can be represented as `coordinate=1$lt345$gt123`, this means it will search for the Sequence resource on chromosome 1 and with position >123 and <345, where in 1-based system resource, all strings within region 1:124-344 will be revealed, while in 0-based system resource, all strings within region 1:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above. | Sequence.variant | |
end | number | End position (0-based exclusive, which menas the acid at this position will not be included, 1-based inclusive, which means the acid at this position will be included) of the reference sequence. | Sequence.referenceSeq.windowEnd | |
identifier | token | The unique identity for a particular sequence | Sequence.identifier | |
patient | reference | The subject that the observation is about | Sequence.patient (Patient) | |
start | number | Start position (0-based inclusive, 1-based inclusive, that means the nucleic acid or amino acid at this position will be included) of the reference sequence. | Sequence.referenceSeq.windowStart | |
type | token | Amino Acid Sequence/ DNA Sequence / RNA Sequence | Sequence.type |