53 #ifndef VARIANTKEY_NRVK_H 54 #define VARIANTKEY_NRVK_H 61 #ifndef ALLELE_MAXSIZE 62 #define ALLELE_MAXSIZE 256 101 nvc->
vk = (
const uint64_t *)(mf->
src + mf->
index[0]);
109 if (pos >= nvc.
nrows)
114 *sizeref = (size_t)(*(data++));
115 *sizealt = (size_t)(*(data++));
116 memcpy(ref, data, *sizeref);
118 memcpy(alt, (data + *sizeref), *sizealt);
120 return (*sizeref + *sizealt);
140 uint64_t max = nvc.
nrows;
159 if ((len == 0) && (nvc.
nrows > 0))
178 return ((vk & 0x0000000078000000) >> 27);
181 uint64_t max = nvc.
nrows;
183 if (found >= nvc.
nrows)
187 return (
size_t)(*(nvc.
data + *(nvc.
offset + found)));
242 fp = fopen(tsvfile,
"we");
247 for (i = 0; i < nvc.
nrows; i++)
250 fprintf(fp,
"%016" PRIx64
"\t%s\t%s\n", *nvc.
vk++, ref, alt);
256 #endif // VARIANTKEY_NRVK_H static uint8_t extract_variantkey_chrom(uint64_t vk)
Extract the CHROM code from VariantKey.
Definition: variantkey.h:451
size_t sizeref
Length of reference allele.
Definition: nrvk.h:74
static uint32_t extract_variantkey_pos(uint64_t vk)
Extract the POS code from VariantKey.
Definition: variantkey.h:462
uint64_t nrows
Number of rows.
Definition: binsearch.h:236
size_t sizealt
Length of alternate allele.
Definition: nrvk.h:75
Definition: binsearch.h:229
const uint64_t * offset
Pointer to the Offset column.
Definition: nrvk.h:84
static uint64_t get_variantkey_chrom_endpos(nrvk_cols_t nvc, uint64_t vk)
Get the CHROM + END POS encoding from VariantKey.
Definition: nrvk.h:221
struct nrvk_cols_t nrvk_cols_t
uint8_t * src
Pointer to the memory map.
Definition: binsearch.h:231
uint32_t pos
Reference position, with the first base having position 0.
Definition: nrvk.h:71
static size_t decode_chrom(uint8_t code, char *chrom)
Decode the chromosome numerical code.
Definition: variantkey.h:145
static size_t decode_refalt(uint32_t code, char *ref, size_t *sizeref, char *alt, size_t *sizealt)
Decode the 32 bit REF+ALT code if reversible (if it has 11 or less bases in total and only contains A...
Definition: variantkey.h:423
static size_t get_nrvk_ref_alt_by_pos(nrvk_cols_t nvc, uint64_t pos, char *ref, size_t *sizeref, char *alt, size_t *sizealt)
Definition: nrvk.h:107
static uint64_t col_find_first_uint64_t(const uint64_t *src, uint64_t *first, uint64_t *last, uint64_t search)
Definition: binsearch.h:708
char chrom[3]
Chromosome.
Definition: nrvk.h:70
static void mmap_binfile(const char *file, mmfile_t *mf)
Definition: binsearch.h:995
struct variantkey_rev_t variantkey_rev_t
static size_t find_ref_alt_by_variantkey(nrvk_cols_t nvc, uint64_t vk, char *ref, size_t *sizeref, char *alt, size_t *sizealt)
Definition: nrvk.h:137
static uint32_t get_variantkey_endpos(nrvk_cols_t nvc, uint64_t vk)
Definition: nrvk.h:198
static size_t reverse_variantkey(nrvk_cols_t nvc, uint64_t vk, variantkey_rev_t *rev)
Definition: nrvk.h:154
static size_t nrvk_bin_to_tsv(nrvk_cols_t nvc, const char *tsvfile)
Definition: nrvk.h:235
static uint32_t extract_variantkey_refalt(uint64_t vk)
Extract the REF+ALT code from VariantKey.
Definition: variantkey.h:473
VariantKey main functions.
static size_t get_variantkey_ref_length(nrvk_cols_t nvc, uint64_t vk)
Definition: nrvk.h:174
const uint8_t * data
Pointer to the Data column.
Definition: nrvk.h:85
Functions to search values in binary files made of constant-length items.
#define VKSHIFT_POS
POS LSB position from the VariantKey LSB.
Definition: variantkey.h:56
uint64_t index[256]
Index of the offsets to the beginning of each column.
Definition: binsearch.h:239
#define ALLELE_MAXSIZE
Maximum allele length.
Definition: nrvk.h:62
const uint64_t * vk
Pointer to the VariantKey column.
Definition: nrvk.h:83
#define VKMASK_CHROM
VariantKey binary mask for CHROM [ 11111000 00000000 00000000 00000000 00000000 00000000 00000000 000...
Definition: variantkey.h:51
static void mmap_nrvk_file(const char *file, mmfile_t *mf, nrvk_cols_t *nvc)
Definition: nrvk.h:98
char ref[256]
Reference allele.
Definition: nrvk.h:72
char alt[256]
Alternate allele.
Definition: nrvk.h:73
static uint64_t get_variantkey_chrom_startpos(uint64_t vk)
Get the CHROM + START POS encoding from VariantKey.
Definition: nrvk.h:209
uint64_t nrows
Number of rows.
Definition: nrvk.h:86