biointerchange 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +3 -3
- data/Gemfile +2 -1
- data/README.md +192 -7
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/examples/vocabulary.rb +23 -0
- data/generators/javaify.rb +131 -0
- data/generators/pythonify.rb +67 -0
- data/generators/rdfxml.rb +152 -44
- data/lib/biointerchange/core.rb +2 -1
- data/lib/biointerchange/exceptions.rb +27 -0
- data/lib/biointerchange/genomics/gff3_rdf_ntriples.rb +21 -18
- data/lib/biointerchange/gff3o.rb +495 -0
- data/lib/biointerchange/gvf1o.rb +730 -0
- data/lib/biointerchange/registry.rb +2 -2
- data/lib/biointerchange/sio.rb +10951 -5845
- data/lib/biointerchange/sofa.rb +2171 -1300
- data/spec/exceptions_spec.rb +6 -0
- data/spec/gff3_rdfwriter_spec.rb +7 -1
- data/spec/text_mining_pdfx_xml_reader_spec.rb +6 -0
- data/spec/text_mining_pubannos_json_reader_spec.rb +6 -0
- data/spec/text_mining_rdfwriter_spec.rb +6 -0
- data/supplemental/java/biointerchange/pom.xml +45 -0
- data/supplemental/java/biointerchange/src/main/java/org/biointerchange/App.java +58 -0
- data/supplemental/java/biointerchange/src/main/java/org/biointerchange/AppSIO.java +49 -0
- data/supplemental/java/biointerchange/src/main/java/org/biointerchange/vocabulary/GFF3O.java +647 -0
- data/supplemental/java/biointerchange/src/main/java/org/biointerchange/vocabulary/GVF1O.java +946 -0
- data/supplemental/java/biointerchange/src/main/java/org/biointerchange/vocabulary/SIO.java +15390 -0
- data/supplemental/java/biointerchange/src/main/java/org/biointerchange/vocabulary/SOFA.java +2968 -0
- data/supplemental/java/biointerchange/src/test/java/org/biointerchange/AppTest.java +38 -0
- data/supplemental/python/biointerchange/__init__.py +4 -0
- data/supplemental/python/biointerchange/gff3o.py +581 -0
- data/supplemental/python/biointerchange/gvf1o.py +864 -0
- data/supplemental/python/biointerchange/sio.py +11772 -0
- data/supplemental/python/biointerchange/sofa.py +2422 -0
- data/supplemental/python/example.py +19 -0
- data/supplemental/python/setup.py +13 -0
- data/web/about.html +3 -0
- data/web/api.html +219 -0
- data/web/index.html +4 -3
- data/web/ontologies.html +109 -0
- data/web/webservices.html +1 -0
- metadata +144 -117
- data/docs/exceptions_readme.txt +0 -13
- data/lib/biointerchange/gff3.rb +0 -135
@@ -0,0 +1,864 @@
|
|
1
|
+
import rdflib
|
2
|
+
|
3
|
+
from rdflib import Namespace
|
4
|
+
|
5
|
+
__namespace_GVF1O = Namespace('http://www.biointerchange.org/gvf1o#')
|
6
|
+
|
7
|
+
def _namespace_GVF1O(accession):
|
8
|
+
return __namespace_GVF1O[accession]
|
9
|
+
|
10
|
+
class GVF1O:
|
11
|
+
|
12
|
+
@classmethod
|
13
|
+
def strand(cls):
|
14
|
+
"""Strand of the feature.
|
15
|
+
(cls, GVF1_0010)
|
16
|
+
"""
|
17
|
+
return _namespace_GVF1O('GVF1_0010')
|
18
|
+
|
19
|
+
@classmethod
|
20
|
+
def attributes(cls):
|
21
|
+
"""Tag name/value pair attributes of a feature.
|
22
|
+
(cls, GVF1_0012)
|
23
|
+
"""
|
24
|
+
return _namespace_GVF1O('GVF1_0012')
|
25
|
+
|
26
|
+
@classmethod
|
27
|
+
def parent(cls):
|
28
|
+
"""Link out to the parent feature.
|
29
|
+
(cls, GVF1_0014)
|
30
|
+
"""
|
31
|
+
return _namespace_GVF1O('GVF1_0014')
|
32
|
+
|
33
|
+
@classmethod
|
34
|
+
def contains(cls):
|
35
|
+
"""Relationship that describes which features belong to a feature set.
|
36
|
+
(cls, GVF1_0015)
|
37
|
+
"""
|
38
|
+
return _namespace_GVF1O('GVF1_0015')
|
39
|
+
|
40
|
+
@classmethod
|
41
|
+
def region(cls):
|
42
|
+
"""Either:
|
43
|
+
FALDO "Region" instance replacement for a feature's start, stop, strand properties.
|
44
|
+
(cls, GVF1_0021)
|
45
|
+
Or:
|
46
|
+
FALDO "Region" instance replacement for a breakpoint's start, stop, strand properties.
|
47
|
+
(GVF1_0079)
|
48
|
+
"""
|
49
|
+
return [ _namespace_GVF1O('GVF1_0021'), _namespace_GVF1O('GVF1_0079') ]
|
50
|
+
|
51
|
+
@classmethod
|
52
|
+
def species(cls):
|
53
|
+
"""NCBI Taxonomy Ontology "NCBITaxon_1" (cls, or sub-classes) instance that denotes the species for a feature set.
|
54
|
+
(GVF1_0023)
|
55
|
+
"""
|
56
|
+
return _namespace_GVF1O('GVF1_0023')
|
57
|
+
|
58
|
+
@classmethod
|
59
|
+
def variant(cls):
|
60
|
+
"""Specific information about the variant(cls, s) of a feature.
|
61
|
+
(GVF1_0034)
|
62
|
+
"""
|
63
|
+
return _namespace_GVF1O('GVF1_0034')
|
64
|
+
|
65
|
+
@classmethod
|
66
|
+
def individual(cls):
|
67
|
+
"""Links to information about an individual.
|
68
|
+
(cls, GVF1_0036)
|
69
|
+
"""
|
70
|
+
return _namespace_GVF1O('GVF1_0036')
|
71
|
+
|
72
|
+
@classmethod
|
73
|
+
def effect(cls):
|
74
|
+
"""An effect of a particular feature variant.
|
75
|
+
(cls, GVF1_0041)
|
76
|
+
"""
|
77
|
+
return _namespace_GVF1O('GVF1_0041')
|
78
|
+
|
79
|
+
@classmethod
|
80
|
+
def sequence_variant(cls):
|
81
|
+
"""Effect of a sequence alteration on a sequence feature.
|
82
|
+
(cls, GVF1_0042)
|
83
|
+
"""
|
84
|
+
return _namespace_GVF1O('GVF1_0042')
|
85
|
+
|
86
|
+
@classmethod
|
87
|
+
def feature_type(cls):
|
88
|
+
"""A term that is describing the sequence feature that is being affected.
|
89
|
+
(cls, GVF1_0043)
|
90
|
+
"""
|
91
|
+
return _namespace_GVF1O('GVF1_0043')
|
92
|
+
|
93
|
+
@classmethod
|
94
|
+
def feature_id(cls):
|
95
|
+
"""Features that are affected by this sequence alteration effect.
|
96
|
+
(cls, GVF1_0044)
|
97
|
+
"""
|
98
|
+
return _namespace_GVF1O('GVF1_0044')
|
99
|
+
|
100
|
+
@classmethod
|
101
|
+
def start_range(cls):
|
102
|
+
"""A coordinate range for ambiguous start coordinates.
|
103
|
+
(cls, GVF1_0046)
|
104
|
+
"""
|
105
|
+
return _namespace_GVF1O('GVF1_0046')
|
106
|
+
|
107
|
+
@classmethod
|
108
|
+
def end_range(cls):
|
109
|
+
"""A coordinate range for ambiguous start coordinates.
|
110
|
+
(cls, GVF1_0047)
|
111
|
+
"""
|
112
|
+
return _namespace_GVF1O('GVF1_0047')
|
113
|
+
|
114
|
+
@classmethod
|
115
|
+
def chromosome(cls):
|
116
|
+
"""Denotes abstract chromosome representations for capturing variants that appear on the same chromosome of a polyploid organism.
|
117
|
+
(cls, GVF1_0051)
|
118
|
+
"""
|
119
|
+
return _namespace_GVF1O('GVF1_0051')
|
120
|
+
|
121
|
+
@classmethod
|
122
|
+
def genotype(cls):
|
123
|
+
"""Determines the genotype as observed in an individual.
|
124
|
+
(cls, GVF1_0053)
|
125
|
+
"""
|
126
|
+
return _namespace_GVF1O('GVF1_0053')
|
127
|
+
|
128
|
+
@classmethod
|
129
|
+
def feature_properties(cls):
|
130
|
+
"""Either:
|
131
|
+
Properties that are directly associated with Feature class instances.
|
132
|
+
(cls, GVF1_0066)
|
133
|
+
Or:
|
134
|
+
Properties that are directly associated with Feature class instances.
|
135
|
+
(GVF1_0059)
|
136
|
+
"""
|
137
|
+
return [ _namespace_GVF1O('GVF1_0066'), _namespace_GVF1O('GVF1_0059') ]
|
138
|
+
|
139
|
+
@classmethod
|
140
|
+
def sequencedindividual_properties(cls):
|
141
|
+
"""Either:
|
142
|
+
Properties that are directly associated with SequencedIndividual class instances.
|
143
|
+
(cls, GVF1_0067)
|
144
|
+
Or:
|
145
|
+
Properties that are directly associated with SequencedIndividual class instances.
|
146
|
+
(GVF1_0065)
|
147
|
+
"""
|
148
|
+
return [ _namespace_GVF1O('GVF1_0067'), _namespace_GVF1O('GVF1_0065') ]
|
149
|
+
|
150
|
+
@classmethod
|
151
|
+
def set_properties(cls):
|
152
|
+
"""Either:
|
153
|
+
Properties that are directly associated with Set class instances.
|
154
|
+
(cls, GVF1_0068)
|
155
|
+
Or:
|
156
|
+
Properties that are directly associated with Set class instances.
|
157
|
+
(GVF1_0063)
|
158
|
+
"""
|
159
|
+
return [ _namespace_GVF1O('GVF1_0068'), _namespace_GVF1O('GVF1_0063') ]
|
160
|
+
|
161
|
+
@classmethod
|
162
|
+
def variant_properties(cls):
|
163
|
+
"""Either:
|
164
|
+
Properties that are directly associated with Variant class instances.
|
165
|
+
(cls, GVF1_0069)
|
166
|
+
Or:
|
167
|
+
Properties that are directly associated with Variant class instances.
|
168
|
+
(GVF1_0060)
|
169
|
+
"""
|
170
|
+
return [ _namespace_GVF1O('GVF1_0069'), _namespace_GVF1O('GVF1_0060') ]
|
171
|
+
|
172
|
+
@classmethod
|
173
|
+
def effect_properties(cls):
|
174
|
+
"""Properties that are directly associated with Effect class instances.
|
175
|
+
(cls, GVF1_0070)
|
176
|
+
"""
|
177
|
+
return _namespace_GVF1O('GVF1_0070')
|
178
|
+
|
179
|
+
@classmethod
|
180
|
+
def breakpoint_properties(cls):
|
181
|
+
"""Either:
|
182
|
+
Properties that are directly associated with Breakpoint class instances.
|
183
|
+
(cls, GVF1_0075)
|
184
|
+
Or:
|
185
|
+
Properties that are directly associated with Breakpoint class instances.
|
186
|
+
(GVF1_0071)
|
187
|
+
"""
|
188
|
+
return [ _namespace_GVF1O('GVF1_0075'), _namespace_GVF1O('GVF1_0071') ]
|
189
|
+
|
190
|
+
@classmethod
|
191
|
+
def dbxref(cls):
|
192
|
+
"""A database cross-reference to associate a sequence alteration to its representation in another database.
|
193
|
+
(cls, GVF1_0078)
|
194
|
+
"""
|
195
|
+
return _namespace_GVF1O('GVF1_0078')
|
196
|
+
|
197
|
+
@classmethod
|
198
|
+
def region(cls):
|
199
|
+
"""Either:
|
200
|
+
FALDO "Region" instance replacement for a feature's start, stop, strand properties.
|
201
|
+
(cls, GVF1_0021)
|
202
|
+
Or:
|
203
|
+
FALDO "Region" instance replacement for a breakpoint's start, stop, strand properties.
|
204
|
+
(GVF1_0079)
|
205
|
+
"""
|
206
|
+
return [ _namespace_GVF1O('GVF1_0021'), _namespace_GVF1O('GVF1_0079') ]
|
207
|
+
|
208
|
+
@classmethod
|
209
|
+
def seqid(cls):
|
210
|
+
"""Either:
|
211
|
+
ID of the landmark that establishes the coordinate system for a feature.
|
212
|
+
(cls, GVF1_0004)
|
213
|
+
Or:
|
214
|
+
ID of the landmark that establishes the coordinate system for a breakpoint.
|
215
|
+
(GVF1_0072)
|
216
|
+
"""
|
217
|
+
return [ _namespace_GVF1O('GVF1_0004'), _namespace_GVF1O('GVF1_0072') ]
|
218
|
+
|
219
|
+
@classmethod
|
220
|
+
def source(cls):
|
221
|
+
"""A free text qualifier that describes the algorithm or operating procedure that generated this feature. For example, the name of the software that generated this feature or a database name.
|
222
|
+
(cls, GVF1_0005)
|
223
|
+
"""
|
224
|
+
return _namespace_GVF1O('GVF1_0005')
|
225
|
+
|
226
|
+
@classmethod
|
227
|
+
def type(cls):
|
228
|
+
"""Type of the feature, which is either a term from the "lite" version of the Sequence Ontology (cls, SOFA), a term from the full Sequence Ontology (SO) that is a child of sequence_feature (SO:0000110), or a SOFA or SO accession number.
|
229
|
+
(GVF1_0006)
|
230
|
+
"""
|
231
|
+
return _namespace_GVF1O('GVF1_0006')
|
232
|
+
|
233
|
+
@classmethod
|
234
|
+
def start(cls):
|
235
|
+
"""Either:
|
236
|
+
Start coordinate of the feature on the seqid landmark.
|
237
|
+
(cls, GVF1_0007)
|
238
|
+
Or:
|
239
|
+
A coordinate that defines the start of an ambiguous coordinate range.
|
240
|
+
(GVF1_0048)
|
241
|
+
Or:
|
242
|
+
Start coordinate of the feature on the seqid landmark.
|
243
|
+
(GVF1_0073)
|
244
|
+
"""
|
245
|
+
return [ _namespace_GVF1O('GVF1_0007'), _namespace_GVF1O('GVF1_0048'), _namespace_GVF1O('GVF1_0073') ]
|
246
|
+
|
247
|
+
@classmethod
|
248
|
+
def end(cls):
|
249
|
+
"""Either:
|
250
|
+
End coordinate of the feature on the seqid landmark.
|
251
|
+
(cls, GVF1_0008)
|
252
|
+
Or:
|
253
|
+
A coordinate that defines the end of an ambiguous coordinate range.
|
254
|
+
(GVF1_0049)
|
255
|
+
Or:
|
256
|
+
End coordinate of the feature on the seqid landmark.
|
257
|
+
(GVF1_0074)
|
258
|
+
"""
|
259
|
+
return [ _namespace_GVF1O('GVF1_0008'), _namespace_GVF1O('GVF1_0049'), _namespace_GVF1O('GVF1_0074') ]
|
260
|
+
|
261
|
+
@classmethod
|
262
|
+
def score(cls):
|
263
|
+
"""Score of the feature. For example, an E-value for sequence similarity features or a P-value for ab initio gene prediction features.
|
264
|
+
(cls, GVF1_0009)
|
265
|
+
"""
|
266
|
+
return _namespace_GVF1O('GVF1_0009')
|
267
|
+
|
268
|
+
@classmethod
|
269
|
+
def tag(cls):
|
270
|
+
"""Tag name of a feature attribute.
|
271
|
+
(cls, GVF1_0013)
|
272
|
+
"""
|
273
|
+
return _namespace_GVF1O('GVF1_0013')
|
274
|
+
|
275
|
+
@classmethod
|
276
|
+
def version(cls):
|
277
|
+
"""Version of the GVF specification that defines the feature set contents.
|
278
|
+
(cls, GVF1_0022)
|
279
|
+
"""
|
280
|
+
return _namespace_GVF1O('GVF1_0022')
|
281
|
+
|
282
|
+
@classmethod
|
283
|
+
def build(cls):
|
284
|
+
"""Name of a genome assembly build that denotes the provenance of features in a feature set. For example, 'NCBI 36' or 'FlyBase r4.1'.
|
285
|
+
(cls, GVF1_0024)
|
286
|
+
"""
|
287
|
+
return _namespace_GVF1O('GVF1_0024')
|
288
|
+
|
289
|
+
@classmethod
|
290
|
+
def variant_seq(cls):
|
291
|
+
"""All sequence variations at a locus -- including the reference sequence when appropriate (cls, for example, when the locus is heterozygous). If the feature is on the minus strand, then the sequence is the reverse-compliment of the reference genome for these coordinates.
|
292
|
+
(GVF1_0025)
|
293
|
+
"""
|
294
|
+
return _namespace_GVF1O('GVF1_0025')
|
295
|
+
|
296
|
+
@classmethod
|
297
|
+
def id(cls):
|
298
|
+
"""A unique identifier for the feature within the feature set.
|
299
|
+
(cls, GVF1_0026)
|
300
|
+
"""
|
301
|
+
return _namespace_GVF1O('GVF1_0026')
|
302
|
+
|
303
|
+
@classmethod
|
304
|
+
def alias(cls):
|
305
|
+
"""Secondary name of a feature, which can be HGVS/ISCN nomenclature names, but not cross-references to databases (cls, e.g. dbSNP, OMIM) which should use the dbxref property.
|
306
|
+
(GVF1_0027)
|
307
|
+
"""
|
308
|
+
return _namespace_GVF1O('GVF1_0027')
|
309
|
+
|
310
|
+
@classmethod
|
311
|
+
def name(cls):
|
312
|
+
"""Name of an external database. For example, "dbSNP" or "OMIM".
|
313
|
+
(cls, GVF1_0029)
|
314
|
+
"""
|
315
|
+
return _namespace_GVF1O('GVF1_0029')
|
316
|
+
|
317
|
+
@classmethod
|
318
|
+
def xref(cls):
|
319
|
+
"""External database identifier. For example, for dbSNP, this identifier could be "rs3131969".
|
320
|
+
(cls, GVF1_0030)
|
321
|
+
"""
|
322
|
+
return _namespace_GVF1O('GVF1_0030')
|
323
|
+
|
324
|
+
@classmethod
|
325
|
+
def reference_seq(cls):
|
326
|
+
"""Sequence from the reference genome.
|
327
|
+
(cls, GVF1_0031)
|
328
|
+
"""
|
329
|
+
return _namespace_GVF1O('GVF1_0031')
|
330
|
+
|
331
|
+
@classmethod
|
332
|
+
def variant_reads(cls):
|
333
|
+
"""Number of reads that are supporting this variant.
|
334
|
+
(cls, GVF1_0032)
|
335
|
+
"""
|
336
|
+
return _namespace_GVF1O('GVF1_0032')
|
337
|
+
|
338
|
+
@classmethod
|
339
|
+
def total_reads(cls):
|
340
|
+
"""Total number of reads.
|
341
|
+
(cls, GVF1_0037)
|
342
|
+
"""
|
343
|
+
return _namespace_GVF1O('GVF1_0037')
|
344
|
+
|
345
|
+
@classmethod
|
346
|
+
def zygosity(cls):
|
347
|
+
"""Zygosity of a feature locus.
|
348
|
+
(cls, GVF1_0038)
|
349
|
+
"""
|
350
|
+
return _namespace_GVF1O('GVF1_0038')
|
351
|
+
|
352
|
+
@classmethod
|
353
|
+
def variant_freq(cls):
|
354
|
+
"""Frequency of a variant in a population.
|
355
|
+
(cls, GVF1_0039)
|
356
|
+
"""
|
357
|
+
return _namespace_GVF1O('GVF1_0039')
|
358
|
+
|
359
|
+
@classmethod
|
360
|
+
def start(cls):
|
361
|
+
"""Either:
|
362
|
+
Start coordinate of the feature on the seqid landmark.
|
363
|
+
(cls, GVF1_0007)
|
364
|
+
Or:
|
365
|
+
A coordinate that defines the start of an ambiguous coordinate range.
|
366
|
+
(GVF1_0048)
|
367
|
+
Or:
|
368
|
+
Start coordinate of the feature on the seqid landmark.
|
369
|
+
(GVF1_0073)
|
370
|
+
"""
|
371
|
+
return [ _namespace_GVF1O('GVF1_0007'), _namespace_GVF1O('GVF1_0048'), _namespace_GVF1O('GVF1_0073') ]
|
372
|
+
|
373
|
+
@classmethod
|
374
|
+
def end(cls):
|
375
|
+
"""Either:
|
376
|
+
End coordinate of the feature on the seqid landmark.
|
377
|
+
(cls, GVF1_0008)
|
378
|
+
Or:
|
379
|
+
A coordinate that defines the end of an ambiguous coordinate range.
|
380
|
+
(GVF1_0049)
|
381
|
+
Or:
|
382
|
+
End coordinate of the feature on the seqid landmark.
|
383
|
+
(GVF1_0074)
|
384
|
+
"""
|
385
|
+
return [ _namespace_GVF1O('GVF1_0008'), _namespace_GVF1O('GVF1_0049'), _namespace_GVF1O('GVF1_0074') ]
|
386
|
+
|
387
|
+
@classmethod
|
388
|
+
def phased(cls):
|
389
|
+
"""Unclear from GVF specification.
|
390
|
+
(cls, GVF1_0050)
|
391
|
+
"""
|
392
|
+
return _namespace_GVF1O('GVF1_0050')
|
393
|
+
|
394
|
+
@classmethod
|
395
|
+
def variant_codon(cls):
|
396
|
+
"""Describes the codon that overlaps this variant.
|
397
|
+
(cls, GVF1_0054)
|
398
|
+
"""
|
399
|
+
return _namespace_GVF1O('GVF1_0054')
|
400
|
+
|
401
|
+
@classmethod
|
402
|
+
def reference_codon(cls):
|
403
|
+
"""Describes the codon from the reference sequence whose coordinates overlap with this variant.
|
404
|
+
(cls, GVF1_0055)
|
405
|
+
"""
|
406
|
+
return _namespace_GVF1O('GVF1_0055')
|
407
|
+
|
408
|
+
@classmethod
|
409
|
+
def variant_aa(cls):
|
410
|
+
"""Amino acid that overlaps with the variant.
|
411
|
+
(cls, GVF1_0056)
|
412
|
+
"""
|
413
|
+
return _namespace_GVF1O('GVF1_0056')
|
414
|
+
|
415
|
+
@classmethod
|
416
|
+
def reference_aa(cls):
|
417
|
+
"""Amino acid in the reference genome that overlaps with a variant's genome coordinates.
|
418
|
+
(cls, GVF1_0057)
|
419
|
+
"""
|
420
|
+
return _namespace_GVF1O('GVF1_0057')
|
421
|
+
|
422
|
+
@classmethod
|
423
|
+
def feature_properties(cls):
|
424
|
+
"""Either:
|
425
|
+
Properties that are directly associated with Feature class instances.
|
426
|
+
(cls, GVF1_0066)
|
427
|
+
Or:
|
428
|
+
Properties that are directly associated with Feature class instances.
|
429
|
+
(GVF1_0059)
|
430
|
+
"""
|
431
|
+
return [ _namespace_GVF1O('GVF1_0066'), _namespace_GVF1O('GVF1_0059') ]
|
432
|
+
|
433
|
+
@classmethod
|
434
|
+
def variant_properties(cls):
|
435
|
+
"""Either:
|
436
|
+
Properties that are directly associated with Variant class instances.
|
437
|
+
(cls, GVF1_0069)
|
438
|
+
Or:
|
439
|
+
Properties that are directly associated with Variant class instances.
|
440
|
+
(GVF1_0060)
|
441
|
+
"""
|
442
|
+
return [ _namespace_GVF1O('GVF1_0069'), _namespace_GVF1O('GVF1_0060') ]
|
443
|
+
|
444
|
+
@classmethod
|
445
|
+
def range_properties(cls):
|
446
|
+
"""Properties that are directly associated with Range class instances.
|
447
|
+
(cls, GVF1_0061)
|
448
|
+
"""
|
449
|
+
return _namespace_GVF1O('GVF1_0061')
|
450
|
+
|
451
|
+
@classmethod
|
452
|
+
def dbxref_properties(cls):
|
453
|
+
"""Properties that are directly associated with DBXRef class instances.
|
454
|
+
(cls, GVF1_0062)
|
455
|
+
"""
|
456
|
+
return _namespace_GVF1O('GVF1_0062')
|
457
|
+
|
458
|
+
@classmethod
|
459
|
+
def set_properties(cls):
|
460
|
+
"""Either:
|
461
|
+
Properties that are directly associated with Set class instances.
|
462
|
+
(cls, GVF1_0068)
|
463
|
+
Or:
|
464
|
+
Properties that are directly associated with Set class instances.
|
465
|
+
(GVF1_0063)
|
466
|
+
"""
|
467
|
+
return [ _namespace_GVF1O('GVF1_0068'), _namespace_GVF1O('GVF1_0063') ]
|
468
|
+
|
469
|
+
@classmethod
|
470
|
+
def attribute_properties(cls):
|
471
|
+
"""Properties that are directly associated with Attribute class instances.
|
472
|
+
(cls, GVF1_0064)
|
473
|
+
"""
|
474
|
+
return _namespace_GVF1O('GVF1_0064')
|
475
|
+
|
476
|
+
@classmethod
|
477
|
+
def sequencedindividual_properties(cls):
|
478
|
+
"""Either:
|
479
|
+
Properties that are directly associated with SequencedIndividual class instances.
|
480
|
+
(cls, GVF1_0067)
|
481
|
+
Or:
|
482
|
+
Properties that are directly associated with SequencedIndividual class instances.
|
483
|
+
(GVF1_0065)
|
484
|
+
"""
|
485
|
+
return [ _namespace_GVF1O('GVF1_0067'), _namespace_GVF1O('GVF1_0065') ]
|
486
|
+
|
487
|
+
@classmethod
|
488
|
+
def breakpoint_properties(cls):
|
489
|
+
"""Either:
|
490
|
+
Properties that are directly associated with Breakpoint class instances.
|
491
|
+
(cls, GVF1_0075)
|
492
|
+
Or:
|
493
|
+
Properties that are directly associated with Breakpoint class instances.
|
494
|
+
(GVF1_0071)
|
495
|
+
"""
|
496
|
+
return [ _namespace_GVF1O('GVF1_0075'), _namespace_GVF1O('GVF1_0071') ]
|
497
|
+
|
498
|
+
@classmethod
|
499
|
+
def seqid(cls):
|
500
|
+
"""Either:
|
501
|
+
ID of the landmark that establishes the coordinate system for a feature.
|
502
|
+
(cls, GVF1_0004)
|
503
|
+
Or:
|
504
|
+
ID of the landmark that establishes the coordinate system for a breakpoint.
|
505
|
+
(GVF1_0072)
|
506
|
+
"""
|
507
|
+
return [ _namespace_GVF1O('GVF1_0004'), _namespace_GVF1O('GVF1_0072') ]
|
508
|
+
|
509
|
+
@classmethod
|
510
|
+
def start(cls):
|
511
|
+
"""Either:
|
512
|
+
Start coordinate of the feature on the seqid landmark.
|
513
|
+
(cls, GVF1_0007)
|
514
|
+
Or:
|
515
|
+
A coordinate that defines the start of an ambiguous coordinate range.
|
516
|
+
(GVF1_0048)
|
517
|
+
Or:
|
518
|
+
Start coordinate of the feature on the seqid landmark.
|
519
|
+
(GVF1_0073)
|
520
|
+
"""
|
521
|
+
return [ _namespace_GVF1O('GVF1_0007'), _namespace_GVF1O('GVF1_0048'), _namespace_GVF1O('GVF1_0073') ]
|
522
|
+
|
523
|
+
@classmethod
|
524
|
+
def end(cls):
|
525
|
+
"""Either:
|
526
|
+
End coordinate of the feature on the seqid landmark.
|
527
|
+
(cls, GVF1_0008)
|
528
|
+
Or:
|
529
|
+
A coordinate that defines the end of an ambiguous coordinate range.
|
530
|
+
(GVF1_0049)
|
531
|
+
Or:
|
532
|
+
End coordinate of the feature on the seqid landmark.
|
533
|
+
(GVF1_0074)
|
534
|
+
"""
|
535
|
+
return [ _namespace_GVF1O('GVF1_0008'), _namespace_GVF1O('GVF1_0049'), _namespace_GVF1O('GVF1_0074') ]
|
536
|
+
|
537
|
+
@classmethod
|
538
|
+
def a_context(cls):
|
539
|
+
"""Sequence context (cls, positive strand) of a feature on the 5' end.
|
540
|
+
(GVF1_0076)
|
541
|
+
"""
|
542
|
+
return _namespace_GVF1O('GVF1_0076')
|
543
|
+
|
544
|
+
@classmethod
|
545
|
+
def a_context(cls):
|
546
|
+
"""Sequence context (cls, positive strand) of a feature on the 3' end.
|
547
|
+
(GVF1_0077)
|
548
|
+
"""
|
549
|
+
return _namespace_GVF1O('GVF1_0077')
|
550
|
+
|
551
|
+
@classmethod
|
552
|
+
def Set(cls):
|
553
|
+
"""Set of genomic sequence features, whose identifiers are unique within the set.
|
554
|
+
(cls, GVF1_0001)
|
555
|
+
"""
|
556
|
+
return _namespace_GVF1O('GVF1_0001')
|
557
|
+
|
558
|
+
@classmethod
|
559
|
+
def Feature(cls):
|
560
|
+
"""A genomic sequence feature.
|
561
|
+
(cls, GVF1_0002)
|
562
|
+
"""
|
563
|
+
return _namespace_GVF1O('GVF1_0002')
|
564
|
+
|
565
|
+
@classmethod
|
566
|
+
def Attribute(cls):
|
567
|
+
return _namespace_GVF1O('GVF1_0003')
|
568
|
+
|
569
|
+
@classmethod
|
570
|
+
def Strand(cls):
|
571
|
+
"""Class describing a genomic strand. Instances of the class (cls, individuals) are used to denote forward-/reverse-strands, etc.
|
572
|
+
(GVF1_0016)
|
573
|
+
"""
|
574
|
+
return _namespace_GVF1O('GVF1_0016')
|
575
|
+
|
576
|
+
@classmethod
|
577
|
+
def DBXRef(cls):
|
578
|
+
"""A class describing relationships between features and external databases.
|
579
|
+
(cls, GVF1_0028)
|
580
|
+
"""
|
581
|
+
return _namespace_GVF1O('GVF1_0028')
|
582
|
+
|
583
|
+
@classmethod
|
584
|
+
def Variant(cls):
|
585
|
+
"""Describing specific alterations of a feature.
|
586
|
+
(cls, GVF1_0033)
|
587
|
+
"""
|
588
|
+
return _namespace_GVF1O('GVF1_0033')
|
589
|
+
|
590
|
+
@classmethod
|
591
|
+
def SequencedIndividual(cls):
|
592
|
+
"""Aggregated sequencing information for a particular individual.
|
593
|
+
(cls, GVF1_0035)
|
594
|
+
"""
|
595
|
+
return _namespace_GVF1O('GVF1_0035')
|
596
|
+
|
597
|
+
@classmethod
|
598
|
+
def Effect(cls):
|
599
|
+
"""Describing the effect of a feature variant.
|
600
|
+
(cls, GVF1_0040)
|
601
|
+
"""
|
602
|
+
return _namespace_GVF1O('GVF1_0040')
|
603
|
+
|
604
|
+
@classmethod
|
605
|
+
def Range(cls):
|
606
|
+
"""Describe ambiguity in either start or end coordinates.
|
607
|
+
(cls, GVF1_0045)
|
608
|
+
"""
|
609
|
+
return _namespace_GVF1O('GVF1_0045')
|
610
|
+
|
611
|
+
@classmethod
|
612
|
+
def Chromosome(cls):
|
613
|
+
"""An abstract representation of a chromosome to represent ploidy.
|
614
|
+
(cls, GVF1_0052)
|
615
|
+
"""
|
616
|
+
return _namespace_GVF1O('GVF1_0052')
|
617
|
+
|
618
|
+
@classmethod
|
619
|
+
def Breakpoint(cls):
|
620
|
+
"""Describes the source or destination of a zero-length sequence alteration.
|
621
|
+
(cls, GVF1_0058)
|
622
|
+
"""
|
623
|
+
return _namespace_GVF1O('GVF1_0058')
|
624
|
+
|
625
|
+
@classmethod
|
626
|
+
def Positive(cls):
|
627
|
+
"""Location on the positive (cls, forward) strand.
|
628
|
+
(GVF1_0017)
|
629
|
+
"""
|
630
|
+
return _namespace_GVF1O('GVF1_0017')
|
631
|
+
|
632
|
+
@classmethod
|
633
|
+
def Negative(cls):
|
634
|
+
"""Location on the negative (cls, reverse) strand.
|
635
|
+
(GVF1_0018)
|
636
|
+
"""
|
637
|
+
return _namespace_GVF1O('GVF1_0018')
|
638
|
+
|
639
|
+
@classmethod
|
640
|
+
def UnknownStrand(cls):
|
641
|
+
"""Strand was not determined, which leaves it open whether the location is on the positive (cls, forward) or negative (reverse) strand.
|
642
|
+
(GVF1_0019)
|
643
|
+
"""
|
644
|
+
return _namespace_GVF1O('GVF1_0019')
|
645
|
+
|
646
|
+
@classmethod
|
647
|
+
def NotStranded(cls):
|
648
|
+
"""Strand is not applicable.
|
649
|
+
(cls, GVF1_0020)
|
650
|
+
"""
|
651
|
+
return _namespace_GVF1O('GVF1_0020')
|
652
|
+
|
653
|
+
@classmethod
|
654
|
+
def is_object_property(cls, uri):
|
655
|
+
"""Determines whether the given URI is an object property.
|
656
|
+
|
657
|
+
uri -- URI that is tested for being an object property
|
658
|
+
"""
|
659
|
+
if uri == _namespace_GVF1O('GVF1_0010'):
|
660
|
+
return True
|
661
|
+
if uri == _namespace_GVF1O('GVF1_0012'):
|
662
|
+
return True
|
663
|
+
if uri == _namespace_GVF1O('GVF1_0014'):
|
664
|
+
return True
|
665
|
+
if uri == _namespace_GVF1O('GVF1_0015'):
|
666
|
+
return True
|
667
|
+
if uri == _namespace_GVF1O('GVF1_0021'):
|
668
|
+
return True
|
669
|
+
if uri == _namespace_GVF1O('GVF1_0023'):
|
670
|
+
return True
|
671
|
+
if uri == _namespace_GVF1O('GVF1_0034'):
|
672
|
+
return True
|
673
|
+
if uri == _namespace_GVF1O('GVF1_0036'):
|
674
|
+
return True
|
675
|
+
if uri == _namespace_GVF1O('GVF1_0041'):
|
676
|
+
return True
|
677
|
+
if uri == _namespace_GVF1O('GVF1_0042'):
|
678
|
+
return True
|
679
|
+
if uri == _namespace_GVF1O('GVF1_0043'):
|
680
|
+
return True
|
681
|
+
if uri == _namespace_GVF1O('GVF1_0044'):
|
682
|
+
return True
|
683
|
+
if uri == _namespace_GVF1O('GVF1_0046'):
|
684
|
+
return True
|
685
|
+
if uri == _namespace_GVF1O('GVF1_0047'):
|
686
|
+
return True
|
687
|
+
if uri == _namespace_GVF1O('GVF1_0051'):
|
688
|
+
return True
|
689
|
+
if uri == _namespace_GVF1O('GVF1_0053'):
|
690
|
+
return True
|
691
|
+
if uri == _namespace_GVF1O('GVF1_0066'):
|
692
|
+
return True
|
693
|
+
if uri == _namespace_GVF1O('GVF1_0067'):
|
694
|
+
return True
|
695
|
+
if uri == _namespace_GVF1O('GVF1_0068'):
|
696
|
+
return True
|
697
|
+
if uri == _namespace_GVF1O('GVF1_0069'):
|
698
|
+
return True
|
699
|
+
if uri == _namespace_GVF1O('GVF1_0070'):
|
700
|
+
return True
|
701
|
+
if uri == _namespace_GVF1O('GVF1_0075'):
|
702
|
+
return True
|
703
|
+
if uri == _namespace_GVF1O('GVF1_0078'):
|
704
|
+
return True
|
705
|
+
if uri == _namespace_GVF1O('GVF1_0079'):
|
706
|
+
return True
|
707
|
+
return False
|
708
|
+
|
709
|
+
@classmethod
|
710
|
+
def is_datatype_property(cls, uri):
|
711
|
+
"""Determines whether the given URI is a datatype property.
|
712
|
+
|
713
|
+
uri -- URI that is tested for being a datatype property
|
714
|
+
"""
|
715
|
+
if uri == _namespace_GVF1O('GVF1_0004'):
|
716
|
+
return True
|
717
|
+
if uri == _namespace_GVF1O('GVF1_0005'):
|
718
|
+
return True
|
719
|
+
if uri == _namespace_GVF1O('GVF1_0006'):
|
720
|
+
return True
|
721
|
+
if uri == _namespace_GVF1O('GVF1_0007'):
|
722
|
+
return True
|
723
|
+
if uri == _namespace_GVF1O('GVF1_0008'):
|
724
|
+
return True
|
725
|
+
if uri == _namespace_GVF1O('GVF1_0009'):
|
726
|
+
return True
|
727
|
+
if uri == _namespace_GVF1O('GVF1_0013'):
|
728
|
+
return True
|
729
|
+
if uri == _namespace_GVF1O('GVF1_0022'):
|
730
|
+
return True
|
731
|
+
if uri == _namespace_GVF1O('GVF1_0024'):
|
732
|
+
return True
|
733
|
+
if uri == _namespace_GVF1O('GVF1_0025'):
|
734
|
+
return True
|
735
|
+
if uri == _namespace_GVF1O('GVF1_0026'):
|
736
|
+
return True
|
737
|
+
if uri == _namespace_GVF1O('GVF1_0027'):
|
738
|
+
return True
|
739
|
+
if uri == _namespace_GVF1O('GVF1_0029'):
|
740
|
+
return True
|
741
|
+
if uri == _namespace_GVF1O('GVF1_0030'):
|
742
|
+
return True
|
743
|
+
if uri == _namespace_GVF1O('GVF1_0031'):
|
744
|
+
return True
|
745
|
+
if uri == _namespace_GVF1O('GVF1_0032'):
|
746
|
+
return True
|
747
|
+
if uri == _namespace_GVF1O('GVF1_0037'):
|
748
|
+
return True
|
749
|
+
if uri == _namespace_GVF1O('GVF1_0038'):
|
750
|
+
return True
|
751
|
+
if uri == _namespace_GVF1O('GVF1_0039'):
|
752
|
+
return True
|
753
|
+
if uri == _namespace_GVF1O('GVF1_0048'):
|
754
|
+
return True
|
755
|
+
if uri == _namespace_GVF1O('GVF1_0049'):
|
756
|
+
return True
|
757
|
+
if uri == _namespace_GVF1O('GVF1_0050'):
|
758
|
+
return True
|
759
|
+
if uri == _namespace_GVF1O('GVF1_0054'):
|
760
|
+
return True
|
761
|
+
if uri == _namespace_GVF1O('GVF1_0055'):
|
762
|
+
return True
|
763
|
+
if uri == _namespace_GVF1O('GVF1_0056'):
|
764
|
+
return True
|
765
|
+
if uri == _namespace_GVF1O('GVF1_0057'):
|
766
|
+
return True
|
767
|
+
if uri == _namespace_GVF1O('GVF1_0059'):
|
768
|
+
return True
|
769
|
+
if uri == _namespace_GVF1O('GVF1_0060'):
|
770
|
+
return True
|
771
|
+
if uri == _namespace_GVF1O('GVF1_0061'):
|
772
|
+
return True
|
773
|
+
if uri == _namespace_GVF1O('GVF1_0062'):
|
774
|
+
return True
|
775
|
+
if uri == _namespace_GVF1O('GVF1_0063'):
|
776
|
+
return True
|
777
|
+
if uri == _namespace_GVF1O('GVF1_0064'):
|
778
|
+
return True
|
779
|
+
if uri == _namespace_GVF1O('GVF1_0065'):
|
780
|
+
return True
|
781
|
+
if uri == _namespace_GVF1O('GVF1_0071'):
|
782
|
+
return True
|
783
|
+
if uri == _namespace_GVF1O('GVF1_0072'):
|
784
|
+
return True
|
785
|
+
if uri == _namespace_GVF1O('GVF1_0073'):
|
786
|
+
return True
|
787
|
+
if uri == _namespace_GVF1O('GVF1_0074'):
|
788
|
+
return True
|
789
|
+
if uri == _namespace_GVF1O('GVF1_0076'):
|
790
|
+
return True
|
791
|
+
if uri == _namespace_GVF1O('GVF1_0077'):
|
792
|
+
return True
|
793
|
+
return False
|
794
|
+
|
795
|
+
@classmethod
|
796
|
+
def is_class(cls, uri):
|
797
|
+
"""Determines whether the given URI is a class.
|
798
|
+
|
799
|
+
uri -- URI that is tested for being a class
|
800
|
+
"""
|
801
|
+
if uri == _namespace_GVF1O('GVF1_0001'):
|
802
|
+
return True
|
803
|
+
if uri == _namespace_GVF1O('GVF1_0002'):
|
804
|
+
return True
|
805
|
+
if uri == _namespace_GVF1O('GVF1_0003'):
|
806
|
+
return True
|
807
|
+
if uri == _namespace_GVF1O('GVF1_0016'):
|
808
|
+
return True
|
809
|
+
if uri == _namespace_GVF1O('GVF1_0028'):
|
810
|
+
return True
|
811
|
+
if uri == _namespace_GVF1O('GVF1_0033'):
|
812
|
+
return True
|
813
|
+
if uri == _namespace_GVF1O('GVF1_0035'):
|
814
|
+
return True
|
815
|
+
if uri == _namespace_GVF1O('GVF1_0040'):
|
816
|
+
return True
|
817
|
+
if uri == _namespace_GVF1O('GVF1_0045'):
|
818
|
+
return True
|
819
|
+
if uri == _namespace_GVF1O('GVF1_0052'):
|
820
|
+
return True
|
821
|
+
if uri == _namespace_GVF1O('GVF1_0058'):
|
822
|
+
return True
|
823
|
+
return False
|
824
|
+
|
825
|
+
@classmethod
|
826
|
+
def is_named_individual(cls, uri):
|
827
|
+
"""Determines whether the given URI is a named individual.
|
828
|
+
|
829
|
+
uri -- URI that is tested for being a named individual
|
830
|
+
"""
|
831
|
+
if uri == _namespace_GVF1O('GVF1_0017'):
|
832
|
+
return True
|
833
|
+
if uri == _namespace_GVF1O('GVF1_0018'):
|
834
|
+
return True
|
835
|
+
if uri == _namespace_GVF1O('GVF1_0019'):
|
836
|
+
return True
|
837
|
+
if uri == _namespace_GVF1O('GVF1_0020'):
|
838
|
+
return True
|
839
|
+
return False
|
840
|
+
|
841
|
+
@classmethod
|
842
|
+
def with_parent(cls, uris, parent):
|
843
|
+
"""Returns only those URIs that fall under a designated parent URI.
|
844
|
+
|
845
|
+
uris -- Set of URIs that are tested whether they have the given parent URI.
|
846
|
+
parent -- Parent URI.
|
847
|
+
"""
|
848
|
+
return filter(lambda uri: cls.has_parent(uri, parent), uris)
|
849
|
+
|
850
|
+
@classmethod
|
851
|
+
def has_parent(cls, uri, parent):
|
852
|
+
"""Recursively tries to determine the parent for a given URI.
|
853
|
+
|
854
|
+
uri -- URI that is tested for whether it has the given parent URI.
|
855
|
+
parent -- Parent URI.
|
856
|
+
"""
|
857
|
+
if cls.__parent_properties.has_key(uri):
|
858
|
+
if cls.__parent_properties[uri] == parent:
|
859
|
+
return True
|
860
|
+
return cls.has_parent(cls.__parent_properties[uri], parent)
|
861
|
+
return False
|
862
|
+
|
863
|
+
__parent_properties = { _namespace_GVF1O('GVF1_0010') : _namespace_GVF1O('GVF1_0075') , _namespace_GVF1O('GVF1_0012') : _namespace_GVF1O('GVF1_0066') , _namespace_GVF1O('GVF1_0014') : _namespace_GVF1O('GVF1_0066') , _namespace_GVF1O('GVF1_0015') : _namespace_GVF1O('GVF1_0068') , _namespace_GVF1O('GVF1_0021') : _namespace_GVF1O('GVF1_0066') , _namespace_GVF1O('GVF1_0023') : _namespace_GVF1O('GVF1_0068') , _namespace_GVF1O('GVF1_0034') : _namespace_GVF1O('GVF1_0066') , _namespace_GVF1O('GVF1_0036') : _namespace_GVF1O('GVF1_0066') , _namespace_GVF1O('GVF1_0041') : _namespace_GVF1O('GVF1_0069') , _namespace_GVF1O('GVF1_0042') : _namespace_GVF1O('GVF1_0070') , _namespace_GVF1O('GVF1_0043') : _namespace_GVF1O('GVF1_0070') , _namespace_GVF1O('GVF1_0044') : _namespace_GVF1O('GVF1_0070') , _namespace_GVF1O('GVF1_0046') : _namespace_GVF1O('GVF1_0070') , _namespace_GVF1O('GVF1_0047') : _namespace_GVF1O('GVF1_0070') , _namespace_GVF1O('GVF1_0051') : _namespace_GVF1O('GVF1_0067') , _namespace_GVF1O('GVF1_0053') : _namespace_GVF1O('GVF1_0069') , _namespace_GVF1O('GVF1_0078') : _namespace_GVF1O('GVF1_0066') , _namespace_GVF1O('GVF1_0079') : _namespace_GVF1O('GVF1_0075') , _namespace_GVF1O('GVF1_0004') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0005') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0006') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0007') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0008') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0009') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0013') : _namespace_GVF1O('GVF1_0064') , _namespace_GVF1O('GVF1_0022') : _namespace_GVF1O('GVF1_0063') , _namespace_GVF1O('GVF1_0024') : _namespace_GVF1O('GVF1_0063') , _namespace_GVF1O('GVF1_0025') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0026') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0027') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0029') : _namespace_GVF1O('GVF1_0062') , _namespace_GVF1O('GVF1_0030') : _namespace_GVF1O('GVF1_0062') , _namespace_GVF1O('GVF1_0031') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0032') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0037') : _namespace_GVF1O('GVF1_0065') , _namespace_GVF1O('GVF1_0038') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0039') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0048') : _namespace_GVF1O('GVF1_0061') , _namespace_GVF1O('GVF1_0049') : _namespace_GVF1O('GVF1_0061') , _namespace_GVF1O('GVF1_0050') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0054') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0055') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0056') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0057') : _namespace_GVF1O('GVF1_0060') , _namespace_GVF1O('GVF1_0072') : _namespace_GVF1O('GVF1_0071') , _namespace_GVF1O('GVF1_0073') : _namespace_GVF1O('GVF1_0071') , _namespace_GVF1O('GVF1_0074') : _namespace_GVF1O('GVF1_0071') , _namespace_GVF1O('GVF1_0076') : _namespace_GVF1O('GVF1_0059') , _namespace_GVF1O('GVF1_0077') : _namespace_GVF1O('GVF1_0059') }
|
864
|
+
|