Line 134: |
Line 134: |
| | numBases || style="text-align: left;"| Number of bases at this position || uint8_t || 1-255 | | | numBases || style="text-align: left;"| Number of bases at this position || uint8_t || 1-255 |
| |- | | |- |
− | | all Bases || style="text-align: left;"| 4-bit encoded bases/deletions for this position | + | | all Bases || style="text-align: left;"| 8-bit encoded bases/deletions for this position |
− | 1st base is in the upper bits of 1st byte
| + | | uint8_t[numBases] |
− | | |
− | if odd number of bases, the lower bits of the last byte are 0.
| |
− | | uint8_t[(numBases+1)/2] | |
| | 0=A, 1=C, | | | 0=A, 1=C, |
| 2=G, 3=T, | | 2=G, 3=T, |
Line 150: |
Line 147: |
| |- | | |- |
| | allStrands || style="text-align: left;"| Strand for all bases at this position | | | allStrands || style="text-align: left;"| Strand for all bases at this position |
− | strand of the 1st base is in the uppermost bit of the first byte
| + | | uint8_t[numBases] |
− | | |
− | if numBases is not a multiple of 8, the extra lower bits are set to 0
| |
− | | uint8_t[(numBases+7)/8] | |
| | 0 - forward | | | 0 - forward |
| 1 - reverse | | 1 - reverse |
Line 166: |
Line 160: |
| ==== Example ==== | | ==== Example ==== |
| | | |
− | Hex dump of a record: 0x0302231d1d0201402c22 | + | Hex dump of a record: 0x230202031d1d020100012c22 |
| | | |
| {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; text-align: center;" border="1" | | {| style="margin: 1em 1em 1em 0; background-color: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; text-align: center;" border="1" |
| |-style="background: #f2f2f2; text-align: center;" | | |-style="background: #f2f2f2; text-align: center;" |
− | ! width="25" | 0 !! width="25" | 1 !! width="25" | 2 !! width="25" | 3 !! width="25" | 4 !! width="25" | 5 !! width="25" | 6 !! width="25" | 7 !! width="25" | 8 !! width="25" | 9 !! width="25" | 10 !! width="25" | 11 !! width="25" | 12 !! width="25" | 13 !! width="25" | 14 !! width="25" | 15 !! width="25" | 16 !! width="25" | 17 !! width="25" | 18 !! width="25" | 19 !! width="25" | 20 !! width="25" | 21 !! width="25" | 22 !! width="25" | 23 !! width="25" | 24 !! width="25" | 25 !! width="25" | 26 !! width="25" | 27 !! width="25" | 28 !! width="25" | 29 !! width="25" | 30 !! width="25" | 31 !! width="25" | 32 !! width="25" | 33 !! width="25" | 34 !! width="25" | 35 !! width="25" | 36 !! width="25" | 37 !! width="25" | 38 !! width="25" | 39 !! width="25" | 40 !! width="25" | 41 !! width="25" | 42 !! width="25" | 43 !! width="25" | 44 !! width="25" | 45 !! width="25" | 46 !! width="25" | 47 !! width="25" | 48 !! width="25" | 49 !! width="25" | 50 !! width="25" | 51 !! width="25" | 52 !! width="25" | 53 !! width="25" | 54 !! width="25" | 55 !! width="25" | 56 !! width="25" | 57 !! width="25" | 58 !! width="25" | 59 !! width="25" | 60 !! width="25" | 61 !! width="25" | 62 !! width="25" | 63 !! width="25" | 64 !! width="25" | 65 !! width="25" | 66 !! width="25" | 67 !! width="25" | 68 !! width="25" | 69 !! width="25" | 70 !! width="25" | 71 !! width="25" | 72 !! width="25" | 73 !! width="25" | 74 !! width="25" | 75 !! width="25" | 76 !! width="25" | 77 !! width="25" | 78 !! width="25" | 79 | + | ! width="25" | 0 !! width="25" | 1 !! width="25" | 2 !! width="25" | 3 !! width="25" | 4 !! width="25" | 5 !! width="25" | 6 !! width="25" | 7 !! width="25" | 8 !! width="25" | 9 !! width="25" | 10 !! width="25" | 11 !! width="25" | 12 !! width="25" | 13 !! width="25" | 14 !! width="25" | 15 !! width="25" | 16 !! width="25" | 17 !! width="25" | 18 !! width="25" | 19 !! width="25" | 20 !! width="25" | 21 !! width="25" | 22 !! width="25" | 23 !! width="25" | 24 !! width="25" | 25 !! width="25" | 26 !! width="25" | 27 !! width="25" | 28 !! width="25" | 29 !! width="25" | 30 !! width="25" | 31 !! width="25" | 32 !! width="25" | 33 !! width="25" | 34 !! width="25" | 35 !! width="25" | 36 !! width="25" | 37 !! width="25" | 38 !! width="25" | 39 !! width="25" | 40 !! width="25" | 41 !! width="25" | 42 !! width="25" | 43 !! width="25" | 44 !! width="25" | 45 !! width="25" | 46 !! width="25" | 47 !! width="25" | 48 !! width="25" | 49 !! width="25" | 50 !! width="25" | 51 !! width="25" | 52 !! width="25" | 53 !! width="25" | 54 !! width="25" | 55 !! width="25" | 56 !! width="25" | 57 !! width="25" | 58 !! width="25" | 59 !! width="25" | 60 !! width="25" | 61 !! width="25" | 62 !! width="25" | 63 !! width="25" | 64 !! width="25" | 65 !! width="25" | 66 !! width="25" | 67 !! width="25" | 68 !! width="25" | 69 !! width="25" | 70 !! width="25" | 71 !! width="25" | 72 !! width="25" | 73 !! width="25" | 74 !! width="25" | 75 !! width="25" | 76 !! width="25" | 77 !! width="25" | 78 !! width="25" | 79 !! width="25" | 80 !! width="25" | 81 !! width="25" | 82 !! width="25" | 83 !! width="25" | 84 !! width="25" | 85 !! width="25" | 86 !! width="25" | 87 !! width="25" | 88 !! width="25" | 89 !! width="25" | 90 !! width="25" | 91 !! width="25" | 92 !! width="25" | 93 !! width="25" | 94 !! width="25" | 95 |
| |- | | |- |
− | | colspan="8" | 23 || colspan="8" | 02 || colspan="8" | 23 || colspan="8" | 1D || colspan="8" | 1D || colspan="8" | 02 || colspan="8" | 01 || colspan="8" | 40 || colspan="8" | 2C || colspan="8" | 22 | + | | colspan="8" | 23 || colspan="8" | 02 || colspan="8" | 02 || colspan="8" | 03 || colspan="8" | 1D || colspan="8" | 1D || colspan="8" | 02 || colspan="8" | 01 || colspan="8" | 00 || colspan="8" | 01 || colspan="8" | 2C || colspan="8" | 22 |
| |- | | |- |
− | | colspan="4" | RefBase = G || colspan="4" | Type = DETAILED || colspan="8" | NumBases = 2 || colspan="8" | Base1 = 2 = G, Base2 = 3 = T || colspan="8" | Qual1 = 0x1D = 29 = '>' || colspan="8" | Qual2 = 0x1D = 29 = '>' || colspan="8" | Cycle1 = 2 || colspan="8" | Cycle2 = 1 || colspan="8" | Strand1 (bit 56) = 0 = forward, | + | | colspan="4" | RefBase = G || colspan="4" | Type = DETAILED || colspan="8" | NumBases = 2 || colspan="8" | Base1 = 2 = G || colspan="8" | Base2 = 3 = T || colspan="8" | Qual1 = 0x1D = 29 = '>' || colspan="8" | Qual2 = 0x1D = 29 = '>' || colspan="8" | Cycle1 = 2 || colspan="8" | Cycle2 = 1 || colspan="8" | Strand1 = 0 = forward || colspan="8" | Strand2 = 1 = reverse || colspan="8" | MapQual1 = 0x2C = 44 || colspan="8" | MapQual2 = 0x22 = 34 |
− | Strand2 (bit 57) = 1 = reverse, | |
− | | |
− | extra bits are dummy bits = 0
| |
− | | colspan="8" | MapQual1 = 0x2C = 44 || colspan="8" | MapQual2 = 0x22 = 34 | |
| |- | | |- |
− | | colspan="4" | 2 || colspan="4" | 3 || colspan="4" | 0 || colspan="4" | 2 || colspan="4" | 2 || colspan="4" | 3 || colspan="4" | 1 || colspan="4" | D || colspan="4" | 1 || colspan="4" | D || colspan="4" | 0 || colspan="4" | 2 || colspan="4" | 0 || colspan="4" | 1 || colspan="4" | 4 || colspan="4" | 0 || colspan="4" | 2 || colspan="4" | C || colspan="4" | 2 || colspan="4" | 2 | + | | colspan="4" | 2 || colspan="4" | 3 || colspan="4" | 0 || colspan="4" | 2 || colspan="4" | 0 || colspan="4" | 2 || colspan="4" | 0 || colspan="4" | 3 || colspan="4" | 1 || colspan="4" | D || colspan="4" | 1 || colspan="4" | D || colspan="4" | 0 || colspan="4" | 2 || colspan="4" | 0 || colspan="4" | 1 || colspan="4" | 0 || colspan="4" | 0 || colspan="4" | 0 || colspan="4" | 1 || colspan="4" | 2 || colspan="4" | C || colspan="4" | 2 || colspan="4" | 2 |
| |- | | |- |
− | | 0 || 0 || 1 || 0 || 0 || 0 || 1 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 1 || 1 || 0 || 0 || 0 || 1 || 1 || 1 || 0 || 1 || 0 || 0 || 0 || 1 || 1 || 1 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 1 || 1 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 1 || 0 | + | | 0 || 0 || 1 || 0 || 0 || 0 || 1 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 1 || 0 || 0 || 0 || 1 || 1 || 1 || 0 || 1 || 0 || 0 || 0 || 1 || 1 || 1 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 1 || 0 || 1 || 1 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 1 || 0 |
| |} | | |} |
| | | |