comparison libs/sratoolkit.2.8.0-centos_linux64/schema/ncbi/sra.vschema @ 3:38ad1130d077 draft

planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
author charles_s_test
date Mon, 27 Nov 2017 11:21:07 -0500
parents
children
comparison
equal deleted inserted replaced
2:0d65b71ff8df 3:38ad1130d077
1 /*===========================================================================
2 *
3 * PUBLIC DOMAIN NOTICE
4 * National Center for Biotechnology Information
5 *
6 * This software/database is a "United States Government Work" under the
7 * terms of the United States Copyright Act. It was written as part of
8 * the author's official duties as a United States Government employee and
9 * thus cannot be copyrighted. This software/database is freely available
10 * to the public for use. The National Library of Medicine and the U.S.
11 * Government have not placed any restriction on its use or reproduction.
12 *
13 * Although all reasonable efforts have been taken to ensure the accuracy
14 * and reliability of the software and data, the NLM and the U.S.
15 * Government do not and cannot warrant the performance or results that
16 * may be obtained by using this software or data. The NLM and the U.S.
17 * Government disclaim all warranties, express or implied, including
18 * warranties of performance, merchantability or fitness for any particular
19 * purpose.
20 *
21 * Please cite the author in any work or product based on this material.
22 *
23 * ===========================================================================
24 *
25 */
26
27 /*==========================================================================
28 * NCBI Sequence Read Archive schema
29 */
30 version 1;
31
32 include 'vdb/vdb.vschema';
33 include 'ncbi/seq.vschema';
34 include 'ncbi/spotname.vschema';
35 include 'insdc/sra.vschema';
36 include 'ncbi/stats.vschema';
37
38
39 /*--------------------------------------------------------------------------
40 * types
41 */
42
43
44 /* Segment - DEPRECATED
45 * a ( start, len ) pair where start is a zero-based, unsigned coordinate
46 */
47 typedef U16 NCBI:SRA:Segment [ 2 ];
48
49
50 /* SpotDesc - DEPRECATED
51 * uint16_t spot_len;
52 * uint16_t fixed_len;
53 * uint16_t signal_len;
54 * uint16_t clip_qual_right;
55 * uint8_t num_reads;
56 * uint8_t align [ 7 ];
57 */
58 typedef B8 NCBI:SRA:SpotDesc [ 16 ];
59
60
61 /* ReadDesc - DEPRECATED
62 * SRASegment { uint16_t start, len; } seg;
63 * uint8_t type;
64 * char cs_key;
65 * char label [ 74 ];
66 */
67 typedef B8 NCBI:SRA:ReadDesc [ 80 ];
68
69
70 // some types have been moved to INSDC
71 alias INSDC:SRA:platform_id NCBI:SRA:platform_id;
72 alias INSDC:SRA:read_type NCBI:SRA:read_type;
73 alias INSDC:SRA:read_filter NCBI:SRA:read_filter;
74
75 typedef NCBI:fsamp4 NCBI:SRA:rotated_fsamp4, NCBI:SRA:swapped_fsamp4;
76
77 // 16-bit POSITION type
78 typedef U16 NCBI:SRA:pos16;
79
80
81 /*--------------------------------------------------------------------------
82 * functions
83 */
84
85 /* bio_start
86 * searches through read_type vector
87 * returns the 0-based starting coordinate of first biological read
88 *
89 * "read_start" [ DATA ] - vector of read start coordinates
90 *
91 * "read_type" [ DATA ] - vector of read types
92 */
93 extern function INSDC:coord:zero
94 NCBI:SRA:bio_start #1 ( INSDC:coord:zero read_start, INSDC:SRA:xread_type read_type );
95
96
97 /* bio_end
98 * searcehes through read_type vector
99 * returns the 0 based ending coording (either inclusive or exclusive) of last
100 * biological read
101 *
102 * "read_start" [ DATA ] - vector of read start coordinates
103 *
104 * "read_type" [ DATA ] - vector of read types
105 *
106 * "read_len" [ DATA ] - vector of read lengths
107 */
108 extern function INSDC:coord:zero
109 NCBI:SRA:bio_end #1 < bool inclusive > ( INSDC:coord:zero read_start, INSDC:SRA:xread_type read_type, INSDC:coord:len read_len );
110
111
112 /* fix_read_seg
113 */
114 extern function INSDC:coord:len [ 2 ]
115 NCBI:SRA:fix_read_seg #1 ( U16 [ 2 ] rd_seg, INSDC:coord:len spot_len );
116
117
118 /* make_spot_desc
119 * assembles several bits of information together into a "C" structure
120 *
121 * "spot_len" [ DATA ] - computed spot length value
122 *
123 * "fixed_len" [ DATA, DFLT ZERO ] - the stated fixed length of all spots
124 * or zero if not fixed length
125 *
126 * "sig_len" [ DATA, DFLT ZERO ] - the length of signal/intensity data
127 * or zero if not present
128 *
129 * "trim_start" [ DATA ] - the first base included in the trim segment
130 *
131 * "trim_len" [ DATA ] - the length of the trim segment
132 *
133 * "num_reads" [ DATA ] - 1..n value
134 */
135 extern function NCBI:SRA:SpotDesc NCBI:SRA:make_spot_desc #1 ( INSDC:coord:len spot_len,
136 INSDC:coord:len fixed_len, INSDC:coord:len sig_len, INSDC:coord:zero trim_start,
137 INSDC:coord:len trim_len, U8 num_reads );
138
139
140 /* make_read_desc
141 * assembles several bits of information together into a "C" structure
142 * in theory resultant segments may intersect other read segments or leave holes in spot.
143 *
144 * "num_reads" [ DATA ] - value indicating the resulting row-length of output
145 *
146 * "read_start" [ DATA ] - ordered starting coordinates for each read
147 * not required to be sequential.
148 *
149 * "read_len" [ DATA ] - ordered lengths of each read. may be zero when
150 * read has been described but is not identified in spot.
151 *
152 * "read_type" [ DATA ] - ordered type id describing each read
153 *
154 * "read_filt" [ DATA ] - ordered read filters
155 *
156 * "cs_key" [ DATA ] - ordered color-space keys
157 *
158 * "label_start" [ DATA ] - ordered starting coordinates for each label
159 * "label_len" [ DATA ] - ordered lengths of each label
160 *
161 * "label" [ DATA ] - complete sequence of label characters, possibly empty
162 * individual read labels are identified as {start,len} pairs
163 */
164 extern function NCBI:SRA:ReadDesc NCBI:SRA:make_read_desc #1 ( U8 num_reads,
165 INSDC:coord:zero read_start, INSDC:coord:len read_len, INSDC:SRA:xread_type read_type,
166 INSDC:SRA:read_filter read_filt, INSDC:dna:text cs_key,
167 INSDC:coord:zero label_start, INSDC:coord:len label_len, ascii label );
168
169
170 /* rotate
171 * rotate a quadruple by called base
172 * now normally replaced by swap
173 *
174 * "T" [ TYPE ] - element type of quadruple to be rotated
175 *
176 * "encoding" [ CONST ] - when true, rotate input left until corresponding
177 * element is in slot 0. when false, rotate input right to restore original
178 * order.
179 *
180 * "in" [ DATA ] - data to be rotated, qualities, signal, intensities...
181 *
182 * "called" [ DATA ] - {0..3} or {0..4} binary representation of called bases or colors
183 */
184 extern function < type T >
185 T NCBI:SRA:rotate #1 < bool encoding > ( T in, U8 called );
186
187
188 /* swap
189 * swap element 0 and the called element
190 * used to ensure that the called element is in slot 0
191 *
192 * "T" [ TYPE ] - element type of quadruple to be swapped
193 *
194 * "in" [ DATA ] - data to be swapped, qualities, signal, intensities...
195 *
196 * "called" [ DATA ] - {0..3} or {0..4} binary representation of called bases or colors
197 */
198 extern function < type T >
199 T NCBI:SRA:swap #1 ( T in, U8 called );
200
201
202 /* normalize
203 * denormalize
204 *
205 * "T" [ TYPE ] - element type of quadruple to be [de]normalized
206 *
207 * "intensity" [ DATA ] - intensity data
208 *
209 * "called" [ DATA ] - {0..3} or {0..4} binary representation of called bases or colors
210 */
211 extern function < type T >
212 T NCBI:SRA:normalize #1 ( T intensity, U8 called );
213
214 extern function < type T >
215 T NCBI:SRA:denormalize #1 ( T intensity, U8 called );
216
217
218 /* make_position
219 * return a synthesized position row with 1-1 correspondence
220 *
221 * "T" [ TYPE ] - position type being generated
222 *
223 * "start" [ CONST ] - either 0 or 1, depending upon the coordinate system
224 *
225 * "bases" [ DATA ] - the actual row of bases. the output row
226 * will be the same length, but with synthesized data
227 */
228 extern function < type T >
229 T NCBI:SRA:make_position #1 < T start > ( any bases );
230
231 /* fsamp4 compression
232 * performs compression individually
233 * on called channel and alternate channels
234 */
235 function NCBI:SRA:swapped_fsamp4 NCBI:SRA:fsamp4:decode #2 ( merged_fmt in )
236 {
237 fzip_fmt cmp0 = split < 0 > ( in );
238 fzip_fmt cmp123 = split < 1 > ( in );
239 F32 ch0 = funzip ( cmp0 );
240 F32 ch123a = funzip ( cmp123 );
241 F32[3] ch123 = redimension ( ch123a );
242 return ( NCBI:SRA:swapped_fsamp4 ) < F32 > paste ( ch0, ch123 );
243 }
244
245 function merged_fmt NCBI:SRA:fsamp4:encode #2 < U32 called, U32 alt > ( NCBI:SRA:swapped_fsamp4 in )
246 {
247 F32 ch0 = < F32 > cut < 0 > ( in );
248 F32[3] ch123 = < F32 > cut < 1, 2, 3 > ( in );
249 fzip_fmt cmp0 = fzip < called > ( ch0 );
250 F32 ch123a = redimension ( ch123 );
251 fzip_fmt cmp123 = fzip < alt > ( ch123a );
252 return merge ( cmp0, cmp123 );
253 }
254
255
256 /*--------------------------------------------------------------------------
257 * spotdesc
258 * NCBI implementation productions
259 */
260
261 /* history:
262 * 1.0.1 - base explicitly upon sequence #1.0.1, spotdesc #1.0.1
263 * 1.0.2 - spotdesc #1.0.2
264 */
265 table NCBI:SRA:tbl:spotdesc_nocol #1.0.2 = INSDC:tbl:sequence #1.0.1, INSDC:SRA:tbl:spotdesc #1.0.2
266 {
267 /* LABEL_SEG
268 */
269 readonly column NCBI:SRA:Segment LABEL_SEG
270 = out_label_seg
271 | cast ( out_label_seg32 )
272 | cast ( _out_label_seg32 );
273 U32 _out_label_startU32 = ( U32 ) out_label_start;
274 U32 [ 2 ] _out_label_seg32 = < U32 > paste ( _out_label_startU32, out_label_len );
275
276
277 /* READ_SEG
278 */
279 readonly column NCBI:SRA:Segment READ_SEG
280 = out_read_seg
281 | cast ( out_read_seg32 )
282 | cast ( _out_read_seg32 );
283 U32 _out_read_startU32 = ( U32 ) out_read_start;
284 U32 [ 2 ] _out_read_seg32 = < U32 > paste ( _out_read_startU32, out_read_len );
285
286
287 /* READ_DESC
288 */
289 readonly column NCBI:SRA:ReadDesc READ_DESC
290 = NCBI:SRA:make_read_desc ( out_nreads, out_read_start, out_read_len,
291 out_read_type, _out_rd_filter, out_cs_key, _out_label_start, _out_label_len, _out_label );
292 INSDC:SRA:read_filter _out_rd_filter
293 = out_rd_filter
294 | < INSDC:SRA:read_filter > echo < SRA_READ_FILTER_PASS > ( out_read_start );
295 ascii _out_label
296 = out_label
297 | < ascii > echo < '' > ();
298 INSDC:coord:zero _out_label_start
299 = out_label_start
300 | < INSDC:coord:zero > echo < 0 > ( out_read_start );
301 INSDC:coord:len _out_label_len
302 = out_label_len
303 | < INSDC:coord:len > echo < 0 > ( out_read_start );
304
305 /* SPOT_DESC
306 */
307 readonly column NCBI:SRA:SpotDesc SPOT_DESC
308 = NCBI:SRA:make_spot_desc ( spot_len, fixed_spot_len, signal_len,
309 trim_start, trim_len, out_nreads );
310
311 /* SIGNAL_LEN
312 * normally the same as spot length when present,
313 * but in some cases ( e.g. 454 ) it may be different
314 */
315 readonly column INSDC:coord:len SIGNAL_LEN
316 = signal_len;
317 readonly column U16 SIGNAL_LEN
318 = cast ( signal_len );
319
320
321 /* INSDC:SRA:tbl:spotdesc inherited productions
322 * trim_len
323 * out_label
324 * out_nreads
325 * trim_start
326 * out_read_len
327 * out_label_len
328 * out_rd_filter
329 * out_read_type
330 * out_read_start
331 * out_label_start
332 * static_fixed_spot_len
333 */
334
335 /* NCBI:SRA:tbl:spotdesc_nocol productions
336 * out_read_seg
337 * out_label_seg
338 * out_read_seg32
339 * out_label_seg32
340 */
341 };
342
343 /* history:
344 * 1.0.1 - base explicitly upon spotdesc_nocol #1.0.1
345 * 1.0.2 - base explicitly upon spotdesc_nocol #1.0.2
346 */
347 table NCBI:SRA:tbl:spotdesc_nophys #1.0.2 = NCBI:SRA:tbl:spotdesc_nocol #1.0.2
348 {
349 // resolve virtual productions
350 U8 out_nreads = .NREADS;
351 ascii out_label = .LABEL;
352 INSDC:SRA:xread_type out_read_type = .READ_TYPE;
353 INSDC:SRA:read_filter out_rd_filter = .RD_FILTER;
354
355 INSDC:coord:zero out_label_start
356 = .LABEL_START
357 | ( INSDC:coord:zero ) < U32 > cut < 0 > ( out_label_seg32 );
358 INSDC:coord:len out_label_len
359 = .LABEL_LEN
360 | ( INSDC:coord:len ) < U32 > cut < 1 > ( out_label_seg32 );
361 U32 [ 2 ] out_label_seg32
362 = cast ( .LABEL_SEG );
363
364 INSDC:coord:zero out_read_start
365 = .READ_START
366 | ( INSDC:coord:zero ) < U32 > cut < 0 > ( out_read_seg32 );
367 INSDC:coord:len out_read_len
368 = .READ_LEN
369 | ( INSDC:coord:len ) < U32 > cut < 1 > ( out_read_seg32 );
370 U32 [ 2 ] out_read_seg32
371 = NCBI:SRA:fix_read_seg ( .READ_SEG, spot_len );
372
373
374 /* INSDC:SRA:tbl:spotdesc inherited productions
375 * trim_len
376 * trim_start
377 * out_read_type
378 * static_fixed_spot_len
379 */
380
381 /* NCBI:SRA:tbl:spotdesc_nocol inherited productions
382 * out_read_seg
383 * out_label_seg
384 */
385
386 /* NCBI:SRA:tbl:spotdesc_nophys productions
387 * .LABEL
388 * .NREADS
389 * .READ_LEN
390 * .READ_SEG
391 * .LABEL_LEN
392 * .LABEL_SEG
393 * .RD_FILTER
394 * .READ_TYPE
395 * .READ_START
396 * .LABEL_START
397 */
398 }
399
400 /* history:
401 * 1.0.1 - base explicitly upon spotdesc_nophys #1.0.1
402 * 1.0.2 - base explicitly upon spotdesc_nophys #1.0.2
403 */
404 table NCBI:SRA:tbl:spotdesc #1.0.2 = NCBI:SRA:tbl:spotdesc_nophys #1.0.2
405 {
406 // physical column encodings
407 // TBD - this has to be looked at, where dynamic segmentation is involved
408 physical column < U8 > zip_encoding .NREADS = NREADS;
409 physical column < ascii > zip_encoding .LABEL = LABEL;
410 physical column < INSDC:coord:zero > izip_encoding .LABEL_START = LABEL_START;
411 physical column < INSDC:coord:len > izip_encoding .LABEL_LEN = LABEL_LEN;
412 physical column < INSDC:coord:zero > izip_encoding .READ_START = READ_START;
413 physical column < INSDC:coord:len > izip_encoding .READ_LEN = in_read_len;
414 physical column < INSDC:SRA:xread_type > zip_encoding .READ_TYPE = in_read_type;
415 physical column < INSDC:SRA:read_filter > zip_encoding .RD_FILTER = READ_FILTER;
416
417
418 /* INSDC:SRA:tbl:spotdesc inherited productions
419 * trim_len
420 * trim_start
421 * out_read_type
422 * static_fixed_spot_len
423 */
424
425 /* NCBI:SRA:tbl:spotdesc_nocol inherited productions
426 * out_read_seg
427 * out_label_seg
428 */
429 };
430
431
432 /*--------------------------------------------------------------------------
433 * pos
434 * synthetic POSITION column on read
435 *
436 * history:
437 * 1.0.1 - base explicitly upon sequence #1.0.1
438 */
439
440 table NCBI:SRA:tbl:pos #1.0.1 = INSDC:tbl:sequence #1.0.1
441 {
442 INSDC:position:one out_position
443 = < INSDC:position:one > NCBI:SRA:make_position < 1 > ( out_2na_packed )
444 | < INSDC:position:one > NCBI:SRA:make_position < 1 > ( out_2cs_packed );
445 NCBI:SRA:pos16 out_position16
446 = < NCBI:SRA:pos16 > NCBI:SRA:make_position < 1 > ( out_2na_packed )
447 | < NCBI:SRA:pos16 > NCBI:SRA:make_position < 1 > ( out_2cs_packed );
448 };
449
450
451 /*--------------------------------------------------------------------------
452 * sra
453 * the NCBI SRA table
454 */
455
456 /* history:
457 * 1.0.1 - base explicitly upon sra #1.0.1
458 * 1.0.2 - base explicitly upon sra #1.0.2, spotdesc_nocol #1.0.1
459 * 1.0.3 - base explicitly upon sra #1.0.3, spotdesc_nocol #1.0.2
460 */
461 table NCBI:SRA:tbl:sra_nopos #1.0.3 = INSDC:SRA:tbl:sra #1.0.3, NCBI:SRA:tbl:spotdesc_nocol #1.0.2
462 {
463 // v1 declares the POSITION column for all tables
464 // but leaves all physical columns unstated
465
466 /* POSITION
467 * 1-based coordinates
468 * describes a base's position on signal
469 */
470 column INSDC:position:one POSITION = out_position;
471 readonly column NCBI:SRA:pos16 POSITION = out_position16;
472
473 // zero-based coordinates available upon request
474 readonly column INSDC:position:zero POSITION
475 = ( INSDC:position:zero ) < I32 > diff < 1 > ( out_position );
476
477 // statistics
478 U64 base_count
479 = < U64 > meta:value < "BASE_COUNT" > ();
480 U64 spot_count
481 = < U64 > meta:value < ".seq/spot" > ()
482 | < U64 > meta:value < ".seq" > () ;
483
484
485 /* INSDC:tbl:sequence inherited productions
486 * cs_native
487 * in_cs_key
488 * out_cs_key
489 * out_signal
490 * in_dna_text
491 * out_2cs_bin
492 * out_2na_bin
493 * out_4na_bin
494 * out_dna_text
495 * out_x2cs_bin
496 * out_x2na_bin
497 * in_color_text
498 * out_2cs_packed
499 * out_2na_packed
500 * out_4na_packed
501 * out_color_text
502 * out_qual_phred
503 * out_color_matrix
504 */
505
506 /* INSDC:SRA:tbl:spotname inherited productions
507 * out_x_coord
508 * out_y_coord
509 * out_name_fmt
510 * out_spot_name
511 * spot_ids_found
512 */
513
514 /* INSDC:SRA:tbl:spotdesc inherited productions
515 * trim_len
516 * out_label
517 * out_nreads
518 * trim_start
519 * out_read_len
520 * out_label_len
521 * out_rd_filter
522 * out_read_type
523 * out_read_start
524 * out_label_start
525 * static_fixed_spot_len
526 */
527
528 /* INSDC:SRA:tbl:stats inherited productions
529 * max_spot_id
530 * min_spot_id
531 * in_stats_bin
532 * bio_base_count
533 */
534
535 /* INSDC:SRA:tbl:sra inherited productions
536 * out_platform
537 * platform_name
538 */
539
540 /* NCBI:SRA:tbl:spotdesc_nocol inherited productions
541 * out_read_seg
542 * out_label_seg
543 * out_read_seg32
544 * out_label_seg32
545 */
546
547 /* NCBI:SRA:tbl:sra_nopos productions
548 * out_position
549 * out_position16
550 */
551 };
552
553 /* history:
554 * 1.0.1 - base explicitly upon sra #1.0.1
555 * 1.0.2 - base explicitly upon sra_nopos #1.0.2, pos #1.0.1
556 * 1.0.3 - base explicitly upon sra_nopos #1.0.3
557 */
558 table NCBI:SRA:tbl:sra #1.0.3 = NCBI:SRA:tbl:sra_nopos #1.0.3, NCBI:SRA:tbl:pos #1.0.1
559 {
560 // the POSITION column is synthesized for all contemporary platforms but 454
561
562 /* INSDC:tbl:sequence inherited productions
563 * cs_native
564 * in_cs_key
565 * out_cs_key
566 * out_signal
567 * in_dna_text
568 * out_2cs_bin
569 * out_2na_bin
570 * out_4na_bin
571 * out_dna_text
572 * out_x2cs_bin
573 * out_x2na_bin
574 * in_color_text
575 * out_2cs_packed
576 * out_2na_packed
577 * out_4na_packed
578 * out_color_text
579 * out_qual_phred
580 * out_color_matrix
581 */
582
583 /* INSDC:SRA:tbl:spotname inherited productions
584 * out_x_coord
585 * out_y_coord
586 * out_name_fmt
587 * out_spot_name
588 * spot_ids_found
589 */
590
591 /* INSDC:SRA:tbl:spotdesc inherited productions
592 * trim_len
593 * out_label
594 * out_nreads
595 * trim_start
596 * out_read_len
597 * out_label_len
598 * out_rd_filter
599 * out_read_type
600 * out_read_start
601 * out_label_start
602 * static_fixed_spot_len
603 */
604
605 /* INSDC:SRA:tbl:stats inherited productions
606 * max_spot_id
607 * min_spot_id
608 * in_stats_bin
609 * bio_base_count
610 */
611
612 /* INSDC:SRA:tbl:sra inherited productions
613 * out_platform
614 * platform_name
615 */
616
617 /* NCBI:SRA:tbl:spotdesc_nocol inherited productions
618 * out_read_seg
619 * out_label_seg
620 * out_read_seg32
621 * out_label_seg32
622 */
623 };
624
625
626 /* v2 consolidates many of the auxiliary columns into a single treatment
627 * left out are reads, qualities and platform-specific columns
628 *
629 * history:
630 * 2.1.2 - base upon sra #1.0.3, spotdesc #1.0.2, stats #1.1.2
631 */
632 table NCBI:SRA:tbl:sra_nopos #2.1.3 = INSDC:SRA:tbl:sra #1.0.3,
633 NCBI:SRA:tbl:skeyname #3.0.1, NCBI:SRA:tbl:spotdesc #1.0.2, NCBI:SRA:tbl:stats #1.2.0
634 {
635 // this is already specified in INSDC:SRA:tbl:sra #1
636 // but putting it here will quiet down outputs
637 INSDC:SRA:platform_id out_platform = .PLATFORM;
638
639 column INSDC:position:one POSITION
640 = out_position;
641 readonly column NCBI:SRA:pos16 POSITION
642 = cast ( _clip_position );
643 INSDC:position:one _clip_position
644 = < INSDC:position:one > clip < 0, 0xFFFF > ( out_position );
645 readonly column INSDC:position:zero POSITION
646 = ( INSDC:position:zero ) < I32 > diff < 1 > ( out_position );
647
648
649 /* INSDC:tbl:sequence inherited productions
650 * cs_native
651 * in_cs_key
652 * out_cs_key
653 * out_signal
654 * in_dna_text
655 * out_2cs_bin
656 * out_2na_bin
657 * out_4na_bin
658 * out_dna_text
659 * out_x2cs_bin
660 * out_x2na_bin
661 * in_color_text
662 * out_2cs_packed
663 * out_2na_packed
664 * out_4na_packed
665 * out_color_text
666 * out_qual_phred
667 * out_color_matrix
668 */
669
670 /* INSDC:SRA:tbl:spotdesc inherited productions
671 * trim_len
672 * trim_start
673 * out_read_type
674 * static_fixed_spot_len
675 */
676
677 /* INSDC:SRA:tbl:stats inherited productions
678 * in_stats_bin
679 */
680
681 /* INSDC:SRA:tbl:sra inherited productions
682 * out_platform
683 * platform_name
684 */
685
686 /* NCBI:SRA:tbl:skeyname inherited productions
687 * in_spot_name_tok
688 */
689
690 /* NCBI:SRA:tbl:spotdesc_nocol inherited productions
691 * out_read_seg
692 * out_label_seg
693 */
694
695 /* NCBI:SRA:tbl:sra_nopos productions
696 * out_position
697 */
698 };
699
700 /* most platforms don't have a native POSITION
701 * mix in "pos" table to synthesize it
702 *
703 * history:
704 * 2.1.2 - base upon sra#1.0.3, spotdesc #1.0.2, stats #1.1.2
705 */
706 table NCBI:SRA:tbl:sra #2.1.3 = INSDC:SRA:tbl:sra #1.0.3,
707 NCBI:SRA:tbl:skeyname #3.0.1, NCBI:SRA:tbl:spotdesc #1.0.2,
708 NCBI:SRA:tbl:stats #1.2.0, NCBI:SRA:tbl:pos #1.0.1
709 {
710 readonly column INSDC:position:one POSITION
711 = out_position;
712 readonly column NCBI:SRA:pos16 POSITION
713 = out_position16;
714 readonly column INSDC:position:zero POSITION
715 = ( INSDC:position:zero ) < I32 > diff < 1 > ( out_position );
716
717
718 /* INSDC:tbl:sequence inherited productions
719 * cs_native
720 * in_cs_key
721 * out_cs_key
722 * out_signal
723 * in_dna_text
724 * out_2cs_bin
725 * out_2na_bin
726 * out_4na_bin
727 * out_dna_text
728 * out_x2cs_bin
729 * out_x2na_bin
730 * in_color_text
731 * out_2cs_packed
732 * out_2na_packed
733 * out_4na_packed
734 * out_color_text
735 * out_qual_phred
736 * out_color_matrix
737 */
738
739 /* INSDC:SRA:tbl:spotdesc inherited productions
740 * trim_len
741 * trim_start
742 * out_read_type
743 * static_fixed_spot_len
744 */
745
746 /* INSDC:SRA:tbl:stats inherited productions
747 * in_stats_bin
748 */
749
750 /* INSDC:SRA:tbl:sra inherited productions
751 * out_platform
752 * platform_name
753 */
754
755 /* NCBI:SRA:tbl:skeyname inherited productions
756 * in_spot_name_tok
757 */
758 };