Merge pull request #2 from lh3/fix-warnings

Fixed compiler warnings
This commit is contained in:
chhylp123
2019-12-26 12:21:52 -05:00
committed by GitHub
6 changed files with 98 additions and 93 deletions
+2
View File
@@ -0,0 +1,2 @@
.*.swp
*.o
+4 -4
View File
@@ -1644,8 +1644,8 @@ void* Final_overlap_calculate_heap_merge(void* arg)
uint8_t c2n[256];
memset(c2n, 4, 256);
c2n['A'] = c2n['a'] = 0; c2n['C'] = c2n['c'] = 1;
c2n['G'] = c2n['g'] = 2; c2n['T'] = c2n['t'] = 3; // build the encoding table
c2n[(uint8_t)'A'] = c2n[(uint8_t)'a'] = 0; c2n[(uint8_t)'C'] = c2n[(uint8_t)'c'] = 1;
c2n[(uint8_t)'G'] = c2n[(uint8_t)'g'] = 2; c2n[(uint8_t)'T'] = c2n[(uint8_t)'t'] = 3; // build the encoding table
@@ -1729,7 +1729,7 @@ void Output_PAF()
fwrite(Get_NAME(R_INF, Get_qn(sources[i].buffer[j])), 1,
Get_NAME_LENGTH(R_INF, Get_qn(sources[i].buffer[j])), output_file);
fwrite("\t", 1, 1, output_file);
fprintf(output_file, "%lu\t", Get_READ_LENGTH(R_INF, Get_qn(sources[i].buffer[j])));
fprintf(output_file, "%lu\t", (unsigned long)Get_READ_LENGTH(R_INF, Get_qn(sources[i].buffer[j])));
fprintf(output_file, "%d\t", Get_qs(sources[i].buffer[j]));
fprintf(output_file, "%d\t", Get_qe(sources[i].buffer[j]));
if(sources[i].buffer[j].rev)
@@ -1743,7 +1743,7 @@ void Output_PAF()
fwrite(Get_NAME(R_INF, Get_tn(sources[i].buffer[j])), 1,
Get_NAME_LENGTH(R_INF, Get_tn(sources[i].buffer[j])), output_file);
fwrite("\t", 1, 1, output_file);
fprintf(output_file, "%lu\t", Get_READ_LENGTH(R_INF, Get_tn(sources[i].buffer[j])));
fprintf(output_file, "%lu\t", (unsigned long)Get_READ_LENGTH(R_INF, Get_tn(sources[i].buffer[j])));
fprintf(output_file, "%d\t", Get_ts(sources[i].buffer[j]));
fprintf(output_file, "%d\t", Get_te(sources[i].buffer[j]));
fprintf(output_file, "%d\t", sources[i].buffer[j].ml);
+14 -14
View File
@@ -3141,8 +3141,8 @@ long long type, long long edgeID, Cigar_record* current_cigar, char* self_string
else
{
fprintf(stderr, "error type\n");
return -1;
}
}
@@ -3436,14 +3436,14 @@ void print_graph(Graph* DAGCon)
if(If_Node_Exist(*currentStartNode))
{
fprintf(stderr, "ID: %lu (%c) (w: %lu)\n", (*currentStartNode).ID, (*currentStartNode).base, (*currentStartNode).weight);
fprintf(stderr, "ID: %lu (%c) (w: %lu)\n", (unsigned long)(*currentStartNode).ID, (*currentStartNode).base, (unsigned long)(*currentStartNode).weight);
clear_RSet(&iter_out);
Edge* e;
fprintf(stderr, "****Out-node: ");
while(getOutputEdges(&iter_out, DAGCon, currentStartNode, &e))
{
//fprintf(stderr, "%d[%c], ", G_Node(*DAGCon, e->out_node).ID, G_Node(*DAGCon, e->out_node).base);
fprintf(stderr, "%lu(w: %lu), ", G_Node(*DAGCon, e->out_node).ID, e->weight);
fprintf(stderr, "%lu(w: %lu), ", (unsigned long)G_Node(*DAGCon, e->out_node).ID, (unsigned long)e->weight);
}
fprintf(stderr, "\n");
@@ -3483,14 +3483,14 @@ void debug_DAGCon(Graph* DAGCon)
if(Visit(*e_self) == 0)
{
fprintf(stderr, "Visit(*e_self): %lu, error visit flag: in_node: %lu, out_node: %lu\n",
Visit(*e_self), (*e_self).in_node, (*e_self).out_node);
(unsigned long)Visit(*e_self), (unsigned long)(*e_self).in_node, (unsigned long)(*e_self).out_node);
}
if(Visit(*e_reverse) == 0)
{
fprintf(stderr, "Visit(*e_reverse): %lu, error visit flag: in_node: %lu, out_node: %lu\n",
Visit(*e_reverse), (*e_reverse).in_node, (*e_reverse).out_node);
(unsigned long)Visit(*e_reverse), (unsigned long)(*e_reverse).in_node, (unsigned long)(*e_reverse).out_node);
}
@@ -3518,14 +3518,14 @@ void debug_DAGCon(Graph* DAGCon)
if(Visit(*e_self) == 0)
{
fprintf(stderr, "Visit(*e_self): %lu, error visit flag: in_node: %lu, out_node: %lu\n",
Visit(*e_self), (*e_self).in_node, (*e_self).out_node);
(unsigned long)Visit(*e_self), (unsigned long)(*e_self).in_node, (unsigned long)(*e_self).out_node);
}
if(Visit(*e_reverse) == 0)
{
fprintf(stderr, "Visit(*e_reverse): %lu, error visit flag: in_node: %lu, out_node: %lu\n",
Visit(*e_reverse), (*e_reverse).in_node, (*e_reverse).out_node);
(unsigned long)Visit(*e_reverse), (unsigned long)(*e_reverse).in_node, (unsigned long)(*e_reverse).out_node);
}
@@ -3958,7 +3958,7 @@ void debug_whole_graph(Graph* g)
g->g_nodes.list[i].deletion_edges.length!= 1)
{
fprintf(stderr, "g->g_nodes.list[i].deletion_edges.length: %lu\n",
g->g_nodes.list[i].deletion_edges.length);
(unsigned long)g->g_nodes.list[i].deletion_edges.length);
}
}
@@ -3969,7 +3969,7 @@ void debug_whole_graph(Graph* g)
g->g_nodes.list[i].mismatch_edges.length < 1)
{
fprintf(stderr, "g->s_end_nodeID: %lu, g->g_nodes.list[%lld].mismatch_edges.length: %lu\n",
g->s_end_nodeID, i, g->g_nodes.list[i].mismatch_edges.length);
(unsigned long)g->s_end_nodeID, i, (unsigned long)g->g_nodes.list[i].mismatch_edges.length);
}
}
@@ -5928,7 +5928,7 @@ void print_core_snp(haplotype_evdience_alloc* hap)
for (i = 0; i < hap->core_snp; i++)
{
fprintf(stderr, "core(i): %lu, site: %u, occ_0: %u, occ_1: %u, occ_2: %u, score: %d\n",
i, hap->snp_stat[i].site, hap->snp_stat[i].occ_0, hap->snp_stat[i].occ_1,
(unsigned long)i, hap->snp_stat[i].site, hap->snp_stat[i].occ_0, hap->snp_stat[i].occ_1,
hap->snp_stat[i].occ_2,
hap->snp_stat[i].score);
@@ -5939,7 +5939,7 @@ void print_core_snp(haplotype_evdience_alloc* hap)
{
if(vector[j] == 0)
{
fprintf(stderr, "type: %d, ID: %lu\n", vector[j], j);
fprintf(stderr, "type: %d, ID: %lu\n", vector[j], (unsigned long)j);
}
}
@@ -5948,7 +5948,7 @@ void print_core_snp(haplotype_evdience_alloc* hap)
{
if(vector[j] == 1)
{
fprintf(stderr, "type: %d, ID: %lu\n", vector[j], j);
fprintf(stderr, "type: %d, ID: %lu\n", vector[j], (unsigned long)j);
}
}
@@ -5957,7 +5957,7 @@ void print_core_snp(haplotype_evdience_alloc* hap)
{
if(vector[j] == 2)
{
fprintf(stderr, "type: %d, ID: %lu\n", vector[j], j);
fprintf(stderr, "type: %d, ID: %lu\n", vector[j], (unsigned long)j);
}
}
@@ -7525,4 +7525,4 @@ long long* max_t_pos, long long* max_q_pos, long long* score, long long* droped)
putchar('\n');
**/
/**************for ksw2**************/
}
}
+66 -66
View File
@@ -79,10 +79,10 @@ unsigned int* return_err, int* return_p_end, int* return_t_end)
int i = 0;
Word tmp_Peq_1 = (Word)1;
Peq['A'] = (Word)0;
Peq['T'] = (Word)0;
Peq['G'] = (Word)0;
Peq['C'] = (Word)0;
Peq[(uint8_t)'A'] = (Word)0;
Peq[(uint8_t)'T'] = (Word)0;
Peq[(uint8_t)'G'] = (Word)0;
Peq[(uint8_t)'C'] = (Word)0;
Word Peq_A;
@@ -97,19 +97,19 @@ unsigned int* return_err, int* return_p_end, int* return_t_end)
tmp_Peq_1 = tmp_Peq_1 << 1;
}
Peq_A = Peq['A'];
Peq_C = Peq['C'];
Peq_T = Peq['T'];
Peq_G = Peq['G'];
Peq_A = Peq[(uint8_t)'A'];
Peq_C = Peq[(uint8_t)'C'];
Peq_T = Peq[(uint8_t)'T'];
Peq_G = Peq[(uint8_t)'G'];
memset(Peq, 0, sizeof(Word)* 256);
Peq['A'] = Peq_A;
Peq['C'] = Peq_C;
Peq['T'] = Peq_T;
Peq['G'] = Peq_G;
Peq[(uint8_t)'A'] = Peq_A;
Peq[(uint8_t)'C'] = Peq_C;
Peq[(uint8_t)'T'] = Peq_T;
Peq[(uint8_t)'G'] = Peq_G;
@@ -166,10 +166,10 @@ unsigned int* return_err, int* return_p_end, int* return_t_end)
(*return_err) = line_error;
}
Peq['A'] = Peq['A'] >> 1;
Peq['C'] = Peq['C'] >> 1;
Peq['G'] = Peq['G'] >> 1;
Peq['T'] = Peq['T'] >> 1;
Peq[(uint8_t)'A'] = Peq[(uint8_t)'A'] >> 1;
Peq[(uint8_t)'C'] = Peq[(uint8_t)'C'] >> 1;
Peq[(uint8_t)'G'] = Peq[(uint8_t)'G'] >> 1;
Peq[(uint8_t)'T'] = Peq[(uint8_t)'T'] >> 1;
++i;
@@ -284,10 +284,10 @@ inline int Reserve_Banded_BPM
int i = 0;
Word tmp_Peq_1 = (Word)1;
Peq['A'] = (Word)0;
Peq['T'] = (Word)0;
Peq['G'] = (Word)0;
Peq['C'] = (Word)0;
Peq[(uint8_t)'A'] = (Word)0;
Peq[(uint8_t)'T'] = (Word)0;
Peq[(uint8_t)'G'] = (Word)0;
Peq[(uint8_t)'C'] = (Word)0;
Word Peq_A;
@@ -302,21 +302,21 @@ inline int Reserve_Banded_BPM
tmp_Peq_1 = tmp_Peq_1 << 1;
}
///Peq['T'] = Peq['T'] | Peq['C'];
///Peq[(uint8_t)'T'] = Peq[(uint8_t)'T'] | Peq[(uint8_t)'C'];
Peq_A = Peq['A'];
Peq_C = Peq['C'];
Peq_T = Peq['T'];
Peq_G = Peq['G'];
Peq_A = Peq[(uint8_t)'A'];
Peq_C = Peq[(uint8_t)'C'];
Peq_T = Peq[(uint8_t)'T'];
Peq_G = Peq[(uint8_t)'G'];
memset(Peq, 0, sizeof(Word)* 256);
Peq['A'] = Peq_A;
Peq['C'] = Peq_C;
Peq['T'] = Peq_T;
Peq['G'] = Peq_G;
Peq[(uint8_t)'A'] = Peq_A;
Peq[(uint8_t)'C'] = Peq_C;
Peq[(uint8_t)'T'] = Peq_T;
Peq[(uint8_t)'G'] = Peq_G;
@@ -376,10 +376,10 @@ inline int Reserve_Banded_BPM
}
Peq['A'] = Peq['A'] >> 1;
Peq['C'] = Peq['C'] >> 1;
Peq['G'] = Peq['G'] >> 1;
Peq['T'] = Peq['T'] >> 1;
Peq[(uint8_t)'A'] = Peq[(uint8_t)'A'] >> 1;
Peq[(uint8_t)'C'] = Peq[(uint8_t)'C'] >> 1;
Peq[(uint8_t)'G'] = Peq[(uint8_t)'G'] >> 1;
Peq[(uint8_t)'T'] = Peq[(uint8_t)'T'] >> 1;
++i;
@@ -539,10 +539,10 @@ inline int Reserve_Banded_BPM_PATH
int i = 0;
Word tmp_Peq_1 = (Word)1;
Peq['A'] = (Word)0;
Peq['T'] = (Word)0;
Peq['G'] = (Word)0;
Peq['C'] = (Word)0;
Peq[(uint8_t)'A'] = (Word)0;
Peq[(uint8_t)'T'] = (Word)0;
Peq[(uint8_t)'G'] = (Word)0;
Peq[(uint8_t)'C'] = (Word)0;
Word Peq_A;
@@ -557,21 +557,21 @@ inline int Reserve_Banded_BPM_PATH
tmp_Peq_1 = tmp_Peq_1 << 1;
}
///Peq['T'] = Peq['T'] | Peq['C'];
///Peq[(uint8_t)'T'] = Peq[(uint8_t)'T'] | Peq[(uint8_t)'C'];
Peq_A = Peq['A'];
Peq_C = Peq['C'];
Peq_T = Peq['T'];
Peq_G = Peq['G'];
Peq_A = Peq[(uint8_t)'A'];
Peq_C = Peq[(uint8_t)'C'];
Peq_T = Peq[(uint8_t)'T'];
Peq_G = Peq[(uint8_t)'G'];
memset(Peq, 0, sizeof(Word)* 256);
Peq['A'] = Peq_A;
Peq['C'] = Peq_C;
Peq['T'] = Peq_T;
Peq['G'] = Peq_G;
Peq[(uint8_t)'A'] = Peq_A;
Peq[(uint8_t)'C'] = Peq_C;
Peq[(uint8_t)'T'] = Peq_T;
Peq[(uint8_t)'G'] = Peq_G;
@@ -634,10 +634,10 @@ inline int Reserve_Banded_BPM_PATH
}
Peq['A'] = Peq['A'] >> 1;
Peq['C'] = Peq['C'] >> 1;
Peq['G'] = Peq['G'] >> 1;
Peq['T'] = Peq['T'] >> 1;
Peq[(uint8_t)'A'] = Peq[(uint8_t)'A'] >> 1;
Peq[(uint8_t)'C'] = Peq[(uint8_t)'C'] >> 1;
Peq[(uint8_t)'G'] = Peq[(uint8_t)'G'] >> 1;
Peq[(uint8_t)'T'] = Peq[(uint8_t)'T'] >> 1;
++i;
@@ -645,7 +645,7 @@ inline int Reserve_Banded_BPM_PATH
Peq[(uint8_t)pattern[i_bd]] = Peq[(uint8_t)pattern[i_bd]] | Mask;
///Peq['T'] = Peq['T'] | Peq['C'];
///Peq[(uint8_t)'T'] = Peq[(uint8_t)'T'] | Peq[(uint8_t)'C'];
column_start = i << 3;
matrix_bit[column_start] = D0;
@@ -906,10 +906,10 @@ inline int Reserve_Banded_BPM_4_SSE_only(char *pattern1, char *pattern2, char *p
Word_32 tmp_Peq_1 = 1;
memset(Peq['A'], 0, sizeof(Word_32)* 4);
memset(Peq['C'], 0, sizeof(Word_32)* 4);
memset(Peq['G'], 0, sizeof(Word_32)* 4);
memset(Peq['T'], 0, sizeof(Word_32)* 4);
memset(Peq[(uint8_t)'A'], 0, sizeof(Word_32)* 4);
memset(Peq[(uint8_t)'C'], 0, sizeof(Word_32)* 4);
memset(Peq[(uint8_t)'G'], 0, sizeof(Word_32)* 4);
memset(Peq[(uint8_t)'T'], 0, sizeof(Word_32)* 4);
for (i = 0; i<band_length; i++)
{
@@ -921,11 +921,11 @@ inline int Reserve_Banded_BPM_4_SSE_only(char *pattern1, char *pattern2, char *p
tmp_Peq_1 = tmp_Peq_1 << 1;
}
Peq_SSE['A'] = _mm_set_epi32(Peq['A'][3], Peq['A'][2], Peq['A'][1], Peq['A'][0]);
Peq_SSE['C'] = _mm_set_epi32(Peq['C'][3], Peq['C'][2], Peq['C'][1], Peq['C'][0]);
Peq_SSE['G'] = _mm_set_epi32(Peq['G'][3], Peq['G'][2], Peq['G'][1], Peq['G'][0]);
Peq_SSE['T'] = _mm_set_epi32(Peq['T'][3], Peq['T'][2], Peq['T'][1], Peq['T'][0]);
///Peq_SSE['T'] = _mm_or_si128(Peq_SSE['T'], Peq_SSE['C']);
Peq_SSE[(uint8_t)'A'] = _mm_set_epi32(Peq[(uint8_t)'A'][3], Peq[(uint8_t)'A'][2], Peq[(uint8_t)'A'][1], Peq[(uint8_t)'A'][0]);
Peq_SSE[(uint8_t)'C'] = _mm_set_epi32(Peq[(uint8_t)'C'][3], Peq[(uint8_t)'C'][2], Peq[(uint8_t)'C'][1], Peq[(uint8_t)'C'][0]);
Peq_SSE[(uint8_t)'G'] = _mm_set_epi32(Peq[(uint8_t)'G'][3], Peq[(uint8_t)'G'][2], Peq[(uint8_t)'G'][1], Peq[(uint8_t)'G'][0]);
Peq_SSE[(uint8_t)'T'] = _mm_set_epi32(Peq[(uint8_t)'T'][3], Peq[(uint8_t)'T'][2], Peq[(uint8_t)'T'][1], Peq[(uint8_t)'T'][0]);
///Peq_SSE[(uint8_t)'T'] = _mm_or_si128(Peq_SSE[(uint8_t)'T'], Peq_SSE[(uint8_t)'C']);
Word_32 Mask = ((Word_32)1 << (errthold << 1));
@@ -1017,10 +1017,10 @@ inline int Reserve_Banded_BPM_4_SSE_only(char *pattern1, char *pattern2, char *p
/**************** */
Peq_SSE['A'] = _mm_srli_epi32(Peq_SSE['A'], 1);
Peq_SSE['T'] = _mm_srli_epi32(Peq_SSE['T'], 1);
Peq_SSE['G'] = _mm_srli_epi32(Peq_SSE['G'], 1);
Peq_SSE['C'] = _mm_srli_epi32(Peq_SSE['C'], 1);
Peq_SSE[(uint8_t)'A'] = _mm_srli_epi32(Peq_SSE[(uint8_t)'A'], 1);
Peq_SSE[(uint8_t)'T'] = _mm_srli_epi32(Peq_SSE[(uint8_t)'T'], 1);
Peq_SSE[(uint8_t)'G'] = _mm_srli_epi32(Peq_SSE[(uint8_t)'G'], 1);
Peq_SSE[(uint8_t)'C'] = _mm_srli_epi32(Peq_SSE[(uint8_t)'C'], 1);
++i;
++i_bd;
@@ -1029,7 +1029,7 @@ inline int Reserve_Banded_BPM_4_SSE_only(char *pattern1, char *pattern2, char *p
Peq_SSE[(uint8_t)pattern2[i_bd]] = _mm_or_si128(Mask2, Peq_SSE[(uint8_t)pattern2[i_bd]]);
Peq_SSE[(uint8_t)pattern3[i_bd]] = _mm_or_si128(Mask3, Peq_SSE[(uint8_t)pattern3[i_bd]]);
Peq_SSE[(uint8_t)pattern4[i_bd]] = _mm_or_si128(Mask4, Peq_SSE[(uint8_t)pattern4[i_bd]]);
///Peq_SSE['T'] = _mm_or_si128(Peq_SSE['T'], Peq_SSE['C']);
///Peq_SSE[(uint8_t)'T'] = _mm_or_si128(Peq_SSE[(uint8_t)'T'], Peq_SSE[(uint8_t)'C']);
}
@@ -1198,4 +1198,4 @@ inline int Reserve_Banded_BPM_4_SSE_only(char *pattern1, char *pattern2, char *p
}
#endif
#endif
+8 -5
View File
@@ -104,6 +104,7 @@ uint64_t* source_index, long long listLen)
source_i = (uint32_t)(source_index[i]);
tmp = &(source_paf_list[source_n].buffer[source_i]);
ele.del = 0;
ele.rev = tmp->rev;
ele.qns = Get_tn((*tmp));
ele.qns = ele.qns << 32;
@@ -445,6 +446,7 @@ void normalize_ma_hit_t(ma_hit_t_alloc* sources, long long num_sources)
else
{
///must have this line
new_element.del = 0;
new_element.ml = 1;
new_element.no_l_indel = 1;
set_reverse_overlap(&new_element, &(sources[i].buffer[j]));
@@ -4388,7 +4390,7 @@ int asg_arc_del_short_diploid_unclean(asg_t *g, float drop_ratio, ma_hit_t_alloc
///remove short overlaps
thres = (uint32_t)(av[0].ol * drop_ratio + .499);
///av has been sorted by overlap length
for (i = nv - 1; i >= 1 && av[i].ol < thres; --i);
for (i = nv - 1; i >= 1 && av[i].ol < thres; --i) {}
last_e = i + 1;
for (i = i + 1; i < nv; ++i)
@@ -4685,7 +4687,7 @@ int asg_arc_del_too_short_overlaps(asg_t *g, long long dropLen, float drop_ratio
double startTime = Get_T();
uint32_t v, v_max, v_maxLen, n_vtx = g->n_seq * 2, n_short = 0;
long long drop_ratio_Len;
long long drop_ratio_Len = 0;
for (v = 0; v < n_vtx; ++v)
{
@@ -5741,7 +5743,7 @@ int asg_arc_del_tri_link(asg_t *g, int max_dist)
if(f1 && f2)
{
if((l1 <= min_thres) || (l2 <= min_thres))
if(l1 <= min_thres || l2 <= min_thres) // TODO: check this block: it is always false
{
continue;
}
@@ -7104,7 +7106,7 @@ int load_ma_hit_ts(ma_hit_t_alloc** x, char* read_file_name)
long long n_read;
long long i, k;
int f_flag;
f_flag += fread(&n_read, sizeof(n_read), 1, fp);
f_flag = fread(&n_read, sizeof(n_read), 1, fp);
(*x) = (ma_hit_t_alloc*)malloc(sizeof(ma_hit_t_alloc)*n_read);
@@ -7396,7 +7398,7 @@ int asg_pop_bubble(asg_t *g, int max_dist)
///fprintf(stderr, "[M::%s] popped %d bubbles and trimmed %d tips\n", __func__, (uint32_t)n_pop, (uint32_t)(n_pop>>32));
if(VERBOSE >= 1)
{
fprintf(stderr, "[M::%s] popped %lu bubbles\n", __func__, n_pop);
fprintf(stderr, "[M::%s] popped %lu bubbles\n", __func__, (unsigned long)n_pop);
}
return n_pop;
}
@@ -7607,6 +7609,7 @@ int asg_arc_del_orthology_multiple_way(asg_t *g, ma_hit_t_alloc* reverse_sources
n_arc = get_real_length(g, v, NULL);
if (n_arc < 2) continue;
v_max = (uint32_t)-1;
v_maxLen = 0;
for (i = 0, n_arc = 0; i < nv; i++)
{
+4 -4
View File
@@ -40,8 +40,8 @@ uint8_t seq_nt6_table[256] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
};
char bit_t_seq_table[256][4] = {0};
char bit_t_seq_table_rc[256][4] = {0};
char bit_t_seq_table[256][4] = {{0}};
char bit_t_seq_table_rc[256][4] = {{0}};
char s_H[5] = {'A', 'C', 'G', 'T', 'N'};
char rc_Table[5] = {'T', 'G', 'C', 'A', 'N'};
@@ -950,8 +950,8 @@ void* input_reads_muti_threads(void* arg)
destory_R_buffer_block(&tmp_buf);
fprintf(stderr, "Reads #: %lu\n",total_reads);
fprintf(stderr, "Bases #: %lu\n",R_INF.total_reads_bases);
fprintf(stderr, "Reads #: %lu\n", (unsigned long)total_reads);
fprintf(stderr, "Bases #: %lu\n", (unsigned long)R_INF.total_reads_bases);
return NULL;