SubstanceNucleicAcid — Structure of a nucleic acid
One of the five chemical-substance structuring resources in FHIR R5. Describes precisely the sequence, modifications and chemistry of a nucleic acid — DNA, RNA, therapeutic oligonucleotides (antisense, siRNA, mRNA vaccine).
Purpose of the resource
For a medicinal product to be uniquely identified by regulatory agencies, its active substance must be described with molecular precision. For modern biotherapeutics — antisense oligonucleotides (Spinraza, Eteplirsen), siRNAs (Patisiran, Inclisiran), mRNA vaccines (Comirnaty, Spikevax) — that description rests on sequence and chemical modifications. SubstanceNucleicAcid is the formal structure that carries that information.
The resource is not aimed at everyday clinical applications (EHRs do not handle the active sequence of Comirnaty). It feeds regulatory dossiers (eCTD), IDMP databases, FDA Structured Product Labeling (SPL), and global substance ledgers (GSRS, UNII).
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
sequenceType | CodeableConcept | 0..1 | Nucleic acid type: DNA, RNA, cDNA, mRNA, siRNA… |
numberOfSubunits | integer | 0..1 | Number of subunits (1 = single-stranded, 2 = double-stranded). |
areaOfHybridisation | string | 0..1 | Narrative description of the hybridisation area. |
oligoNucleotideType | CodeableConcept | 0..1 | Oligonucleotide type: antisense, siRNA, aptamer, gapmer… |
subunit | BackboneElement[] | 0..* | One entry per subunit. A single one for single-strand; two for double-strand. |
subunit.subunit | integer | 0..1 | Subunit index (1, 2…). |
subunit.sequence | string | 0..1 | Sequence in IUPAC notation (A, U/T, G, C…). |
subunit.length | integer | 0..1 | Length (nucleotides). |
subunit.sequenceAttachment | Attachment | 0..1 | Sequence carried as an attachment (FASTA, GenBank…). |
subunit.fivePrime | CodeableConcept | 0..1 | 5' end (phosphate, hydroxyl, methyl, cap…). |
subunit.threePrime | CodeableConcept | 0..1 | 3' end (hydroxyl, phosphate, polyA…). |
subunit.linkage | BackboneElement[] | 0..* | Inter-nucleotide linkage type (phosphodiester, phosphorothioate…) — key for ASOs. |
subunit.sugar | BackboneElement[] | 0..* | Sugar type (ribose, deoxyribose, 2'-O-methyl, LNA, MOE…). |
JSON example
A 20-nucleotide single-stranded antisense oligonucleotide with ribose sugar and standard phosphodiester linkages:
{
"resourceType": "SubstanceNucleicAcid",
"id": "example-oligo",
"sequenceType": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/sequence-type",
"code": "RNA",
"display": "RNA"
}]
},
"numberOfSubunits": 1,
"areaOfHybridisation": "Single-stranded therapeutic oligonucleotide, 20 nt",
"oligoNucleotideType": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/oligo-type",
"code": "antisense",
"display": "Antisense oligonucleotide"
}]
},
"subunit": [{
"subunit": 1,
"sequence": "AUGCUUACGGGAUCUGAUAA",
"length": 20,
"sequenceAttachment": {
"contentType": "text/plain",
"data": "QVVHQ1VVQUNHR0dBVUNUR0FVQUE="
},
"fivePrime": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/sequence-five-prime",
"code": "phosphate"
}]
},
"threePrime": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/sequence-three-prime",
"code": "hydroxyl"
}]
},
"linkage": [{
"connectivity": "5'-3' phosphodiester linkage",
"identifier": { "value": "PO" },
"name": "Standard phosphodiester",
"residueSite": "all"
}],
"sugar": [{
"identifier": { "value": "ribose" },
"name": "Beta-D-ribose",
"residueSite": "all"
}]
}]
} Typical use cases
- IDMP / eCTD registration: registration substance for an RNA medicine.
- SubstanceDefinition: block referenced by
SubstanceDefinition.structureto describe chemistry. - Early-access schemes: declare active substance inside an early-access dossier.
- GSRS (Global Substance Registration System): import / export.
- UNII / DailyMed FDA: link to American SPLs.
Common pitfalls
- Inline sequence too long: for sequences >200 nt, prefer
sequenceAttachmentwith an external FASTA file over inlinesequence(resource size limit). - Non-strict A/U/G/C/T IUPAC notation: extended IUPAC codes (N, R, Y, K…) are allowed but must be documented in
areaOfHybridisation. - Undeclared phosphorothioate: for antisense (ASO) drugs where every linkage is phosphorothioate, omitting that information makes the substance regulatorily unidentifiable.
- Confusion between
SubstanceNucleicAcidandMolecularSequence: MolecularSequence is for patient data (somatic variant, individual genome sequence). SubstanceNucleicAcid describes an industrial substance. - Double strand without matching: for a siRNA, the two subunits must have complementary lengths and sequences (implicit pairing to validate).
Related resources
- SubstanceDefinition — references this block via
structure. - SubstancePolymer, SubstanceProtein, SubstanceReferenceInformation, SubstanceSourceMaterial — the other IDMP substance chemistry resources.
- MedicinalProductDefinition — the authorised medicinal product containing this substance.
- MolecularSequence — patient-side equivalent (variants, clinical sequences).
See also: SubstanceDefinition — the global definition of a substance and MedicinalProductDefinition — the authorised medicinal product.