<!-- FORMAT ********************************************************** --> <!-- RNAML: The root of any rnaml document. ************************** --> <!ELEMENT rnaml (molecule | molecule-class | interactions | reference | database-entry | analysis | revision)*> <!ATTLIST rnaml version (1.1) #REQUIRED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- MOLECULE: A given RNA molecule. ********************************* --> <!ELEMENT molecule (identity?, sequence*, structure?)> <!ATTLIST molecule id ID #REQUIRED type (rna | dna) "rna" comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- IDENTITY: The symbolic description of the RNA molecule. --> <!ELEMENT identity (name, taxonomy?)> <!ATTLIST identity comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT name (#PCDATA)> <!-- type: string --> <!-- SEQUENCE: A description of the rna sequence. --> <!ELEMENT sequence (numbering-system*, seq-data?, seq-annotation?)> <!ATTLIST sequence strand CDATA #IMPLIED length CDATA #IMPLIED circular (true | false) #IMPLIED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- NUMBERING SYSTEM: A numbering-system provides how the bases are --> <!-- numbered. used-in-file indicates if the numbering-system is the --> <!-- one used throughout the file. If no numbering system is provided --> <!-- or used-in-file, the numbering from 1 to N is used. --> <!ELEMENT numbering-system ((numbering-range)* | numbering-table)> <!ATTLIST numbering-system id ID #REQUIRED used-in-file (true | false) "false" comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT numbering-range (start, (end | length))> <!ATTLIST numbering-range comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT numbering-table (#PCDATA)> <!-- type: space delimited integers --> <!ATTLIST numbering-table length CDATA #REQUIRED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- SEQ-DATA: The actual data for a sequence. The IUPAC (1984) --> <!-- symbols should be used: --> <!-- G=G, A=A, U=U, C=C, R=G|A, Y=U|C, M=A|C, K=G|U, --> <!-- S=G|C, W=A|U, H=A|C|U, B=G|U|C, --> <!-- V=G|C|A, D=G|A|U, N=G|A|U|C --> <!ELEMENT seq-data (#PCDATA)> <!-- type: string --> <!ATTLIST seq-data comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- SEQ-ANNOTATION --> <!ELEMENT seq-annotation (modification | segment)*> <!ATTLIST seq-annotation comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT modification (base-id, modified-type)> <!ATTLIST modification comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT modified-type (#PCDATA)> <!-- type: string --> <!ELEMENT segment (seg-name?, base-id-5p, (base-id-3p | length))> <!ATTLIST segment comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT seg-name (#PCDATA)> <!-- type: string --> <!-- STRUCTURE: A description of the structure of the rna. --> <!-- name: A description of the structure. --> <!ELEMENT structure (model)*> <!ATTLIST structure comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- MODEL: A model for the RNA structure. --> <!ELEMENT model (model-info?, base*, str-annotation?, secondary-structure-display?)> <!ATTLIST model id ID #IMPLIED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT model-info (method?, resolution?, free-energy*)> <!ATTLIST model-info comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT method (#PCDATA)> <!-- type: string --> <!ATTLIST method comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT resolution (#PCDATA)> <!-- type: float, unit: angstroms --> <!ATTLIST resolution comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT free-energy (#PCDATA)> <!-- type: float, unit: kcal/mole --> <!ATTLIST free-energy comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- BASE: A base is a residue in secondary or tertiary structure. --> <!ELEMENT base (strand?, position, base-type?, alt-loc?, insertion?, atom*)> <!ATTLIST base comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT base-type (#PCDATA)> <!-- type: string --> <!ELEMENT alt-loc (#PCDATA)> <!-- type: char --> <!ELEMENT insertion (#PCDATA)> <!-- type: char --> <!-- ATOM: An atom with support for PDB fields. --> <!ELEMENT atom (atom-type, coordinates?, occupancy?, temp-factor?, seg-id?, element?, charge?)> <!ATTLIST atom serial CDATA #IMPLIED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT atom-type (#PCDATA)> <!-- type: string --> <!ELEMENT coordinates (#PCDATA)> <!-- three space delimited floats --> <!ELEMENT occupancy (#PCDATA)> <!-- type: float --> <!ELEMENT temp-factor (#PCDATA)> <!-- type: float --> <!ELEMENT seg-id (#PCDATA)> <!-- type: string --> <!ELEMENT element (#PCDATA)> <!-- type: string --> <!ELEMENT charge (#PCDATA)> <!-- type: string --> <!-- STR-ANNOTATION: --> <!ELEMENT str-annotation ((base-conformation | base-pair | base-triple | base-stack | helix | pseudoknot | single-strand | distance-constraint | surface-constraint)*)> <!ATTLIST str-annotation comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- BASE-CONFORMATION: --> <!ELEMENT base-conformation (base-id, pucker?, glycosyl?, base-torsion-angles?)> <!ATTLIST base-conformation comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT pucker (#PCDATA)> <!-- type: string --> <!ELEMENT glycosyl (#PCDATA)> <!-- type: string --> <!ELEMENT base-torsion-angles (alpha?, beta?, gamma?, delta?, epsilon?, zeta?, chi?, nu0?, nu1?, nu2?, nu3?, nu4?)> <!ATTLIST base-torsion-angles comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT alpha (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT beta (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT gamma (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT delta (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT epsilon (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT zeta (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT chi (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT nu0 (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT nu1 (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT nu2 (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT nu3 (#PCDATA)> <!-- type: float, unit: degrees --> <!ELEMENT nu4 (#PCDATA)> <!-- type: float, unit: degrees --> <!-- BASE-PAIR: A base pair requires two bases from the same molecule --> <!-- (molecule id unnecessary) or from two molecules. --> <!ELEMENT base-pair (base-id-5p, base-id-3p, edge-5p?, edge-3p?, bond-orientation?, strand-orientation?)> <!ATTLIST base-pair comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT base-id-5p (base-id)> <!-- type: string --> <!ELEMENT base-id-3p (base-id)> <!-- type: string --> <!ELEMENT edge-5p (#PCDATA)> <!-- type: string --> <!ELEMENT edge-3p (#PCDATA)> <!-- type: string --> <!ELEMENT bond-orientation (#PCDATA)> <!-- type: string --> <!ELEMENT strand-orientation (#PCDATA)> <!-- type: string --> <!-- BASE-TRIPLE: A base triple is formed of two or three base-pairs. --> <!ELEMENT base-triple ((base-pair | base-pair-id), (base-pair | base-pair-id), (base-pair | base-pair-id))> <!ATTLIST base-triple comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- BASE-STACK: --> <!ELEMENT base-stack (base-id, base-id)> <!ATTLIST base-stack comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- HELIX: --> <!ELEMENT helix (base-id-5p, base-id-3p, length)> <!ATTLIST helix id ID #IMPLIED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- PSEUDOKNOT: --> <!ELEMENT pseudoknot (helix-id, helix-id)> <!ATTLIST pseudoknot comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT helix-id EMPTY> <!ATTLIST helix-id ref IDREF #REQUIRED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- SINGLE-STRAND: A single strand is a segment! --> <!ELEMENT single-strand (segment)> <!ATTLIST single-strand comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- DISTANCE-CONSTRAINT: --> <!ELEMENT distance-constraint (base-id, atom-type, base-id, atom-type, mean, range?, weight?)> <!ATTLIST distance-constraint comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT mean (#PCDATA)> <!-- type: float, unit: angstroms --> <!ELEMENT range (#PCDATA)> <!-- type: float, unit: angstroms --> <!ELEMENT weight (#PCDATA)> <!-- type: float --> <!-- SURFACE-CONSTRAINT: --> <!ELEMENT surface-constraint (base-id, atom-type, surface-value?)> <!ATTLIST surface-constraint comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT surface-value (#PCDATA)> <!-- type: float --> <!-- SECONDARY-STRUCTURE-DISPLAY --> <!-- X,Y coordinates can be defined for the sequence and then --> <!-- used to display the secondary structure. --> <!ELEMENT secondary-structure-display (ss-base-coord)*> <!ATTLIST secondary-structure-display comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- This provides an x,y position for a base. --> <!ELEMENT ss-base-coord (base-id, coordinates)> <!ATTLIST ss-base-coord comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- MOLECULE-CLASS ************************************************** --> <!-- A molecule-class is used to group molecules that represents --> <!-- the same RNA in various organisms. The numbering system is a --> <!-- numbering accepted in all molecules of the class and used in the --> <!-- alignment. --> <!ELEMENT molecule-class (identity?, (molecule | molecule-id | numbering-system | consensus-molecule | alignment)*)> <!ATTLIST molecule-class comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- CONSENSUS MOLECULE: --> <!ELEMENT consensus-molecule (alignment-id, molecule)> <!ATTLIST consensus-molecule comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- ALIGNMENT: An alignment is defined explicitly by using a --> <!-- numbering table. --> <!ELEMENT alignment (ali-sequence*)> <!ATTLIST alignment id ID #REQUIRED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- ALI-SEQUENCE: A sequence description in the alignment --> <!ELEMENT ali-sequence (molecule-id, seq-data)> <!ATTLIST ali-sequence comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- INTERACTIONS represent chemical interactions between two --> <!-- molecule and is implemented as structural annotation of the --> <!-- corresponding structures. --> <!ELEMENT interactions (str-annotation)*> <!ATTLIST interactions comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- TAXONOMY: The identification of the molecule. --> <!ELEMENT taxonomy (domain?, kingdom?, phylum?, class?, order?, family?, genus?, species?, strain?)> <!ATTLIST taxonomy comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT domain (#PCDATA)> <!-- type: string --> <!ELEMENT kingdom (#PCDATA)> <!-- type: string --> <!ELEMENT phylum (#PCDATA)> <!-- type: string --> <!ELEMENT class (#PCDATA)> <!-- type: string --> <!ELEMENT order (#PCDATA)> <!-- type: string --> <!ELEMENT family (#PCDATA)> <!-- type: string --> <!ELEMENT genus (#PCDATA)> <!-- type: string --> <!ELEMENT species (#PCDATA)> <!-- type: string --> <!ELEMENT strain (#PCDATA)> <!-- type: string --> <!-- REFERENCE: --> <!ELEMENT reference (author | title | journal | date | pubmed-id | book-title | editor | volume | issue | pages | path)*> <!ATTLIST reference id ID #REQUIRED comment CDATA #IMPLIED> <!ELEMENT author (person)> <!ELEMENT title (#PCDATA)> <!-- type: string --> <!ELEMENT journal (#PCDATA)> <!-- type: string --> <!ELEMENT pubmed-id (#PCDATA)> <!-- type: string --> <!ELEMENT book-title (#PCDATA)> <!-- type: string --> <!ELEMENT editor (#PCDATA)> <!-- type: string --> <!ELEMENT volume (#PCDATA)> <!-- type: integer --> <!ELEMENT issue (#PCDATA)> <!-- type: integer --> <!ELEMENT pages (#PCDATA)> <!-- type: comma delimited integers--> <!-- DATABASE-ENTRY: --> <!ELEMENT database-entry (database, entry, path?)> <!ATTLIST database-entry id ID #REQUIRED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!ELEMENT database (#PCDATA)> <!-- type: string --> <!ELEMENT entry (#PCDATA)> <!-- type: string --> <!-- ANALYSIS: --> <!ELEMENT analysis (program | date | author | reference)*> <!ATTLIST analysis id ID #REQUIRED comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- REVISION: --> <!ELEMENT revision (#PCDATA | date)*> <!ATTLIST revision comment CDATA #IMPLIED reference-ids IDREFS #IMPLIED analysis-ids IDREFS #IMPLIED database-ids IDREFS #IMPLIED> <!-- GENERAL ELEMENTS ************************************************ --> <!ELEMENT url (#PCDATA)> <!-- type: string --> <!ELEMENT file (#PCDATA)> <!-- type: string --> <!ELEMENT path (url | file)> <!ELEMENT person (first-name, last-name, affiliation*)> <!ELEMENT first-name (#PCDATA)> <!-- type: string --> <!ELEMENT last-name (#PCDATA)> <!-- type: string --> <!ELEMENT affiliation (#PCDATA)> <!-- type: string --> <!ELEMENT program (prog-name | prog-version | reference)*> <!ELEMENT prog-name (#PCDATA)> <!-- type: string --> <!ELEMENT prog-version (#PCDATA)> <!-- type: string --> <!ELEMENT date (day?, month?, year)> <!ELEMENT day (#PCDATA)> <!-- type: integer --> <!ELEMENT month (#PCDATA)> <!-- type: integer --> <!ELEMENT year (#PCDATA)> <!-- type: integer --> <!ELEMENT position (#PCDATA)> <!-- type: integer --> <!ELEMENT start (#PCDATA)> <!-- type: integer --> <!ELEMENT end (#PCDATA)> <!-- type: integer --> <!ELEMENT length (#PCDATA)> <!-- type: integer --> <!ELEMENT base-id (molecule-id?, model-id?, strand?, position)> <!ELEMENT molecule-id EMPTY> <!ATTLIST molecule-id ref IDREF #REQUIRED> <!ELEMENT model-id EMPTY> <!ATTLIST model-id ref IDREF #IMPLIED> <!ELEMENT strand (#PCDATA)> <!-- type: string --> <!ELEMENT base-pair-id EMPTY> <!ATTLIST base-pair-id ref IDREF #REQUIRED> <!ELEMENT alignment-id EMPTY> <!ATTLIST alignment-id ref IDREF #REQUIRED> |