Given that there are four bases, i would have thought you could reliably do it in 2. What am i missing?
Given that there are four bases, i would have thought you could reliably do it in 2. What am i missing?
"N" for uNknown, where the raw sensor information - which should be a series of nice Gaussians[1 top] - was too ambiguous/low-quality for a useful basecall, but the presence of something can be inferred from the timing information[1 bottom, with "N"s in some bases]
An additional unused bit pattern was reserved for future emergency additions. It used the longest bit pattern so future additions wouldn't be balanced properly, but I wanted something simple, guaranteed binary-compatibility, that could handle a sudden change in requirements.
In some situations, a variation was used that included a few symbols for partial basecalls like "unknown purine" (A or G) and "unknown pyrimidine" (C or T).
[1] http://image.slidesharecdn.com/binoinfo-8-141021112354-conve...
If N is rare though, you're better off just doing blocks of 2-bit encoding and dropping to something more complex for the rare cases. Or of course just using an arithmetic / range / ANS coder.
[1] https://en.wikipedia.org/wiki/GC-content#Among-genome_variat...