60 lines
1.9 KiB
C
60 lines
1.9 KiB
C
#ifndef __AC_KSW_H
|
|
#define __AC_KSW_H
|
|
|
|
#include <stdint.h>
|
|
|
|
struct _ksw_query_t;
|
|
typedef struct _ksw_query_t ksw_query_t;
|
|
|
|
typedef struct {
|
|
// input
|
|
unsigned gapo, gape; // the first gap costs gapo+gape
|
|
unsigned T; // threshold
|
|
// output
|
|
int score, te, qe, score2, te2;
|
|
} ksw_aux_t;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Initialize the query data structure
|
|
*
|
|
* @param size Number of bytes used to store a score; valid valures are 1 or 2
|
|
* @param qlen Length of the query sequence
|
|
* @param query Query sequence
|
|
* @param m Size of the alphabet
|
|
* @param mat Scoring matrix in a one-dimension array
|
|
*
|
|
* @return Query data structure
|
|
*/
|
|
ksw_query_t *ksw_qinit(int size, int qlen, const uint8_t *query, int m, const int8_t *mat); // to free, simply call free()
|
|
|
|
/**
|
|
* Compute the maximum local score for queries initialized with ksw_qinit(1, ...)
|
|
*
|
|
* @param q Query data structure returned by ksw_qinit(1, ...)
|
|
* @param tlen Length of the target sequence
|
|
* @param target Target sequence
|
|
* @param a Auxiliary data structure (see ksw.h)
|
|
*
|
|
* @return The maximum local score; if the returned value equals 255, the SW may not be finished
|
|
*/
|
|
int ksw_sse2_8(ksw_query_t *q, int tlen, const uint8_t *target, ksw_aux_t *a);
|
|
|
|
/** Compute the maximum local score for queries initialized with ksw_qinit(2, ...) */
|
|
int ksw_sse2_16(ksw_query_t *q, int tlen, const uint8_t *target, ksw_aux_t *a);
|
|
|
|
/** Unified interface for ksw_sse2_8() and ksw_sse2_16() */
|
|
int ksw_sse2(ksw_query_t *q, int tlen, const uint8_t *target, ksw_aux_t *a);
|
|
|
|
int ksw_extend(int qlen, const uint8_t *query, int tlen, const uint8_t *target, int m, const int8_t *mat, int gapo, int gape, int w, int h0, int *_qle, int *_tle);
|
|
int ksw_global(int qlen, const uint8_t *query, int tlen, const uint8_t *target, int m, const int8_t *mat, int gapo, int gape, int w, int *_n_cigar, uint32_t **_cigar);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|