Reduce memory requirement

This commit is contained in:
Haoyu Cheng
2019-05-16 00:22:20 -04:00
parent 45355a1103
commit 3c5799aa1b
12 changed files with 320 additions and 39 deletions
+13 -22
View File
@@ -2,29 +2,13 @@
#define __KMER__
#include "Process_Read.h"
#define ALL (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
///#define ALL (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
#define ALL (0xffffffffffffffff)
#define SAFE_SHIFT(k) k & ((k < 64)?ALL:0)
static unsigned char seq_nt6_table[256] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 5, 1, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 5, 1, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
};
@@ -44,6 +28,7 @@ typedef struct
char* str;
long long l;
long long i;
long long N_occ;
} HPC_seq;
@@ -53,17 +38,23 @@ inline uint64_t get_HPC_code(HPC_seq* seq)
if(seq->i < seq ->l)
{
char code = seq->str[seq->i];
uint8_t code = seq_nt6_table[(uint8_t)seq->str[seq->i]];
for (; seq->i < seq->l; seq->i++)
{
if (seq->str[seq->i] != code)
///统计N的个数
if (seq_nt6_table[(uint8_t)seq->str[seq->i]] >= 4)
{
seq->N_occ++;
}
if (seq_nt6_table[(uint8_t)seq->str[seq->i]] != code)
{
break;
}
}
return (uint64_t)seq_nt6_table[(uint8_t)code];
return (uint64_t)code;
}
else
{