bio-nexml 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/Gemfile +15 -0
  2. data/Gemfile.lock +24 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.rdoc +47 -0
  5. data/Rakefile +55 -0
  6. data/TODO.txt +6 -0
  7. data/VERSION +1 -0
  8. data/bio-nexml.gemspec +126 -0
  9. data/extconf.rb +2 -0
  10. data/lib/bio-nexml.rb +0 -0
  11. data/lib/bio.rb +321 -0
  12. data/lib/bio/db/nexml.rb +109 -0
  13. data/lib/bio/db/nexml/mapper.rb +113 -0
  14. data/lib/bio/db/nexml/mapper/framework.rb +157 -0
  15. data/lib/bio/db/nexml/mapper/inflection.rb +99 -0
  16. data/lib/bio/db/nexml/mapper/repository.rb +59 -0
  17. data/lib/bio/db/nexml/matrix.rb +1046 -0
  18. data/lib/bio/db/nexml/parser.rb +622 -0
  19. data/lib/bio/db/nexml/schema/README.txt +21 -0
  20. data/lib/bio/db/nexml/schema/abstract.xsd +159 -0
  21. data/lib/bio/db/nexml/schema/characters/README.txt +1 -0
  22. data/lib/bio/db/nexml/schema/characters/abstractcharacters.xsd +361 -0
  23. data/lib/bio/db/nexml/schema/characters/characters.xsd +22 -0
  24. data/lib/bio/db/nexml/schema/characters/continuous.xsd +190 -0
  25. data/lib/bio/db/nexml/schema/characters/dna.xsd +282 -0
  26. data/lib/bio/db/nexml/schema/characters/protein.xsd +280 -0
  27. data/lib/bio/db/nexml/schema/characters/restriction.xsd +239 -0
  28. data/lib/bio/db/nexml/schema/characters/rna.xsd +283 -0
  29. data/lib/bio/db/nexml/schema/characters/standard.xsd +261 -0
  30. data/lib/bio/db/nexml/schema/external/sawsdl.xsd +21 -0
  31. data/lib/bio/db/nexml/schema/external/xhtml-datatypes-1.xsd +177 -0
  32. data/lib/bio/db/nexml/schema/external/xlink.xsd +75 -0
  33. data/lib/bio/db/nexml/schema/external/xml.xsd +145 -0
  34. data/lib/bio/db/nexml/schema/meta/README.txt +2 -0
  35. data/lib/bio/db/nexml/schema/meta/annotations.xsd +100 -0
  36. data/lib/bio/db/nexml/schema/meta/meta.xsd +294 -0
  37. data/lib/bio/db/nexml/schema/nexml.xsd +104 -0
  38. data/lib/bio/db/nexml/schema/taxa/README.txt +2 -0
  39. data/lib/bio/db/nexml/schema/taxa/taxa.xsd +39 -0
  40. data/lib/bio/db/nexml/schema/trees/README.txt +2 -0
  41. data/lib/bio/db/nexml/schema/trees/abstracttrees.xsd +135 -0
  42. data/lib/bio/db/nexml/schema/trees/network.xsd +113 -0
  43. data/lib/bio/db/nexml/schema/trees/tree.xsd +149 -0
  44. data/lib/bio/db/nexml/schema/trees/trees.xsd +36 -0
  45. data/lib/bio/db/nexml/taxa.rb +147 -0
  46. data/lib/bio/db/nexml/trees.rb +663 -0
  47. data/lib/bio/db/nexml/writer.rb +265 -0
  48. data/test/data/nexml/test.xml +69 -0
  49. data/test/test_bio-nexml.rb +17 -0
  50. data/test/unit/bio/db/nexml/tc_factory.rb +119 -0
  51. data/test/unit/bio/db/nexml/tc_mapper.rb +78 -0
  52. data/test/unit/bio/db/nexml/tc_matrix.rb +551 -0
  53. data/test/unit/bio/db/nexml/tc_parser.rb +21 -0
  54. data/test/unit/bio/db/nexml/tc_taxa.rb +118 -0
  55. data/test/unit/bio/db/nexml/tc_trees.rb +370 -0
  56. data/test/unit/bio/db/nexml/tc_writer.rb +633 -0
  57. metadata +253 -0
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema
3
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="http://www.nexml.org/2009"
5
+ xmlns="http://www.nexml.org/2009"
6
+ elementFormDefault="qualified">
7
+ <xs:annotation>
8
+ <xs:documentation>
9
+ This module aggregates the subclass definitions for the different
10
+ datatypes "<a href="../continuous">continuous</a>",
11
+ "<a href="../dna">dna</a>", "<a href="../protein">protein</a>",
12
+ "<a href="../restriction">restriction</a>", "<a href="../rna">rna</a>"
13
+ and "<a href="../standard">standard</a>".
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+ <xs:include schemaLocation="continuous.xsd"/>
17
+ <xs:include schemaLocation="dna.xsd"/>
18
+ <xs:include schemaLocation="protein.xsd"/>
19
+ <xs:include schemaLocation="restriction.xsd"/>
20
+ <xs:include schemaLocation="rna.xsd"/>
21
+ <xs:include schemaLocation="standard.xsd"/>
22
+ </xs:schema>
@@ -0,0 +1,190 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema
3
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="http://www.nexml.org/2009"
5
+ xmlns="http://www.nexml.org/2009"
6
+ xmlns:sawsdl="http://www.w3.org/ns/sawsdl"
7
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
8
+ elementFormDefault="qualified">
9
+ <xs:annotation>
10
+ <xs:documentation>
11
+ This module defines concrete subclasses for the
12
+ <a href="../abstract">abstract</a> character matrix components
13
+ that all character matrices must implement. The subclasses
14
+ defined here apply to continuous-valued character data, such as
15
+ length or width measurements. In a verbose notation, this data
16
+ is represented as the "state" attribute of the &lt;cell&gt;
17
+ element. In a compact notation, the same data is represented as
18
+ a sequence of space-separated floating point numbers.
19
+ </xs:documentation>
20
+ </xs:annotation>
21
+
22
+ <xs:include schemaLocation="abstractcharacters.xsd"/>
23
+
24
+
25
+ <xs:simpleType name="ContinuousToken">
26
+ <xs:restriction base="xs:float"/>
27
+ </xs:simpleType>
28
+
29
+ <xs:complexType name="ContinuousChar" sawsdl:modelReference="http://evolutionaryontology-dev.nescent.org/cdao.owl#ContinuousCharacter">
30
+ <xs:annotation>
31
+ <xs:documentation>
32
+ A concrete implementation of the char element, which requires
33
+ only an id attribute.
34
+ </xs:documentation>
35
+ <xs:appinfo>Continuous_Character</xs:appinfo>
36
+ </xs:annotation>
37
+ <xs:complexContent>
38
+ <xs:restriction base="AbstractChar">
39
+ <xs:sequence minOccurs="1" maxOccurs="1">
40
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
41
+ </xs:sequence>
42
+ <xs:attribute name="states" type="xs:IDREF" use="prohibited"/>
43
+ <xs:attribute name="codon" type="CodonPosition" use="prohibited"/>
44
+ <xs:attribute name="tokens" type="MSTokenLength" use="prohibited"/>
45
+ </xs:restriction>
46
+ </xs:complexContent>
47
+ </xs:complexType>
48
+
49
+ <xs:complexType name="ContinuousFormat" abstract="false">
50
+ <xs:annotation>
51
+ <xs:documentation>
52
+ The ContinuousFormat class is the container of continuous column definitions.
53
+ </xs:documentation>
54
+ </xs:annotation>
55
+ <xs:complexContent>
56
+ <xs:restriction base="AbstractFormat">
57
+ <xs:sequence minOccurs="1" maxOccurs="1">
58
+ <xs:element name="char" type="ContinuousChar" minOccurs="1" maxOccurs="unbounded"/>
59
+ </xs:sequence>
60
+ </xs:restriction>
61
+ </xs:complexContent>
62
+ </xs:complexType>
63
+
64
+ <xs:complexType name="ContinuousObs" abstract="false" sawsdl:modelReference="http://evolutionaryontology-dev.nescent.org/cdao.owl#ContinuousStateDatum">
65
+ <xs:annotation>
66
+ <xs:documentation>
67
+ This is a single cell in a matrix containing a continuous
68
+ observation.
69
+ </xs:documentation>
70
+ <xs:appinfo>Continuous_State_Datum</xs:appinfo>
71
+ </xs:annotation>
72
+ <xs:complexContent>
73
+ <xs:restriction base="AbstractObs">
74
+ <xs:sequence minOccurs="1" maxOccurs="1">
75
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
76
+ </xs:sequence>
77
+ <xs:attribute name="char" use="required" type="xs:IDREF"/>
78
+ <xs:attribute name="state" use="required" type="ContinuousToken"/>
79
+ </xs:restriction>
80
+ </xs:complexContent>
81
+ </xs:complexType>
82
+
83
+ <xs:simpleType name="ContinuousSeq">
84
+ <xs:annotation>
85
+ <xs:documentation>
86
+ This is a simple type that specifies
87
+ a list of xs:float characters.
88
+ </xs:documentation>
89
+ </xs:annotation>
90
+ <!--<xs:list itemType="xs:float"/>-->
91
+ <xs:restriction base="AbstractTokenList"/>
92
+ </xs:simpleType>
93
+
94
+ <xs:complexType name="ContinuousMatrixSeqRow" abstract="false">
95
+ <xs:annotation>
96
+ <xs:documentation>
97
+ This is a row in a matrix of continuous data as character sequences.
98
+ </xs:documentation>
99
+ </xs:annotation>
100
+ <xs:complexContent>
101
+ <xs:restriction base="AbstractSeqRow">
102
+ <xs:sequence minOccurs="1" maxOccurs="1">
103
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
104
+ <xs:element name="seq" minOccurs="1" maxOccurs="1" type="ContinuousSeq"/>
105
+ </xs:sequence>
106
+ </xs:restriction>
107
+ </xs:complexContent>
108
+ </xs:complexType>
109
+
110
+ <xs:complexType name="ContinuousMatrixObsRow" abstract="false">
111
+ <xs:annotation>
112
+ <xs:documentation>
113
+ This is a row in a matrix of continuous data as granular obervations.
114
+ </xs:documentation>
115
+ </xs:annotation>
116
+ <xs:complexContent>
117
+ <xs:restriction base="AbstractObsRow">
118
+ <xs:sequence minOccurs="1" maxOccurs="1">
119
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
120
+ <xs:element name="cell" minOccurs="1" maxOccurs="unbounded" type="ContinuousObs"/>
121
+ </xs:sequence>
122
+ </xs:restriction>
123
+ </xs:complexContent>
124
+ </xs:complexType>
125
+
126
+ <xs:complexType name="ContinuousSeqMatrix" abstract="false">
127
+ <xs:annotation>
128
+ <xs:documentation>
129
+ A matrix of rows with seq strings of type continuous.
130
+ </xs:documentation>
131
+ </xs:annotation>
132
+ <xs:complexContent>
133
+ <xs:restriction base="AbstractSeqMatrix">
134
+ <xs:sequence minOccurs="1" maxOccurs="1">
135
+ <xs:element name="row" minOccurs="1" maxOccurs="unbounded" type="ContinuousMatrixSeqRow"/>
136
+ </xs:sequence>
137
+ </xs:restriction>
138
+ </xs:complexContent>
139
+ </xs:complexType>
140
+
141
+ <xs:complexType name="ContinuousObsMatrix" abstract="false">
142
+ <xs:annotation>
143
+ <xs:documentation>
144
+ A matrix of rows with single character observations.
145
+ </xs:documentation>
146
+ </xs:annotation>
147
+ <xs:complexContent>
148
+ <xs:restriction base="AbstractObsMatrix">
149
+ <xs:sequence minOccurs="1" maxOccurs="1">
150
+ <xs:element name="row" minOccurs="1" maxOccurs="unbounded" type="ContinuousMatrixObsRow"/>
151
+ </xs:sequence>
152
+ </xs:restriction>
153
+ </xs:complexContent>
154
+ </xs:complexType>
155
+
156
+ <xs:complexType name="ContinuousSeqs" abstract="false">
157
+ <xs:annotation>
158
+ <xs:documentation>
159
+ A continuous characters block consisting of float sequences preceded by metadata.
160
+ </xs:documentation>
161
+ </xs:annotation>
162
+ <xs:complexContent>
163
+ <xs:restriction base="AbstractSeqs">
164
+ <xs:sequence minOccurs="1" maxOccurs="1">
165
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
166
+ <xs:element name="format" minOccurs="1" maxOccurs="1" type="ContinuousFormat"/>
167
+ <xs:element name="matrix" minOccurs="1" maxOccurs="1" type="ContinuousSeqMatrix"/>
168
+ </xs:sequence>
169
+ </xs:restriction>
170
+ </xs:complexContent>
171
+ </xs:complexType>
172
+
173
+ <xs:complexType name="ContinuousCells" abstract="false">
174
+ <xs:annotation>
175
+ <xs:documentation>
176
+ A continuous characters block consisting of granular cells preceded by metadata.
177
+ </xs:documentation>
178
+ </xs:annotation>
179
+ <xs:complexContent>
180
+ <xs:restriction base="AbstractCells">
181
+ <xs:sequence minOccurs="1" maxOccurs="1">
182
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
183
+ <xs:element name="format" minOccurs="1" maxOccurs="1" type="ContinuousFormat"/>
184
+ <xs:element name="matrix" minOccurs="1" maxOccurs="1" type="ContinuousObsMatrix"/>
185
+ </xs:sequence>
186
+ </xs:restriction>
187
+ </xs:complexContent>
188
+ </xs:complexType>
189
+
190
+ </xs:schema>
@@ -0,0 +1,282 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema
3
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="http://www.nexml.org/2009"
5
+ xmlns="http://www.nexml.org/2009"
6
+ xmlns:sawsdl="http://www.w3.org/ns/sawsdl"
7
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
8
+ elementFormDefault="qualified">
9
+ <xs:include schemaLocation="abstractcharacters.xsd"/>
10
+
11
+ <xs:annotation>
12
+ <xs:documentation>
13
+ This module defines concrete subclasses for the
14
+ <a href="../abstract">abstract</a> character matrix components
15
+ that all character matrices must implement. The subclasses
16
+ defined here apply to DNA character data. In a verbose notation,
17
+ this data is represented as the "state" attribute of the &lt;cell&gt;
18
+ element, whose value-space is limited to the IUPAC single character
19
+ nucleotide symbols (except U). In a compact notation, the same data
20
+ is represented as a sequence of tokens (whitespace is allowed but has no meaning).
21
+ </xs:documentation>
22
+ </xs:annotation>
23
+
24
+ <xs:simpleType name="DNAToken">
25
+ <xs:annotation>
26
+ <xs:documentation>
27
+ The DNAToken simple type is a restriction of AbstractSymbol that defines
28
+ a token of a IUPAC single character nucleotide token.
29
+ </xs:documentation>
30
+ </xs:annotation>
31
+ <xs:restriction base="AbstractSymbol">
32
+ <xs:pattern value="[ABCDGHKMNRSTVWXY\-\?]"/>
33
+ <xs:length value="1"/>
34
+ </xs:restriction>
35
+ </xs:simpleType>
36
+ <!--
37
+
38
+ The following types would be used if we explicitly defined ambiguity mappings,
39
+ allowed states, etc. But we don't, because we use the IUPAC symbols anyway. -->
40
+
41
+ <xs:complexType name="DNAMapping">
42
+ <xs:annotation>
43
+ <xs:documentation>An IUPAC ambiguity mapping.</xs:documentation>
44
+ </xs:annotation>
45
+ <xs:complexContent>
46
+ <xs:restriction base="AbstractMapping"/>
47
+ </xs:complexContent>
48
+ </xs:complexType>
49
+
50
+ <xs:complexType name="DNAState">
51
+ <xs:annotation>
52
+ <xs:documentation>
53
+ This is a concrete implementation of the state element, which requires
54
+ a symbol element, in this case restricted to DNAToken, i.e. a single IUPAC nucleotide
55
+ symbol, and optional mapping elements to refer to other states.
56
+ </xs:documentation>
57
+ </xs:annotation>
58
+ <xs:complexContent>
59
+ <xs:restriction base="AbstractState">
60
+ <xs:sequence minOccurs="1" maxOccurs="1"/>
61
+ <xs:attribute name="symbol" type="DNAToken" use="required"></xs:attribute>
62
+ </xs:restriction>
63
+ </xs:complexContent>
64
+ </xs:complexType>
65
+
66
+ <xs:complexType name="DNAUncertainStateSet">
67
+ <xs:annotation>
68
+ <xs:documentation>
69
+ The AbstractState type is the superclass for a state definition.
70
+ The element encloses a required AbstractSymbol element that in restricted concrete
71
+ subclasses must be of a sensible type such as a single IUPAC character. It may
72
+ enclose zero or more AbstractMapping elements to resolve ambiguities.
73
+ </xs:documentation>
74
+ </xs:annotation>
75
+ <xs:complexContent>
76
+ <xs:restriction base="AbstractUncertainStateSet">
77
+ <xs:sequence minOccurs="1" maxOccurs="1">
78
+ <xs:element name="member" type="DNAMapping" minOccurs="0" maxOccurs="unbounded"/>
79
+ </xs:sequence>
80
+ <xs:attribute name="symbol" type="DNAToken" use="required"></xs:attribute>
81
+ </xs:restriction>
82
+ </xs:complexContent>
83
+ </xs:complexType>
84
+
85
+ <xs:complexType name="DNAPolymorphicStateSet">
86
+ <xs:annotation>
87
+ <xs:documentation>
88
+ The AbstractState type is the superclass for a state definition.
89
+ The element encloses a required AbstractSymbol element that in restricted concrete
90
+ subclasses must be of a sensible type such as a single IUPAC character. It may
91
+ enclose zero or more AbstractMapping elements to resolve ambiguities.
92
+ </xs:documentation>
93
+ </xs:annotation>
94
+ <xs:complexContent>
95
+ <xs:restriction base="AbstractPolymorphicStateSet">
96
+ <xs:sequence minOccurs="1" maxOccurs="1">
97
+ <xs:element name="member" type="DNAMapping" minOccurs="0" maxOccurs="unbounded"/>
98
+ <xs:element name="uncertain_state_set" type="DNAUncertainStateSet" minOccurs="0" maxOccurs="unbounded"/>
99
+ </xs:sequence>
100
+ <xs:attribute name="symbol" type="DNAToken" use="required"></xs:attribute>
101
+ </xs:restriction>
102
+ </xs:complexContent>
103
+ </xs:complexType>
104
+
105
+ <xs:complexType name="DNAStates">
106
+ <xs:annotation>
107
+ <xs:documentation>
108
+ A container for a set of states.
109
+ </xs:documentation>
110
+ </xs:annotation>
111
+ <xs:complexContent>
112
+ <xs:restriction base="AbstractStates">
113
+ <xs:sequence minOccurs="1" maxOccurs="1">
114
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
115
+ <xs:element name="state" type="DNAState" minOccurs="0" maxOccurs="unbounded"/>
116
+ <xs:element name="polymorphic_state_set" type="DNAPolymorphicStateSet" minOccurs="0" maxOccurs="unbounded"/>
117
+ <xs:element name="uncertain_state_set" type="DNAUncertainStateSet" minOccurs="0" maxOccurs="unbounded"/>
118
+ </xs:sequence>
119
+ </xs:restriction>
120
+ </xs:complexContent>
121
+ </xs:complexType>
122
+
123
+ <xs:complexType name="DNAChar" sawsdl:modelReference="http://evolutionaryontology-dev.nescent.org/cdao.owl#NucleotideResidueCharacter">
124
+ <xs:annotation>
125
+ <xs:documentation>
126
+ A concrete implementation of the AbstractChar element. In this implementation
127
+ there is no reference to explicitly defined states, as we use the IUPAC standard.
128
+ There may be a CodonPosition ("codon") attribute, and there must be an identifier
129
+ ("id") that is of type xs:nonNegativeInteger to define the column number.
130
+ </xs:documentation>
131
+ <xs:appinfo>Nucleotide_Character</xs:appinfo>
132
+ </xs:annotation>
133
+ <xs:complexContent>
134
+ <xs:restriction base="AbstractChar">
135
+ <xs:sequence minOccurs="1" maxOccurs="1">
136
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
137
+ </xs:sequence>
138
+ <xs:attribute name="tokens" type="MSTokenLength" use="prohibited"/>
139
+ <xs:attribute name="states" type="xs:IDREF" use="required"/>
140
+ <xs:attribute name="codon" type="CodonPosition" use="optional"/>
141
+ <xs:attribute name="id" type="xs:ID" use="required"/>
142
+ </xs:restriction>
143
+ </xs:complexContent>
144
+ </xs:complexType>
145
+
146
+ <xs:complexType name="DNAFormat" abstract="false">
147
+ <xs:annotation>
148
+ <xs:documentation> The DNAFormat class is the container of DNA column definitions.
149
+ </xs:documentation>
150
+ </xs:annotation>
151
+ <xs:complexContent>
152
+ <xs:restriction base="AbstractFormat">
153
+ <xs:sequence minOccurs="1" maxOccurs="1">
154
+ <xs:element name="states" type="DNAStates" minOccurs="1" maxOccurs="unbounded"/>
155
+ <xs:element name="char" type="DNAChar" minOccurs="1" maxOccurs="unbounded"/>
156
+ </xs:sequence>
157
+ </xs:restriction>
158
+ </xs:complexContent>
159
+ </xs:complexType>
160
+
161
+ <xs:complexType name="DNAObs" abstract="false" sawsdl:modelReference="http://evolutionaryontology-dev.nescent.org/cdao.owl#NucleotideStateDatum">
162
+ <xs:annotation>
163
+ <xs:documentation>
164
+ This is a single cell in a matrix containing a nucleotide observation.
165
+ </xs:documentation>
166
+ <xs:appinfo>Nucleotide_State_Datum</xs:appinfo>
167
+ </xs:annotation>
168
+ <xs:complexContent>
169
+ <xs:restriction base="AbstractObs">
170
+ <xs:sequence minOccurs="1" maxOccurs="1">
171
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
172
+ </xs:sequence>
173
+ <xs:attribute name="char" use="required" type="xs:IDREF"/>
174
+ <xs:attribute name="state" use="required" type="xs:IDREF"/>
175
+ </xs:restriction>
176
+ </xs:complexContent>
177
+ </xs:complexType>
178
+
179
+ <xs:simpleType name="DNASeq">
180
+ <xs:annotation>
181
+ <xs:documentation> This is a simple type that specifies a sequence of DNA characters,
182
+ following IUPAC single character symbols for nucleotides (and ambiguities).
183
+ </xs:documentation>
184
+ </xs:annotation>
185
+ <xs:restriction base="AbstractSeq">
186
+ <xs:pattern value="[\-\?ABCDGHKMNRSTVWXY\s]*"/>
187
+ </xs:restriction>
188
+ </xs:simpleType>
189
+
190
+ <xs:complexType name="DNAMatrixSeqRow" abstract="false">
191
+ <xs:annotation>
192
+ <xs:documentation> This is a row in a matrix of DNA data containing raw sequence data. </xs:documentation>
193
+ </xs:annotation>
194
+ <xs:complexContent>
195
+ <xs:restriction base="AbstractSeqRow">
196
+ <xs:sequence minOccurs="1" maxOccurs="1">
197
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
198
+ <xs:element name="seq" minOccurs="1" maxOccurs="1" type="DNASeq"/>
199
+ </xs:sequence>
200
+ </xs:restriction>
201
+ </xs:complexContent>
202
+ </xs:complexType>
203
+
204
+ <xs:complexType name="DNAMatrixObsRow" abstract="false">
205
+ <xs:annotation>
206
+ <xs:documentation> This is a row in a matrix of DNA data containing granular observations. </xs:documentation>
207
+ </xs:annotation>
208
+ <xs:complexContent>
209
+ <xs:restriction base="AbstractObsRow">
210
+ <xs:sequence minOccurs="1" maxOccurs="1">
211
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
212
+ <xs:element name="cell" minOccurs="1" maxOccurs="unbounded" type="DNAObs"/>
213
+ </xs:sequence>
214
+ </xs:restriction>
215
+ </xs:complexContent>
216
+ </xs:complexType>
217
+
218
+ <xs:complexType name="DNASeqMatrix" abstract="false">
219
+ <xs:annotation>
220
+ <xs:documentation>
221
+ A matrix of rows with seq strings of type DNA.
222
+ </xs:documentation>
223
+ </xs:annotation>
224
+ <xs:complexContent>
225
+ <xs:restriction base="AbstractSeqMatrix">
226
+ <xs:sequence minOccurs="1" maxOccurs="1">
227
+ <xs:element name="row" minOccurs="1" maxOccurs="unbounded" type="DNAMatrixSeqRow"/>
228
+ </xs:sequence>
229
+ </xs:restriction>
230
+ </xs:complexContent>
231
+ </xs:complexType>
232
+
233
+ <xs:complexType name="DNAObsMatrix" abstract="false">
234
+ <xs:annotation>
235
+ <xs:documentation>
236
+ A matrix of rows with single character observations.
237
+ </xs:documentation>
238
+ </xs:annotation>
239
+ <xs:complexContent>
240
+ <xs:restriction base="AbstractObsMatrix">
241
+ <xs:sequence minOccurs="1" maxOccurs="1">
242
+ <xs:element name="row" minOccurs="1" maxOccurs="unbounded" type="DNAMatrixObsRow"/>
243
+ </xs:sequence>
244
+ </xs:restriction>
245
+ </xs:complexContent>
246
+ </xs:complexType>
247
+
248
+ <xs:complexType name="DnaSeqs" abstract="false">
249
+ <xs:annotation>
250
+ <xs:documentation>
251
+ A DNA characters block consisting of sequences preceded by metadata.
252
+ </xs:documentation>
253
+ </xs:annotation>
254
+ <xs:complexContent>
255
+ <xs:restriction base="AbstractSeqs">
256
+ <xs:sequence minOccurs="1" maxOccurs="1">
257
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
258
+ <xs:element name="format" minOccurs="1" maxOccurs="1" type="DNAFormat"/>
259
+ <xs:element name="matrix" minOccurs="1" maxOccurs="1" type="DNASeqMatrix"/>
260
+ </xs:sequence>
261
+ </xs:restriction>
262
+ </xs:complexContent>
263
+ </xs:complexType>
264
+
265
+ <xs:complexType name="DnaCells" abstract="false">
266
+ <xs:annotation>
267
+ <xs:documentation>
268
+ A DNA characters block consisting of granular cells preceded by metadata.
269
+ </xs:documentation>
270
+ </xs:annotation>
271
+ <xs:complexContent>
272
+ <xs:restriction base="AbstractCells">
273
+ <xs:sequence minOccurs="1" maxOccurs="1">
274
+ <xs:element name="meta" minOccurs="0" maxOccurs="unbounded" type="Meta"/>
275
+ <xs:element name="format" minOccurs="1" maxOccurs="1" type="DNAFormat"/>
276
+ <xs:element name="matrix" minOccurs="1" maxOccurs="1" type="DNAObsMatrix"/>
277
+ </xs:sequence>
278
+ </xs:restriction>
279
+ </xs:complexContent>
280
+ </xs:complexType>
281
+
282
+ </xs:schema>