Update position hash table

This commit is contained in:
Haoyu Cheng
2019-05-14 17:02:03 -04:00
parent df18b5af76
commit 45355a1103
17 changed files with 878 additions and 120 deletions
+27
View File
@@ -7,11 +7,17 @@
#include <zlib.h>
#include "kseq.h"
#define READ_INIT_NUMBER 1000
#define READ_BLOCK_SIZE 64
#define READ_BLOCK_NUM_PRE_THR 100
#define IS_FULL(buffer) ((buffer.num >= buffer.size)?1:0)
#define IS_EMPTY(buffer) ((buffer.num == 0)?1:0)
#define Get_READ_LENGTH(R_INF, ID) (R_INF.index[ID+1] - R_INF.index[ID])
#define Get_NAME_LENGTH(R_INF, ID) (R_INF.name_index[ID+1] - R_INF.name_index[ID])
#define Get_READ(R_INF, ID) (R_INF.read + R_INF.index[ID])
#define Get_NAME(R_INF, ID) (R_INF.name + R_INF.name_index[ID])
@@ -23,6 +29,24 @@ int get_read(kseq_t *s);
typedef struct
{
char* read;
char* name;
uint64_t* index;
uint64_t index_size;
uint64_t* name_index;
uint64_t name_index_size;
uint64_t total_reads;
uint64_t total_reads_bases;
uint64_t total_name_length;
} All_reads;
extern All_reads R_INF;
void malloc_All_reads(All_reads* r);
typedef struct
{
kseq_t* read;
@@ -41,6 +65,7 @@ typedef struct
} R_buffer;
void init_R_buffer(int thread_num);
void init_All_reads(All_reads* r);
void* input_reads_muti_threads(void*);
void init_R_buffer_block(R_buffer_block* curr_sub_block);
int get_reads_mul_thread(R_buffer_block* curr_sub_block);
@@ -48,5 +73,7 @@ int get_reads_mul_thread(R_buffer_block* curr_sub_block);
void Counting_block();
void destory_R_buffer_block(R_buffer_block* curr_sub_block);
void destory_R_buffer();
void clear_R_buffer();
#endif