This commit is contained in:
Haoyu Cheng
2019-05-17 00:52:10 -04:00
parent 17553e0a42
commit 7cebaf271b
11 changed files with 55 additions and 16 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+24 -6
View File
@@ -400,18 +400,29 @@ void Build_hash_table_multiple_thr()
{
write_Total_Pos_Table(&PCB, read_file_name);
destory_Total_Pos_Table(&PCB);
load_Total_Pos_Table(&PCB, read_file_name);
///load_Total_Pos_Table(&PCB, read_file_name);
write_All_reads(&R_INF, read_file_name);
destory_All_reads(&R_INF);
load_All_reads(&R_INF, read_file_name);
///load_All_reads(&R_INF, read_file_name);
}
}
int load_pre_cauculated_index()
{
if(load_Total_Pos_Table(&PCB, read_file_name) && load_All_reads(&R_INF, read_file_name))
{
return 1;
}
else
{
return 0;
}
}
/********************************for debug***************************************/
@@ -508,15 +519,18 @@ void verify_Position_hash_table()
while (get_read(seq))
{
if (seq->seq.l
!= Get_READ_LENGTH(R_INF, read_number))
{
fprintf(stderr, "seq error\n");
}
recover_UC_Read(&g_read, &R_INF, read_number);
if(memcmp(seq->seq.s, g_read.seq, seq->seq.l))
{
fprintf(stderr, "\nseq error ID: %llu, length: %llu\n",read_number, seq->seq.l);
@@ -536,7 +550,6 @@ void verify_Position_hash_table()
}
init_HPC_seq(&HPC_read, seq->seq.s, seq->seq.l);
init_Hash_code(&k_code);
@@ -545,6 +558,8 @@ void verify_Position_hash_table()
while ((code = get_HPC_code(&HPC_read)) != 6)
{
if(code < 4)
{
k_mer_append(&k_code,code,k_mer_length);
@@ -552,14 +567,17 @@ void verify_Position_hash_table()
if (avalible_k>=k_mer_length)
{
uint64_t count1 = get_Total_Count_Table(&TCB, &k_code, k_mer_length);
///uint64_t count1 = get_Total_Count_Table(&TCB, &k_code, k_mer_length);
uint64_t count2 = count_Total_Pos_Table(&PCB, &k_code, k_mer_length);
/**
if(count1>=k_mer_min_freq && count1<= k_mer_max_freq && count1!=count2)
{
fprintf(stderr, "count1: %lld\n",count1);
fprintf(stderr, "count2: %lld\n",count2);
}
**/
if(locate_Total_Pos_Table(&PCB, &k_code, &list, k_mer_length, &sub_ID) == count2)
{
+1
View File
@@ -8,6 +8,7 @@
void Counting_multiple_thr();
void Build_hash_table_multiple_thr();
int load_pre_cauculated_index();
/********************************for debug***************************************/
void Verify_Counting();
+7 -1
View File
@@ -131,12 +131,17 @@ void write_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name)
}
void load_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name)
int load_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name)
{
fprintf(stdout, "Loading index to disk ...... \n");
char* index_name = (char*)malloc(strlen(read_file_name)+5);
sprintf(index_name, "%s.idx", read_file_name);
FILE* fp = fopen(index_name, "r");
if (!fp)
{
return 0;
}
fread(&TCB->prefix_bits, sizeof(TCB->prefix_bits), 1, fp);
fread(&TCB->suffix_bits, sizeof(TCB->suffix_bits), 1, fp);
@@ -184,6 +189,7 @@ void load_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name)
fclose(fp);
fprintf(stdout, "Index has been loaded.\n");
return 1;
}
+1 -1
View File
@@ -294,7 +294,7 @@ void init_Count_Table(Count_Table** table);
void init_Pos_Table(Count_Table** pre_table, Pos_Table** table);
void destory_Total_Pos_Table(Total_Pos_Table* TCB);
void write_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name);
void load_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name);
int load_Total_Pos_Table(Total_Pos_Table* TCB, char* read_file_name);
+9 -1
View File
@@ -107,12 +107,18 @@ void write_All_reads(All_reads* r, char* read_file_name)
void load_All_reads(All_reads* r, char* read_file_name)
int load_All_reads(All_reads* r, char* read_file_name)
{
fprintf(stdout, "Loading reads to disk ...... \n");
char* index_name = (char*)malloc(strlen(read_file_name)+5);
sprintf(index_name, "%s.bin", read_file_name);
FILE* fp = fopen(index_name, "r");
if (!fp)
{
return 0;
}
fread(&r->index_size, sizeof(r->index_size), 1, fp);
fread(&r->name_index_size, sizeof(r->name_index_size), 1, fp);
fread(&r->total_reads, sizeof(r->total_reads), 1, fp);
@@ -162,6 +168,8 @@ void load_All_reads(All_reads* r, char* read_file_name)
free(index_name);
fclose(fp);
fprintf(stdout, "Reads has been loaded.\n");
return 1;
}
+1 -1
View File
@@ -111,7 +111,7 @@ void init_UC_Read(UC_Read* r);
void recover_UC_Read(UC_Read* r, All_reads* R_INF, uint64_t ID);
void reverse_complement(char* pattern, uint64_t length);
void write_All_reads(All_reads* r, char* read_file_name);
void load_All_reads(All_reads* r, char* read_file_name);
int load_All_reads(All_reads* r, char* read_file_name);
void destory_All_reads(All_reads* r);
void Counting_block();
+12 -6
View File
@@ -21,20 +21,26 @@ int main(int argc, char *argv[])
if (!CommandLine_process(argc, argv))
return 1;
///init_kseq(read_file_name);
fprintf(stdout, "k-mer length: %d\n",k_mer_length);
///Counting();
Counting_multiple_thr();
if (load_index_from_disk && load_pre_cauculated_index())
{
;
}
else
{
Counting_multiple_thr();
Build_hash_table_multiple_thr();
Build_hash_table_multiple_thr();
}
///verify_Position_hash_table();
///destory_kseq();
///debug_Counting();
return 1;