1include 'ncbi/sra.vschema';
2include 'align/seq.vschema';
3
4extern function
5INSDC:4na:bin NCBI:align:seq_restore_read #1 ( INSDC:4na:bin cmp_rd, I64 align_id,
6        INSDC:coord:len read_len, INSDC:SRA:xread_type rd_type )
7    = ALIGN:seq_restore_read;
8
9table NCBI:align:tbl:seq #1.0.0 =
10    NCBI:tbl:base_space #2.0.3,
11    NCBI:tbl:phred_quality #2.0,
12    NCBI:align:tbl:cmp_base_space #1,
13    NCBI:SRA:tbl:spotdesc #1.0.2,
14    NCBI:SRA:tbl:stats #1.2.0
15{
16    // 128K
17    column default limit = 131072;
18
19    // gets primary record in alignment table (size of column is NREADS)
20    // if sorted - should used special encoding
21    extern column <I64> izip_encoding PRIMARY_ALIGNMENT_ID;
22
23    INSDC:coord:zero trim_start = < INSDC:coord:zero > echo < 0 > ();
24    INSDC:coord:len trim_len = _spot_len;
25
26    // size is NREADS
27    extern column < U8 > zip_encoding ALIGNMENT_COUNT;
28
29    // allow NAME to be set externally. otherwise, auto-generate name from row-id
30    physical column < ascii > zip_encoding .NAME = name_in;
31    ascii name_in = NAME;
32    ascii out_name_fmt = .NAME | < ascii > echo < '$R' > ();
33
34    // temparary column
35    extern column < U64 > izip_encoding TMP_KEY_ID;
36
37    // restored  READ
38    INSDC:4na:bin out_dcmp_4na_bin
39        = NCBI:align:seq_restore_read (out_cmp_4na_bin, .PRIMARY_ALIGNMENT_ID, .READ_LEN, .READ_TYPE);
40
41    extern column < U64 > izip_encoding TI;
42};
43
44database NCBI:align:db:alignment_sorted #1.3
45{
46    table NCBI:align:tbl:seq #1.0 SEQUENCE;
47};
48