Added the kmer filter to LCS alignments, and now obiblobs containing

encoded sequences are directly put in int16_t arrays for the alignment
This commit is contained in:
Celine Mercier
2016-11-18 16:29:28 +01:00
parent 08e67a090f
commit 70c49e214a
17 changed files with 653 additions and 94 deletions

26
src/upperband.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef UPPERBAND_H_
#define UPPERBAND_H_
// TODO doc
#include <stdbool.h>
#include <stdio.h>
#include "obiblob.h"
#include "obiview.h"
#include "obidmscolumn.h"
typedef struct {
unsigned char* table; // 4mer occurrence table built using the build_table function
int32_t over; // count of 4mers with an occurrence greater than 255 (overflow)
} Kmer_table_t, *Kmer_table_p;
Kmer_table_p hash_seq_column(Obiview_p view, OBIDMS_column_p seq_col);
void align_filters(Kmer_table_p ktable, Obi_blob_p seq1, Obi_blob_p seq2, index_t idx1, index_t idx2, double threshold, bool normalize, int reference, bool similarity_mode, double* score, int* LCSmin);
void free_kmer_tables(Kmer_table_p ktable, size_t count);
#endif