Documentation
¶
Index ¶
- Constants
- Variables
- func PutUint64s(buf []byte, v1, v2 uint64) (ctrl byte, n int)
- func Uint64s(ctrl byte, buf []byte) (values [2]uint64, n int)
- type Header
- type Reader
- func (reader *Reader) GetGlobalTaxid() uint32
- func (reader *Reader) GetMaxHash() uint64
- func (reader *Reader) GetScale() uint32
- func (reader *Reader) GetTaxidBytesLength() int
- func (reader *Reader) HasGlobalTaxid() bool
- func (reader *Reader) HasTaxidInfo() bool
- func (reader *Reader) IsCanonical() bool
- func (reader *Reader) IsCompact() bool
- func (reader *Reader) IsHashed() bool
- func (reader *Reader) IsIncludeTaxid() bool
- func (reader *Reader) IsScaled() bool
- func (reader *Reader) IsSorted() bool
- func (reader *Reader) Read() (kmers.KmerCode, error)
- func (reader *Reader) ReadCode() (uint64, error)
- func (reader *Reader) ReadCodeWithTaxid() (code uint64, taxid uint32, err error)
- func (reader *Reader) ReadTaxid() (taxid uint32, err error)
- func (reader *Reader) ReadWithTaxid() (kmers.KmerCode, uint32, error)
- type Writer
- func (writer *Writer) Flush() (err error)
- func (writer *Writer) SetGlobalTaxid(taxid uint32) error
- func (writer *Writer) SetMaxHash(maxHash uint64) error
- func (writer *Writer) SetMaxTaxid(taxid uint32) error
- func (writer *Writer) SetScale(scale uint32) error
- func (writer *Writer) Write(kcode kmers.KmerCode) (err error)
- func (writer *Writer) WriteCode(code uint64) (err error)
- func (writer *Writer) WriteCodeWithTaxid(code uint64, taxid uint32) (err error)
- func (writer *Writer) WriteHeader() (err error)
- func (writer *Writer) WriteKmer(mer []byte) error
- func (writer *Writer) WriteKmerWithTaxid(mer []byte, taxid uint32) error
- func (writer *Writer) WriteTaxid(taxid uint32) (err error)
- func (writer *Writer) WriteWithTaxid(kcode kmers.KmerCode, taxid uint32) (err error)
Constants ¶
const ( // UnikCompact means k-mers are serialized in fix-length (n = int((K + 3) / 4) ) of byte array. UnikCompact = 1 << iota // UnikCanonical means only canonical k-mers kept. UnikCanonical // UnikSorted means k-mers are sorted UnikSorted // when sorted, the serialization structure is very different // UnikIncludeTaxID means a k-mer is followed its LCA taxid UnikIncludeTaxID // UnikHashed means ntHash value are saved as code. UnikHashed // UnikScaled means only hashes smaller than or equal to max_hash are saved. UnikScaled )
const MainVersion uint8 = 5
MainVersion is the main version number.
const MinorVersion uint8 = 0
MinorVersion is the minor version number.
Variables ¶
var ErrBrokenFile = errors.New("unik: broken file")
ErrBrokenFile means the file is not complete.
var ErrCallLate = errors.New("unik: SetMaxTaxid/SetGlobalTaxid should be called before writing KmerCode/code/taxid")
ErrCallLate means SetMaxTaxid/SetGlobalTaxid should be called before writing KmerCode/code/taxid
var ErrCallOrder = errors.New("unik: WriteTaxid/ReadTaxid should be called after WriteCode/ReadCode")
ErrCallOrder means WriteTaxid/ReadTaxid should be called after WriteCode/ReadCode
var ErrCallReadWriteTaxid = errors.New("unik: can not call ReadTaxid/WriteTaxid when flag UnikIncludeTaxID is off")
ErrCallReadWriteTaxid means flag UnikIncludeTaxID is off, but you call ReadTaxid/WriteTaxid
var ErrDescTooLong = errors.New("unik: description too long, 128 bytes at most")
ErrDescTooLong means length of description two long
var ErrInvalidFileFormat = errors.New("unik: invalid binary format")
ErrInvalidFileFormat means invalid file format.
var ErrInvalidTaxid = errors.New("unik: invalid taxid, 0 not allowed")
ErrInvalidTaxid means zero given for a taxid.
var ErrKMismatch = errors.New("unik: K mismatch")
ErrKMismatch means K size mismatch.
var ErrKOverflow = errors.New("unik: k-mer size (1-32) overflow")
ErrKOverflow means K > 32.
var ErrVersionMismatch = errors.New("unik: version mismatch")
ErrVersionMismatch means version mismatch between files and program
var Magic = [8]byte{'.', 'u', 'n', 'i', 'k', 'm', 'e', 'r'}
Magic number of binary file.
Functions ¶
func PutUint64s ¶
PutUint64s endcodes two uint64s into 2-16 bytes, and returns control byte and encoded byte length.
Types ¶
type Header ¶
type Header struct {
MainVersion uint8
MinorVersion uint8
K int
Flag uint32
Number uint64 // Number of Kmers, may not be accurate
Description []byte // let's limit it to 128 Bytes
Scale uint32 // scale of down-sampling
MaxHash uint64 // max hash for scaling/down-sampling
// contains filtered or unexported fields
}
Header contains metadata
type Reader ¶
type Reader struct {
Header
// contains filtered or unexported fields
}
Reader is for reading kmers.KmerCode.
func (*Reader) GetGlobalTaxid ¶
GetGlobalTaxid returns the global taxid
func (*Reader) GetMaxHash ¶
GetMaxHash returns the max hash for scaling.
func (*Reader) GetTaxidBytesLength ¶
GetTaxidBytesLength returns number of byte to store a taxid
func (*Reader) HasGlobalTaxid ¶
HasGlobalTaxid means the file has a global taxid
func (*Reader) HasTaxidInfo ¶
HasTaxidInfo means the binary file contains global taxid or taxids for all k-mers
func (*Reader) IsCanonical ¶
IsCanonical tells if the only canonical k-mers stored
func (*Reader) IsIncludeTaxid ¶
IsIncludeTaxid tells if every k-mer is followed by its taxid
func (*Reader) ReadCodeWithTaxid ¶
ReadCodeWithTaxid reads a code, also return taxid if having.
type Writer ¶
type Writer struct {
Header
// contains filtered or unexported fields
}
Writer writes kmers.KmerCode.
func (*Writer) SetGlobalTaxid ¶
SetGlobalTaxid sets the global taxid
func (*Writer) SetMaxHash ¶
SetMaxHash set the max hash
func (*Writer) SetMaxTaxid ¶
SetMaxTaxid set the maxtaxid
func (*Writer) WriteCodeWithTaxid ¶
WriteCodeWithTaxid writes a code and its taxid. If UnikIncludeTaxID is off, taxid will not be written.
func (*Writer) WriteHeader ¶
WriteHeader writes file header
func (*Writer) WriteKmerWithTaxid ¶
WriteKmerWithTaxid writes one k-mer and its taxid
func (*Writer) WriteTaxid ¶
WriteTaxid appends taxid to the code
