Mercurial > repos > bitlab > bitlab
diff chromeister/src/structs.h @ 0:ee6b15b409e5 draft
Uploaded
author | bitlab |
---|---|
date | Thu, 13 Dec 2018 06:27:57 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chromeister/src/structs.h Thu Dec 13 06:27:57 2018 -0500 @@ -0,0 +1,143 @@ +#ifndef STRUCTS_H +#define STRUCTS_H + +#include <inttypes.h> + +//Structs required for the dotplot workflow +#define MAXLID 200 +//#define READBUF 2000000000 //2 GB +#define READBUF 500000000 //50MB +#define INITSEQS 3000 //Number of starting sequences (in database) +#define POINT 4 + +#define FIXED_K 12 +#define TOTAL_ENTRIES 16777216 + +#define MAXLID 200 +#define ALIGN_LEN 60 //For NW alignment +#define MAX_READ_SIZE 20000 //Maximum length of read to have a portion of the table allocated +#define MAX_WINDOW_SIZE 500 //Maximum window length to explore NW table +//#define POOL_SIZE 2500000000 // by 16 bytes it is 40 GB +#define POOL_SIZE 12500000 // 1 GB if 16 bytes +#define MAX_MEM_POOLS 256 + +#define BYTES_IN_MER 4 +#define MAX_DECOMP_HASH 10 +#define FALSE 0 +#define TRUE 1 + +#define MAX(x, y) (((x) > (y)) ? (x) : (y)) +#define MIN(x, y) (((x) <= (y)) ? (x) : (y)) + +extern uint64_t custom_kmer; +extern uint64_t diffuse_z; + +//Struct for linked list of positions +typedef struct linked_list_pos{ + uint64_t pos; + //uint64_t extended_hash; + //unsigned char decomp_hash[MAX_DECOMP_HASH]; // Fits up to MAX_DECOMP_HASH*4 letters = 256 length kmer + //uint64_t hits_count; + struct linked_list_pos * next; +} llpos; + + +// An AVL tree node +typedef struct AVL_Node{ + uint64_t key; + struct AVL_Node * left; + struct AVL_Node * right; + uint64_t height; + uint64_t count; + llpos * next; +} AVLTree; + + +// Tuple of data +typedef struct tuple_hits{ + int repetition; + int hit_count; + uint64_t key; + uint64_t pos; + uint64_t pos_in_y; +} Tuple_hits; + +typedef struct hash_holder{ + uint64_t key; + uint64_t pos; +} Hash_holder; + + + +//Struct for memory pool por lists +typedef struct mempool_l{ + llpos * base; + uint64_t current; +} Mempool_l; + +//Struct for memory pool por AVLtree +typedef struct mempool_AVL{ + AVLTree * base; + uint64_t current; +} Mempool_AVL; + +//Struct for a whole sequence(s) data +typedef struct seqinfo{ + unsigned char * sequences; + uint64_t * start_pos; + uint64_t total_len; + uint64_t n_seqs; +} SeqInfo; + +//Struct for the alignment of a quick hit +typedef struct quickfrag{ + uint64_t x_start; + uint64_t y_start; + uint64_t t_len; + long double coverage; + long double e_value; +} Quickfrag; + +typedef struct point{ + uint64_t x; + uint64_t y; +} Point; + + + +struct cell{ + int64_t score; + uint64_t xfrom; + uint64_t yfrom; +}; + +struct positioned_cell{ + int64_t score; + uint64_t xpos; + uint64_t ypos; +}; + +struct best_cell{ + struct positioned_cell c; + uint64_t j_prime; +}; + +typedef struct{ + uint64_t identities; + uint64_t length; + uint64_t igaps; + uint64_t egaps; +} BasicAlignment; + +typedef struct queue{ + uint64_t r1; //reads region + uint64_t r2; + struct queue * next; +} Queue; + +typedef struct{ + Queue * head; +} Head; + + +#endif