From: Henry B. <hrb...@gm...> - 2014-12-27 04:39:25
|
Hi, According to SAMv1.pdf (from https://github.com/samtools/hts-specs), a BGZF block can have a total block size BSIZE, held in a uint16_t, so therefore a maximum of 16653 bytes. The maximum uncompressed size, ISIZE is held in a uint32_t, not surprisingly. The definition of virtual file offset is given: "Each virtual file offset is an unsigned 64-bit integer, defined as: coffset<<16|uoffset, where coffset is an unsigned byte offset into the BGZF file to the beginning of a BGZF block, and uoffset is an unsigned byte offset into the uncompressed data stream represented by that BGZF block" This would imply that 'uoffset' can only have 16 bits, making the virtual file offset incapable of addressing completely an uncompressed block that happens to have an ISIZE > 65535. If this is the case, then is there some reason why it is never necessary to address a position past 65535 uncompressed bytes in a block? Thanks, Henry |