mirror of
https://github.com/chhylp123/hifiasm.git
synced 2026-09-27 23:58:12 +08:00
Fix bug
This commit is contained in:
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+24
-6
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user