00001 /* bandExt - banded Smith-Waterman extension of alignments. 00002 * An aligner might first find perfectly matching hits of 00003 * a small size, then extend these hits as far as possible 00004 * while the sequences perfectly match, then call on routines 00005 * in this module to do further extensions allowing small 00006 * gaps and mismatches. */ 00007 00008 #ifndef BANDEXT_H 00009 #define BANDEXT_H 00010 00011 boolean bandExt(boolean global, struct axtScoreScheme *ss, int maxInsert, 00012 char *aStart, int aSize, char *bStart, int bSize, int dir, 00013 int symAlloc, int *retSymCount, char *retSymA, char *retSymB, 00014 int *retRevStartA, int *retRevStartB); 00015 /* Try to extend an alignment from aStart/bStart onwards. 00016 * If global is set it will always go to end (aStart+aSize-1, 00017 * bStart+bSize-1). Set maxInsert to the maximum gap size allowed. 00018 * 3 is often a good choice. aStart/aSize bStart/bSize describe the 00019 * sequence to extend through (not including any of the existing 00020 * alignment. Set dir = 1 for forward extension, dir = -1 for backwards. 00021 * retSymA and retSymB should point to arrays of characters of 00022 * symAlloc size. symAlloc needs to be aSize*2 or so. The 00023 * alignment is returned in the various ret values. The function 00024 * overall returns TRUE if an extension occurred, FALSE if not. */ 00025 00026 struct ffAli *bandExtFf( 00027 struct lm *lm, /* Local memory pool, NULL to use global allocation for ff */ 00028 struct axtScoreScheme *ss, /* Scoring scheme to use. */ 00029 int maxInsert, /* Maximum number of inserts to allow. */ 00030 struct ffAli *origFf, /* Alignment block to extend. */ 00031 char *nStart, char *nEnd, /* Bounds of region to extend through */ 00032 char *hStart, char *hEnd, /* Bounds of region to extend through */ 00033 int dir, /* +1 to extend end, -1 to extend start */ 00034 int maxExt); /* Maximum length of extension. */ 00035 /* Extend a gapless alignment in one direction. Returns extending 00036 * ffAlis, not linked into origFf, or NULL if no extension possible. */ 00037 00038 #endif /* BANDEXT_H */
1.5.2