#include "dnautil.h"#include "localmem.h"#include "aliType.h"#include "memgfx.h"Include dependency graph for fuzzyFind.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | ffAli |
Defines | |
| #define | ffIntronMaxDefault 750000 |
Functions | |
| void | setFfIntronMax (int value) |
| void | setFfExtendThroughN (boolean val) |
| void | ffFreeAli (struct ffAli **pAli) |
| int | ffOneIntronOrientation (struct ffAli *left, struct ffAli *right) |
| int | ffIntronOrientation (struct ffAli *ali) |
| int | ffScoreIntron (DNA a, DNA b, DNA y, DNA z, int orientation) |
| ffAli * | ffRightmost (struct ffAli *ff) |
| ffAli * | ffMakeRightLinks (struct ffAli *rightMost) |
| void | ffCountGoodEnds (struct ffAli *aliList) |
| int | ffAliCount (struct ffAli *d) |
| ffAli * | ffAliFromSym (int symCount, char *nSym, char *hSym, struct lm *lm, char *nStart, char *hStart) |
| int | ffScoreMatch (DNA *a, DNA *b, int size) |
| int | ffScoreCdna (struct ffAli *ali) |
| int | ffScore (struct ffAli *ali, enum ffStringency stringency) |
| int | ffScoreProtein (struct ffAli *ali, enum ffStringency stringency) |
| int | ffScoreSomething (struct ffAli *ali, enum ffStringency stringency, boolean isProt) |
| int | ffScoreSomeAlis (struct ffAli *ali, int count, enum ffStringency stringency) |
| int | ffCalcGapPenalty (int hGap, int nGap, enum ffStringency stringency) |
| int | ffCalcCdnaGapPenalty (int hGap, int nGap) |
| int | ffGapPenalty (struct ffAli *ali, struct ffAli *right, enum ffStringency stringency) |
| int | ffCdnaGapPenalty (struct ffAli *ali, struct ffAli *right) |
| boolean | ffSlideIntrons (struct ffAli *ali) |
| boolean | ffSlideOrientedIntrons (struct ffAli *ali, int orient) |
| ffAli * | ffRemoveEmptyAlis (struct ffAli *ali, boolean doFree) |
| ffAli * | ffMergeHayOverlaps (struct ffAli *ali) |
| ffAli * | ffMergeNeedleAlis (struct ffAli *ali, boolean doFree) |
| void | ffExpandExactRight (struct ffAli *ali, DNA *needleEnd, DNA *hayEnd) |
| void | ffExpandExactLeft (struct ffAli *ali, DNA *needleStart, DNA *hayStart) |
| ffAli * | ffMergeClose (struct ffAli *aliList, DNA *needleStart, DNA *hayStart) |
| void | ffAliSort (struct ffAli **pList, int(*compare)(const void *elem1, const void *elem2)) |
| void | ffCat (struct ffAli **pA, struct ffAli **pB) |
| int | ffCmpHitsHayFirst (const void *va, const void *vb) |
| int | ffCmpHitsNeedleFirst (const void *va, const void *vb) |
| ffAli * | ffFind (DNA *needleStart, DNA *needleEnd, DNA *hayStart, DNA *hayEnd, enum ffStringency stringency) |
| boolean | ffFindEitherStrand (DNA *needle, DNA *haystack, enum ffStringency stringency, struct ffAli **pAli, boolean *pRcNeedle) |
| boolean | ffFindEitherStrandN (DNA *needle, int needleSize, DNA *haystack, int haySize, enum ffStringency stringency, struct ffAli **pAli, boolean *pRcNeedle) |
| boolean | ffFindAndScore (DNA *needle, int needleSize, DNA *haystack, int haySize, enum ffStringency stringency, struct ffAli **pAli, boolean *pRcNeedle, int *pScore) |
| int | ffShAliPart (FILE *f, struct ffAli *aliList, char *needleName, DNA *needle, int needleSize, int needleNumOffset, char *haystackName, DNA *haystack, int haySize, int hayNumOffset, int blockMaxGap, boolean rcNeedle, boolean rcHaystack, boolean showJumpTable, boolean showNeedle, boolean showHaystack, boolean showSideBySide, boolean upcMatch, int cdsS, int cdsE, int hayPartS, int hayPartE) |
| int | ffShAli (FILE *f, struct ffAli *aliList, char *needleName, DNA *needle, int needleSize, int needleNumOffset, char *haystackName, DNA *haystack, int haySize, int hayNumOffset, int blockMaxGap, boolean rcNeedle) |
| void | ffShowAli (struct ffAli *aliList, char *needleName, DNA *needle, int needleNumOffset, char *haystackName, DNA *haystack, int hayNumOffset, boolean rcNeedle) |
Variables | |
| int | ffIntronMax |
| #define ffIntronMaxDefault 750000 |
| int ffAliCount | ( | struct ffAli * | d | ) |
Definition at line 119 of file ffAli.c.
References ffAli::right.
Referenced by jiggleSmallExons(), pslFromFakeFfAli(), savePslx(), ssFindBest(), ssGraphMake(), and trimFlakyEnds().
00121 { 00122 int acc = 0; 00123 while (d != NULL) 00124 { 00125 ++acc; 00126 d = d->right; 00127 } 00128 return acc; 00129 }
Here is the caller graph for this function:

| struct ffAli* ffAliFromSym | ( | int | symCount, | |
| char * | nSym, | |||
| char * | hSym, | |||
| struct lm * | lm, | |||
| char * | nStart, | |||
| char * | hStart | |||
| ) | [read] |
Definition at line 131 of file ffAli.c.
References AllocVar, ffMakeRightLinks(), lm, lmAllocVar, and ffAli::nEnd.
Referenced by bandExtFf(), and smoothOneGap().
00137 { 00138 struct ffAli *ffList = NULL, *ff = NULL; 00139 char n, h; 00140 int i; 00141 00142 for (i=0; i<=symCount; ++i) 00143 { 00144 boolean isGap; 00145 n = nSym[i]; 00146 h = hSym[i]; 00147 isGap = (n == '-' || n == 0 || h == '-' || h == 0); 00148 if (isGap) 00149 { 00150 if (ff != NULL) 00151 { 00152 ff->nEnd = nStart; 00153 ff->hEnd = hStart; 00154 ff->left = ffList; 00155 ffList = ff; 00156 ff = NULL; 00157 } 00158 } 00159 else 00160 { 00161 if (ff == NULL) 00162 { 00163 if (lm != NULL) 00164 { 00165 lmAllocVar(lm, ff); 00166 } 00167 else 00168 { 00169 AllocVar(ff); 00170 } 00171 ff->nStart = nStart; 00172 ff->hStart = hStart; 00173 } 00174 } 00175 if (n != '-') 00176 { 00177 ++nStart; 00178 } 00179 if (h != '-') 00180 { 00181 ++hStart; 00182 } 00183 } 00184 ffList = ffMakeRightLinks(ffList); 00185 return ffList; 00186 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void ffAliSort | ( | struct ffAli ** | pList, | |
| int(*)(const void *elem1, const void *elem2) | compare | |||
| ) |
Definition at line 39 of file ffAliHelp.c.
References ffMakeRightLinks(), ffAli::right, slReverse(), and slSort().
Referenced by ssStitch(), and weaveAli().
00041 { 00042 /* Get head of list and handle easy special empty case. */ 00043 struct ffAli *r = *pList; 00044 if (r == NULL) return; 00045 00046 /* Since first pointer is "left", in order to reuse slSort, have 00047 * to jump through some minor hoops. First go to right end of list, 00048 * then sort it. */ 00049 while (r->right) r = r->right; 00050 slSort(&r, compare); 00051 00052 /* We're sorted, but our right links are all broken. Fix this. */ 00053 slReverse(&r); 00054 r = ffMakeRightLinks(r); 00055 *pList = r; 00056 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffCalcCdnaGapPenalty | ( | int | hGap, | |
| int | nGap | |||
| ) |
Definition at line 38 of file ffScore.c.
References digitsBaseTwo(), and ffIntronMax.
Referenced by ffCalcGapPenalty(), ffCdnaGapPenalty(), and smoothOneGap().
00040 { 00041 int acc = 2; 00042 if (hGap > 400000) /* Discourage really long introns. */ 00043 { 00044 acc += (hGap - 400000)/3000; 00045 if (hGap > ffIntronMax) 00046 acc += (hGap - ffIntronMax)/2000; 00047 } 00048 if (hGap < 0) /* Discourage jumping back in haystack. */ 00049 { 00050 hGap = -8*hGap; 00051 if (hGap > 48) 00052 hGap = (hGap*hGap); 00053 } 00054 if (nGap < 0) /* Jumping back in needle gets rid of previous alignment. */ 00055 { 00056 acc += -nGap; 00057 nGap = 0; 00058 } 00059 acc += digitsBaseTwo(hGap)/2; 00060 if (nGap != 0) 00061 { 00062 acc += digitsBaseTwo(nGap); 00063 } 00064 else 00065 { 00066 if (hGap > 30) 00067 acc -= 1; 00068 } 00069 return acc; 00070 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffCalcGapPenalty | ( | int | hGap, | |
| int | nGap, | |||
| enum ffStringency | stringency | |||
| ) |
Definition at line 115 of file ffScore.c.
References calcLooseGap(), calcTightGap(), errAbort(), ffCalcCdnaGapPenalty(), ffCdna, ffLoose, and ffTight.
Referenced by ffGapPenalty(), scoreAli(), ssGapCost(), ssGraphMake(), and trimGapPenalty().
00117 { 00118 switch (stringency) 00119 { 00120 case ffCdna: 00121 return ffCalcCdnaGapPenalty(hGap, nGap); 00122 case ffTight: 00123 return calcTightGap(hGap,nGap); 00124 case ffLoose: 00125 return calcLooseGap(hGap,nGap); 00126 default: 00127 errAbort("Unknown stringency type %d", stringency); 00128 return 0; 00129 } 00130 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 11 of file ffAliHelp.c.
References ffAli::left, and ffAli::right.
Referenced by bandExtAfter(), bandExtBefore(), cutAtBigIntrons(), findFromSmallerSeeds(), mergeProtoGenes(), scanForSmallerExons(), scanForTinyInternal(), and ssStitch().
00014 { 00015 struct ffAli *a = *pA; 00016 struct ffAli *b = *pB; 00017 00018 /* If list to add is empty our job is real easy. */ 00019 if (b == NULL) 00020 return; 00021 00022 /* If list to add into is empty, then just switch in the 00023 * second list. */ 00024 if (a == NULL) 00025 { 00026 *pA = *pB; 00027 *pB = NULL; 00028 return; 00029 } 00030 00031 /* Neither list empty. Find rightmost element of first list 00032 * and cross-link it with leftmost element of second list. */ 00033 while (a->right != NULL) a = a->right; 00034 b->left = a; 00035 a->right = b; 00036 *pB = NULL; 00037 }
Here is the caller graph for this function:

Definition at line 133 of file ffScore.c.
References ffCalcCdnaGapPenalty(), ffAli::hEnd, ffAli::hStart, ffAli::left, ffAli::nEnd, ffAli::nStart, and ffAli::right.
Referenced by reconsiderAlignedGaps().
00135 { 00136 int hGap = right->hStart - left->hEnd; 00137 int nGap = right->nStart - left->nEnd; 00138 return ffCalcCdnaGapPenalty(hGap, nGap); 00139 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffCmpHitsHayFirst | ( | const void * | va, | |
| const void * | vb | |||
| ) |
Definition at line 58 of file ffAliHelp.c.
References ffAli::hStart, and ffAli::nStart.
Referenced by weaveAli().
00061 { 00062 const struct ffAli *a = *((struct ffAli **)va); 00063 const struct ffAli *b = *((struct ffAli **)vb); 00064 int diff; 00065 if ((diff = a->hStart - b->hStart) != 0) 00066 return diff; 00067 return a->nStart - b->nStart; 00068 }
Here is the caller graph for this function:

| int ffCmpHitsNeedleFirst | ( | const void * | va, | |
| const void * | vb | |||
| ) |
Definition at line 70 of file ffAliHelp.c.
References ffAli::hStart, and ffAli::nStart.
Referenced by ssStitch().
00073 { 00074 const struct ffAli *a = *((struct ffAli **)va); 00075 const struct ffAli *b = *((struct ffAli **)vb); 00076 int diff; 00077 if ((diff = a->nStart - b->nStart) != 0) 00078 return diff; 00079 return a->hStart - b->hStart; 00080 }
Here is the caller graph for this function:

| void ffCountGoodEnds | ( | struct ffAli * | aliList | ) |
Definition at line 108 of file ffAli.c.
References countGoodEnd(), countGoodStart(), ffAli::endGood, ffAli::right, and ffAli::startGood.
Referenced by ffFind(), and pslToFfAli().
00110 { 00111 struct ffAli *ali; 00112 for (ali = aliList; ali != NULL; ali = ali->right) 00113 { 00114 ali->startGood = countGoodStart(ali); 00115 ali->endGood = countGoodEnd(ali); 00116 } 00117 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 99 of file ffAliHelp.c.
References ffAli::hStart, and ffAli::nStart.
Referenced by addExtraHits(), findAliBetween(), and rwFindTilesBetween().
00101 { 00102 DNA *nStart = ali->nStart-1; 00103 DNA *hStart = ali->hStart-1; 00104 while (nStart >= needleStart && hStart >= hayStart) 00105 { 00106 if (*nStart != *hStart) 00107 break; 00108 nStart -= 1; 00109 hStart -= 1; 00110 } 00111 ali->nStart = nStart + 1; 00112 ali->hStart = hStart + 1; 00113 return; 00114 }
Here is the caller graph for this function:

Definition at line 82 of file ffAliHelp.c.
References ffAli::hEnd, and ffAli::nEnd.
Referenced by addExtraHits(), findAliBetween(), and rwFindTilesBetween().
00084 { 00085 DNA *nEnd = ali->nEnd; 00086 DNA *hEnd = ali->hEnd; 00087 while (nEnd < needleEnd && hEnd < hayEnd) 00088 { 00089 if (*nEnd != *hEnd) 00090 break; 00091 nEnd += 1; 00092 hEnd += 1; 00093 } 00094 ali->nEnd = nEnd; 00095 ali->hEnd = hEnd; 00096 return; 00097 }
Here is the caller graph for this function:

| struct ffAli* ffFind | ( | DNA * | needleStart, | |
| DNA * | needleEnd, | |||
| DNA * | hayStart, | |||
| DNA * | hayEnd, | |||
| enum ffStringency | stringency | |||
| ) | [read] |
Definition at line 1428 of file fuzzyFind.c.
References dnaUtilOpen(), ffAbort(), ffCountGoodEnds(), ffMemCleanup(), ffMemInit(), ffRecover, findBestAli(), popAbortHandler(), pushAbortHandler(), and saveAliToPermanentMem().
Referenced by alignComponents(), ffFindAndScore(), smallMiddleExons(), and ssFindBundles().
01431 { 01432 struct ffAli *bestAli; 01433 int status; 01434 01435 assert(needleStart <= needleEnd); 01436 assert(hayStart <= hayEnd); 01437 01438 ffMemInit(); 01439 dnaUtilOpen(); 01440 01441 01442 /* Set up error recovery. */ 01443 status = setjmp(ffRecover); 01444 if (status == 0) /* Always true except after long jump. */ 01445 { 01446 pushAbortHandler(ffAbort); 01447 bestAli = findBestAli(needleStart, needleEnd, hayStart, hayEnd, stringency); 01448 ffCountGoodEnds(bestAli); 01449 bestAli = saveAliToPermanentMem(bestAli); 01450 } 01451 else /* They long jumped here because of an error. */ 01452 { 01453 bestAli = NULL; 01454 } 01455 popAbortHandler(); 01456 ffMemCleanup(); 01457 return bestAli; 01458 }
Here is the call graph for this function:

Here is the caller graph for this function:

| boolean ffFindAndScore | ( | DNA * | needle, | |
| int | needleSize, | |||
| DNA * | haystack, | |||
| int | haySize, | |||
| enum ffStringency | stringency, | |||
| struct ffAli ** | pAli, | |||
| boolean * | pRcNeedle, | |||
| int * | pScore | |||
| ) |
Definition at line 1460 of file fuzzyFind.c.
References FALSE, ffFind(), ffFreeAli(), ffScore(), reverseComplement(), and TRUE.
Referenced by ffFindEitherStrandN().
01465 { 01466 int fScore, rScore; 01467 struct ffAli *fAli, *rAli; 01468 01469 /* Get forward alignment and score it. */ 01470 fAli = ffFind(needle, needle+needleSize, haystack, haystack+haySize, stringency); 01471 fScore = ffScore(fAli,stringency); 01472 01473 /* Get reverse alignment and score it. */ 01474 reverseComplement(needle, needleSize); 01475 rAli = ffFind(needle, needle+needleSize, haystack, haystack+haySize, stringency); 01476 rScore = ffScore(rAli,stringency); 01477 reverseComplement(needle, needleSize); 01478 01479 /* If no good alignment on either strand return FALSE. */ 01480 if (fAli == NULL && rAli == NULL) 01481 { 01482 *pAli = NULL; 01483 return FALSE; 01484 } 01485 01486 /* Return TRUE with best alignment. Free the other one. */ 01487 if (fScore > rScore) 01488 { 01489 *pAli = fAli; 01490 *pRcNeedle = FALSE; 01491 if (pScore != NULL) 01492 *pScore = fScore; 01493 ffFreeAli(&rAli); 01494 } 01495 else 01496 { 01497 *pAli = rAli; 01498 *pRcNeedle = TRUE; 01499 if (pScore != NULL) 01500 *pScore = rScore; 01501 ffFreeAli(&fAli); 01502 } 01503 return TRUE; 01504 }
Here is the call graph for this function:

Here is the caller graph for this function:

| boolean ffFindEitherStrand | ( | DNA * | needle, | |
| DNA * | haystack, | |||
| enum ffStringency | stringency, | |||
| struct ffAli ** | pAli, | |||
| boolean * | pRcNeedle | |||
| ) |
Definition at line 1514 of file fuzzyFind.c.
References ffFindEitherStrandN().
01519 { 01520 return ffFindEitherStrandN(needle, strlen(needle), haystack, strlen(haystack), 01521 stringency, pAli, pRcNeedle); 01522 }
Here is the call graph for this function:

| boolean ffFindEitherStrandN | ( | DNA * | needle, | |
| int | needleSize, | |||
| DNA * | haystack, | |||
| int | haySize, | |||
| enum ffStringency | stringency, | |||
| struct ffAli ** | pAli, | |||
| boolean * | pRcNeedle | |||
| ) |
Definition at line 1506 of file fuzzyFind.c.
References ffFindAndScore().
Referenced by ffFindEitherStrand().
01510 { 01511 return ffFindAndScore(needle, needleSize, haystack, haySize, stringency, pAli, pRcNeedle, NULL); 01512 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void ffFreeAli | ( | struct ffAli ** | pAli | ) |
Definition at line 14 of file ffAli.c.
References ffAli::right, and slFreeList().
Referenced by ffFindAndScore(), forceMonotonic(), ssFfItemFree(), and ssStitch().
00016 { 00017 struct ffAli *ali = *pAli; 00018 if (ali != NULL) 00019 { 00020 while (ali->right) 00021 ali = ali->right; 00022 slFreeList(&ali); 00023 } 00024 *pAli = NULL; 00025 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffGapPenalty | ( | struct ffAli * | ali, | |
| struct ffAli * | right, | |||
| enum ffStringency | stringency | |||
| ) |
Definition at line 141 of file ffScore.c.
References ffCalcGapPenalty(), ffAli::hEnd, ffAli::hStart, ffAli::left, ffAli::nEnd, ffAli::nStart, and ffAli::right.
Referenced by ffScoreSomeAlis(), and ffScoreSomething().
00143 { 00144 int hGap = right->hStart - left->hEnd; 00145 int nGap = right->nStart - left->nEnd; 00146 return ffCalcGapPenalty(hGap, nGap, stringency); 00147 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffIntronOrientation | ( | struct ffAli * | ali | ) |
Definition at line 36 of file ffAli.c.
References ffAli::hEnd, intronOrientation(), ffAli::left, and ffAli::right.
Referenced by ffSlideIntrons(), jiggleSmallExons(), recursiveWeave(), refineSpliceSites(), and trimFlakyEnds().
00039 { 00040 struct ffAli *left = ali, *right; 00041 int orient = 0; 00042 00043 if (left != NULL) 00044 { 00045 while((right = left->right) != NULL) 00046 { 00047 orient += intronOrientation(left->hEnd, right->hStart); 00048 left = right; 00049 } 00050 } 00051 return orient; 00052 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 62 of file ffAli.c.
References ffAli::left, and ffAli::right.
Referenced by ffAliFromSym(), ffAliSort(), gfRangesToFfItem(), lumpHits(), pslToFakeFfAli(), pslToFfAli(), rwFindTilesBetween(), scanIndexForSmallExons(), and ssFindBestBig().
00066 { 00067 struct ffAli *ff, *last = NULL; 00068 00069 for (ff = rightMost; ff != NULL; ff = ff->left) 00070 { 00071 ff->right = last; 00072 last = ff; 00073 } 00074 return last; 00075 }
Here is the caller graph for this function:

Definition at line 116 of file ffAliHelp.c.
References ffRemoveEmptyAlis(), ffAli::hEnd, ffAli::hStart, max, min, ffAli::nEnd, ffAli::nStart, ffAli::right, and TRUE.
Referenced by ssStitch().
00121 { 00122 struct ffAli *mid, *ali; 00123 int closeEnough = -3; 00124 00125 if (aliList == NULL) 00126 return NULL; 00127 for (mid = aliList->right; mid != NULL; mid = mid->right) 00128 { 00129 for (ali = aliList; ali != mid; ali = ali->right) 00130 { 00131 char *nStart, *nEnd; 00132 int nOverlap; 00133 nStart = max(ali->nStart, mid->nStart); 00134 nEnd = min(ali->nEnd, mid->nStart); 00135 nOverlap = nEnd - nStart; 00136 /* Overlap or perfectly abut in needle, and needle/hay 00137 * offset the same. */ 00138 if (nOverlap >= closeEnough) 00139 { 00140 int aliDiag = (ali->nStart - needleStart) - (ali->hStart - hayStart); 00141 int midDiag = (mid->nStart - needleStart) - (mid->hStart - hayStart); 00142 if (aliDiag == midDiag) 00143 { 00144 /* Make mid encompass both, and make ali empty. */ 00145 mid->nStart = min(ali->nStart, mid->nStart); 00146 mid->nEnd = max(ali->nEnd, mid->nEnd); 00147 mid->hStart = min(ali->hStart, mid->hStart); 00148 mid->hEnd = max(ali->hEnd, mid->hEnd); 00149 ali->hStart = ali->hEnd = mid->hStart; 00150 ali->nEnd = ali->nStart = mid->nStart;; 00151 } 00152 } 00153 } 00154 } 00155 aliList = ffRemoveEmptyAlis(aliList, TRUE); 00156 return aliList; 00157 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 330 of file ffAliHelp.c.
References ffAli::hEnd, ffAli::hStart, ffAli::nEnd, ffAli::nStart, and ffAli::right.
Referenced by findBestAli(), and ssStitch().
00334 { 00335 struct ffAli *a = NULL; 00336 struct ffAli *leftA = NULL; 00337 00338 if (ali == NULL) 00339 return NULL; 00340 a = ali; 00341 for (;;) 00342 { 00343 int nOverlap; 00344 int hOverlap; 00345 int aSize; 00346 00347 /* Advance to next ali */ 00348 leftA = a; 00349 a = a->right; 00350 if (a == NULL) 00351 break; 00352 00353 nOverlap = leftA->nEnd - a->nStart; 00354 hOverlap = leftA->hEnd - a->hStart; 00355 aSize = a->nEnd - a->nStart; 00356 if (hOverlap > 0 && hOverlap < aSize && nOverlap <= 0) 00357 { 00358 a->hStart += hOverlap; 00359 a->nStart += hOverlap; 00360 } 00361 } 00362 return ali; 00363 }
Here is the caller graph for this function:

Definition at line 365 of file ffAliHelp.c.
References freeMem(), ffAli::hEnd, ffAli::hStart, ffAli::left, ffAli::nEnd, ffAli::nStart, and ffAli::right.
Referenced by findBestAli(), smoothSmallGaps(), and ssStitch().
00368 { 00369 struct ffAli *a = NULL; 00370 struct ffAli *leftA = NULL; 00371 struct ffAli *rightA; 00372 00373 if (ali == NULL) 00374 return NULL; 00375 rightA = ali; 00376 for (;;) 00377 { 00378 /* Advance to next ali */ 00379 leftA = a; 00380 a = rightA; 00381 if (a == NULL) 00382 break; 00383 rightA = a->right; 00384 00385 00386 /* See if can merge current alignment into left one. */ 00387 if (leftA != NULL) 00388 { 00389 int overlap = leftA->nEnd - a->nStart; 00390 00391 /* Deal with overlaps in needle */ 00392 if (overlap > 0) 00393 { 00394 /* See if left encompasses current segment. */ 00395 if (leftA->nStart <= a->nStart && leftA->nEnd >= a->nEnd) 00396 { 00397 /* Eliminate current segment. */ 00398 leftA->right = rightA; 00399 if (rightA != NULL) 00400 rightA->left = leftA; 00401 if (doFree) freeMem(a); 00402 a = leftA; 00403 } 00404 else 00405 { 00406 /* Remove overlapping area from current segment, leave 00407 * it in left segment. */ 00408 a->hStart += overlap; 00409 a->nStart += overlap; 00410 } 00411 } 00412 else if (overlap == 0 && leftA->hEnd == a->hStart) 00413 { 00414 /* Remove current segment from list. */ 00415 leftA->right = rightA; 00416 if (rightA != NULL) 00417 rightA->left = leftA; 00418 /* Fold data from current segment into left segment */ 00419 leftA->nEnd = a->nEnd; 00420 leftA->hEnd = a->hEnd; 00421 if (doFree) freeMem(a); 00422 a = leftA; 00423 } 00424 } 00425 } 00426 return ali; 00427 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 27 of file ffAli.c.
References ffAli::hEnd, ffAli::hStart, intronOrientation(), ffAli::left, ffAli::nEnd, ffAli::nStart, and ffAli::right.
00030 { 00031 if (left->nEnd != right->nStart) 00032 return 0; 00033 return intronOrientation(left->hEnd, right->hStart); 00034 }
Here is the call graph for this function:

Definition at line 284 of file ffAliHelp.c.
References freeMem(), ffAli::hEnd, ffAli::hStart, ffAli::left, ffAli::nEnd, ffAli::nStart, and ffAli::right.
Referenced by ffMergeClose(), findBestAli(), refineSmallExons(), refineSpliceSites(), and ssStitch().
00286 { 00287 struct ffAli *leftAli; 00288 struct ffAli *startAli; 00289 struct ffAli *rightAli; 00290 00291 /* Figure out left most non-empty ali. */ 00292 while (ali->left) 00293 ali = ali->left; 00294 while (ali) 00295 { 00296 /* If current ali is empty, chuck it out. */ 00297 if (ali->nEnd <= ali->nStart || ali->hEnd <= ali->hStart) 00298 { 00299 struct ffAli *empty = ali; 00300 ali = ali->right; 00301 if (doFree) freeMem(empty); 00302 } 00303 else 00304 break; 00305 } 00306 ali->left = NULL; 00307 00308 /* Get rid of empty middle alis. */ 00309 startAli = leftAli = ali; 00310 ali = ali->right; 00311 while (ali) 00312 { 00313 rightAli = ali->right; 00314 if (ali->nEnd <= ali->nStart || ali->hEnd <= ali->hStart) 00315 { 00316 leftAli->right = rightAli; 00317 if (rightAli != NULL) 00318 rightAli->left = leftAli; 00319 if (doFree) freeMem(ali); 00320 } 00321 else 00322 { 00323 leftAli = ali; 00324 } 00325 ali = rightAli; 00326 } 00327 return startAli; 00328 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 54 of file ffAli.c.
References ffAli::right.
Referenced by savePslx(), smallMiddleExons(), smoothOneGap(), and trimFlakyEnds().
Here is the caller graph for this function:

| int ffScore | ( | struct ffAli * | ali, | |
| enum ffStringency | stringency | |||
| ) |
Definition at line 195 of file ffScore.c.
References FALSE, and ffScoreSomething().
Referenced by cutAtBigIntrons(), ffFindAndScore(), and ffScoreCdna().
00197 { 00198 return ffScoreSomething(ali, stringency, FALSE); 00199 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffScoreCdna | ( | struct ffAli * | ali | ) |
Definition at line 160 of file ffAliHelp.c.
Referenced by slideIntron(), and trimGapPenalty().
00163 { 00164 int score = 0; 00165 int revScore = 0; 00166 00167 if (orientation >= 0) 00168 { 00169 if (a == 'g' || a == 'G') ++score; 00170 if (b == 't' || b == 'T') ++score; 00171 if (y == 'a' || y == 'A') ++score; 00172 if (z == 'g' || z == 'G') ++score; 00173 } 00174 00175 if (orientation <= 0) 00176 { 00177 if (a == 'c' || a == 'C') ++revScore; 00178 if (b == 't' || b == 'T') ++revScore; 00179 if (y == 'a' || y == 'A') ++revScore; 00180 if (z == 'c' || z == 'C') ++revScore; 00181 } 00182 00183 return score > revScore ? score : revScore; 00184 }
Here is the caller graph for this function:

Definition at line 17 of file ffScore.c.
Referenced by trimFlakyEnds().
00021 { 00022 int i; 00023 int score = 0; 00024 for (i=0; i<size; ++i) 00025 { 00026 DNA aa = a[i]; 00027 DNA bb = b[i]; 00028 if (aa == 'n' || bb == 'n') 00029 continue; 00030 if (aa == bb) 00031 ++score; 00032 else 00033 score -= 1; 00034 } 00035 return score; 00036 }
Here is the caller graph for this function:

| int ffScoreProtein | ( | struct ffAli * | ali, | |
| enum ffStringency | stringency | |||
| ) |
Definition at line 208 of file ffScore.c.
References ffScoreSomething(), and TRUE.
00210 { 00211 return ffScoreSomething(ali, stringency, TRUE); 00212 }
Here is the call graph for this function:

| int ffScoreSomeAlis | ( | struct ffAli * | ali, | |
| int | count, | |||
| enum ffStringency | stringency | |||
| ) |
Definition at line 149 of file ffScore.c.
References dnaScoreMatch(), ffGapPenalty(), ffAli::hEnd, ffAli::hStart, ffAli::nStart, and ffAli::right.
00151 { 00152 int score = 0; 00153 int oneScore; 00154 00155 while (--count >= 0) 00156 { 00157 int len = ali->hEnd - ali->hStart; 00158 struct ffAli *right = ali->right; 00159 oneScore = dnaScoreMatch(ali->hStart, ali->nStart, len); 00160 score += oneScore; 00161 if (count > 0) /* Calculate gap penalty */ 00162 score -= ffGapPenalty(ali, right,stringency); 00163 ali = right; 00164 } 00165 return score; 00166 }
Here is the call graph for this function:

| int ffScoreSomething | ( | struct ffAli * | ali, | |
| enum ffStringency | stringency, | |||
| boolean | isProt | |||
| ) |
Definition at line 168 of file ffScore.c.
References aaScoreMatch(), dnaScoreMatch(), ffGapPenalty(), ffAli::hEnd, ffAli::hStart, ffAli::left, ffAli::nStart, and ffAli::right.
Referenced by ffScore(), and ffScoreProtein().
00171 { 00172 int score = 0; 00173 int oneScore; 00174 int (*scoreMatch)(char *a, char *b, int size); 00175 00176 if (ali == NULL) 00177 return -0x7FFFFFFF; 00178 scoreMatch = (isProt ? aaScoreMatch : dnaScoreMatch ); 00179 while (ali->left != NULL) ali = ali->left; 00180 while (ali != NULL) 00181 { 00182 int len = ali->hEnd - ali->hStart; 00183 struct ffAli *right = ali->right; 00184 oneScore = scoreMatch(ali->hStart, ali->nStart, len); 00185 score += oneScore; 00186 if (right) /* Calculate gap penalty */ 00187 { 00188 score -= ffGapPenalty(ali, right, stringency); 00189 } 00190 ali = right; 00191 } 00192 return score; 00193 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffShAli | ( | FILE * | f, | |
| struct ffAli * | aliList, | |||
| char * | needleName, | |||
| DNA * | needle, | |||
| int | needleSize, | |||
| int | needleNumOffset, | |||
| char * | haystackName, | |||
| DNA * | haystack, | |||
| int | haySize, | |||
| int | hayNumOffset, | |||
| int | blockMaxGap, | |||
| boolean | rcNeedle | |||
| ) |
Definition at line 368 of file fuzzyShow.c.
References FALSE, ffShAliPart(), and TRUE.
Referenced by ffShowAli().
00374 { 00375 return ffShAliPart(f, aliList, needleName, needle, needleSize, needleNumOffset, 00376 haystackName, haystack, haySize, hayNumOffset, blockMaxGap, rcNeedle, FALSE, 00377 TRUE, TRUE, TRUE, TRUE, FALSE, 0, 0, 0, 0); 00378 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int ffShAliPart | ( | FILE * | f, | |
| struct ffAli * | aliList, | |||
| char * | needleName, | |||
| DNA * | needle, | |||
| int | needleSize, | |||
| int | needleNumOffset, | |||
| char * | haystackName, | |||
| DNA * | haystack, | |||
| int | haySize, | |||
| int | hayNumOffset, | |||
| int | blockMaxGap, | |||
| boolean | rcNeedle, | |||
| boolean | rcHaystack, | |||
| boolean | showJumpTable, | |||
| boolean | showNeedle, | |||
| boolean | showHaystack, | |||
| boolean | showSideBySide, | |||
| boolean | upcMatch, | |||
| int | cdsS, | |||
| int | cdsE, | |||
| int | hayPartS, | |||
| int | hayPartE | |||
| ) |
Definition at line 82 of file fuzzyShow.c.
References FALSE, ffAli::hEnd, ffAli::hStart, ffAli::left, needMem(), ffAli::nEnd, ffAli::nStart, ffAli::right, and TRUE.
Referenced by ffShAli().
00095 { 00096 long i; 00097 struct ffAli *ali; 00098 struct ffAli *lastAli; 00099 struct ffAli *leftAli = aliList; 00100 struct ffAli *rightAli = aliList; 00101 int charsInLine; 00102 struct baf baf; 00103 int maxSize = (needleSize > haySize ? needleSize : haySize); 00104 char *colorFlags = needMem(maxSize); 00105 int anchorCount = 0; 00106 boolean restrictToWindow = FALSE; 00107 int hayOffStart = 0, hayOffEnd = haySize; 00108 int hayPaddedOffStart = 0, hayPaddedOffEnd = haySize; 00109 int hayExtremity = rcHaystack ? (hayNumOffset + haySize) : hayNumOffset; 00110 int nPartS=0, nPartE=0; 00111 00112 if (aliList != NULL) 00113 { 00114 while (leftAli->left != NULL) leftAli = leftAli->left; 00115 while (rightAli->right != NULL) rightAli = rightAli->right; 00116 } 00117 00118 /* If we are only showing part of the alignment, translate haystack window 00119 * coords to needle window coords and haystack-offset window coords: */ 00120 if (hayPartS > (hayNumOffset + (leftAli->hStart - haystack)) || 00121 (hayPartE > 0 && hayPartE < (hayNumOffset + (rightAli->hEnd - haystack)))) 00122 { 00123 DNA *haystackPartS; 00124 DNA *haystackPartE; 00125 restrictToWindow = TRUE; 00126 if (rcHaystack) 00127 { 00128 haystackPartS = haystack + (haySize - (hayPartE - hayNumOffset)); 00129 haystackPartE = haystack + (haySize - (hayPartS - hayNumOffset)); 00130 } 00131 else 00132 { 00133 haystackPartS = haystack + hayPartS - hayNumOffset; 00134 haystackPartE = haystack + hayPartE - hayNumOffset; 00135 } 00136 boolean foundStart = FALSE; 00137 hayOffStart = haystackPartS - haystack; 00138 hayOffEnd = haystackPartE - haystack; 00139 for (ali = leftAli; ali != NULL; ali = ali->right) 00140 { 00141 if (haystackPartS < ali->hEnd && !foundStart) 00142 { 00143 int offset = haystackPartS - ali->hStart; 00144 if (offset < 0) 00145 offset = 0; 00146 nPartS = offset + ali->nStart - needle; 00147 hayOffStart = offset + ali->hStart - haystack; 00148 foundStart = TRUE; 00149 } 00150 if (haystackPartE > ali->hStart) 00151 { 00152 if (haystackPartE > ali->hEnd) 00153 { 00154 nPartE = ali->nEnd - needle; 00155 hayOffEnd = ali->hEnd - haystack; 00156 } 00157 else 00158 { 00159 nPartE = haystackPartE - ali->hStart + ali->nStart - needle; 00160 hayOffEnd = haystackPartE - haystack; 00161 } 00162 } 00163 } 00164 hayPaddedOffStart = max(0, (hayOffStart - 100)); 00165 hayPaddedOffEnd = min(haySize, (hayOffEnd + 100)); 00166 if (rcHaystack) 00167 hayExtremity = hayNumOffset + haySize - hayPaddedOffStart; 00168 else 00169 hayExtremity = hayNumOffset + hayPaddedOffEnd; 00170 } 00171 00172 if (showJumpTable) 00173 { 00174 fputs("<CENTER><P><TABLE BORDER=1 WIDTH=\"97%\"><TR>", f); 00175 fputs("<TD WIDTH=\"23%\"><P ALIGN=CENTER><A HREF=\"#cDNA\">cDNA Sequence</A></TD>", f); 00176 if (restrictToWindow) 00177 fputs("<TD WIDTH=\"23%\"><P ALIGN=CENTER><A HREF=\"#cDNAStart\">cDNA Sequence in window</A></TD>", f); 00178 fputs("<TD WIDTH=\"27%\"><P ALIGN=\"CENTER\"><A HREF=\"#genomic\">Genomic Sequence</A></TD>", f); 00179 fputs("<TD WIDTH=\"29%\"><P ALIGN=\"CENTER\"><A HREF=\"#1\">cDNA in Genomic</A></TD>", f); 00180 fputs("<TD WIDTH=\"21%\"><P ALIGN=\"CENTER\"><A HREF=\"#ali\">Side by Side</A></TD>", f); 00181 fputs("</TR></TABLE>\n", f); 00182 } 00183 if (cdsE > 0) 00184 { 00185 fprintf(f, "Matching bases in coding regions of cDNA and genomic sequences are colored blue%s. ", 00186 (upcMatch ? " and capitalized" : "")); 00187 fprintf(f, "Matching bases in UTR regions of cDNA and genomic sequences are colored red%s. ", 00188 (upcMatch ? " and capitalized" : "")); 00189 fputs("Light blue (coding) or orange (UTR) bases mark the boundaries of gaps in either sequence " 00190 "(often splice sites).\n", f); 00191 } 00192 else 00193 { 00194 fprintf(f, "Matching bases in cDNA and genomic sequences are colored blue%s. ", 00195 (upcMatch ? " and capitalized" : "")); 00196 fputs("Light blue bases mark the boundaries of gaps in either sequence " 00197 "(often splice sites).\n", f); 00198 } 00199 if (showNeedle && restrictToWindow) 00200 fputs("Bases that were in the selected browser region are shown in bold " 00201 "and underlined, " 00202 "and only the alignment for these bases is displayed in the " 00203 "Genomic and Side by Side sections.\n", f); 00204 00205 if (showJumpTable) 00206 fputs("</P></CENTER>\n", f); 00207 htmHorizontalLine(f); 00208 00209 fprintf(f, "<H4><A NAME=cDNA></A>cDNA %s%s</H4>\n", needleName, (rcNeedle ? " (reverse complemented)" : "")); 00210 00211 /* NOTE: if rcHaystack, hayNumOffset changes here into the end, not start! */ 00212 if (rcHaystack) 00213 hayNumOffset += haySize; 00214 00215 if (rcNeedle) 00216 reverseComplement(needle, needleSize); 00217 00218 if (showNeedle) 00219 { 00220 ffShNeedle(f, needle, needleSize, needleNumOffset, colorFlags, 00221 aliList, upcMatch, cdsS, cdsE, 00222 restrictToWindow, nPartS, nPartE); 00223 } 00224 00225 if (showHaystack) 00226 { 00227 struct cfm *cfm = cfmNew(10, 50, TRUE, rcHaystack, f, hayExtremity); 00228 char *h = cloneMem(haystack, haySize); 00229 char *accentFlags = needMem(haySize); 00230 zeroBytes(accentFlags, haySize); 00231 fprintf(f, "<H4><A NAME=genomic></A>Genomic %s %s:</H4>\n", 00232 haystackName, 00233 (rcHaystack ? "(reverse strand)" : "")); 00234 fprintf(f, "<TT><PRE>\n"); 00235 zeroBytes(colorFlags, haySize); 00236 for (ali = leftAli; ali != NULL; ali = ali->right) 00237 { 00238 boolean utr = FALSE; 00239 int i; 00240 int off = ali->hStart-haystack; 00241 int count = ali->hEnd - ali->hStart; 00242 int offn = ali->nStart-needle; 00243 if ((cdsE > 0) && ((cdsS-offn-1) > 0)) 00244 utr = TRUE; 00245 for (i=0; i<count; ++i) 00246 { 00247 if (!utr && (i > (cdsE-offn-1)) && (cdsE > 0)) 00248 utr = TRUE; 00249 if (utr && (i == (cdsS-offn))) 00250 utr = FALSE; 00251 if (toupper(ali->hStart[i]) == toupper(ali->nStart[i])) 00252 { 00253 if (utr) 00254 colorFlags[off+i] = ((i == 0 || i == count-1) ? socOrange : socRed); 00255 else 00256 colorFlags[off+i] = ((i == 0 || i == count-1) ? socBrightBlue : socBlue); 00257 if (upcMatch) 00258 h[off+i] = toupper(h[off+i]); 00259 } 00260 if (restrictToWindow && off+i >= hayOffStart && off+i < hayOffEnd) 00261 accentFlags[off+i] = TRUE; 00262 } 00263 } 00264 ali = leftAli; 00265 lastAli = NULL; 00266 while (ali && (ali->hEnd - haystack) <= hayPaddedOffStart) 00267 ali = ali->right; 00268 for (i = hayPaddedOffStart; i < hayPaddedOffEnd; ++i) 00269 { 00270 /* Put down "anchor" on first match position in haystack 00271 * so user can hop here with a click on the needle. */ 00272 if (ali != NULL && i == ali->hStart - haystack) 00273 { 00274 if (lastAli == NULL || ali->hStart - lastAli->hEnd > blockMaxGap) 00275 { 00276 fprintf(f, "<A NAME=%d></A>", ++anchorCount); 00277 } 00278 lastAli = ali; 00279 ali = ali->right; 00280 } 00281 cfmOutExt(cfm, h[i], seqOutColorLookup[(int)colorFlags[i]], 00282 accentFlags[i], accentFlags[i], FALSE); 00283 } 00284 cfmFree(&cfm); 00285 freeMem(h); 00286 fprintf(f, "</TT></PRE>\n"); 00287 htmHorizontalLine(f); 00288 } 00289 00290 if (showSideBySide) 00291 { 00292 fprintf(f, "<H4><A NAME=ali></A>Side by Side Alignment</H4>\n"); 00293 fprintf(f, "<TT><PRE>\n"); 00294 lastAli = NULL; 00295 charsInLine = 0; 00296 bafInit(&baf, needle, needleNumOffset, FALSE, 00297 haystack, hayNumOffset, rcHaystack, f, 50, FALSE); 00298 for (ali=leftAli; ali!=NULL; ali = ali->right) 00299 { 00300 boolean doBreak = TRUE; 00301 int aliLen; 00302 int i; 00303 00304 if ((ali->hEnd - haystack) <= hayOffStart || 00305 (ali->hStart - haystack) >= hayOffEnd) 00306 continue; 00307 00308 /* Decide whether to put in a line break and/or blank characters */ 00309 if (lastAli != NULL) 00310 { 00311 int nSkip = ali->nStart - lastAli->nEnd; 00312 int hSkip = ali->hStart - lastAli->hEnd; 00313 if (nSkip > 0 && nSkip <= blockMaxGap && hSkip == 0) 00314 { 00315 for (i=0; i<nSkip; ++i) 00316 bafOut(&baf, lastAli->nEnd[i],'.'); 00317 doBreak = FALSE; 00318 } 00319 else if (hSkip > 0 && hSkip <= blockMaxGap && nSkip == 0) 00320 { 00321 for (i=0; i<hSkip; ++i) 00322 bafOut(&baf, '.', lastAli->hEnd[i]); 00323 doBreak = FALSE; 00324 } 00325 else if (hSkip == nSkip && hSkip <= blockMaxGap) 00326 { 00327 for (i=0; i<hSkip; ++i) 00328 bafOut(&baf, lastAli->nEnd[i], lastAli->hEnd[i]); 00329 doBreak = FALSE; 00330 } 00331 } 00332 else 00333 { 00334 doBreak = FALSE; 00335 } 00336 if (doBreak) 00337 bafFlushLine(&baf); 00338 int offset = max(0, (hayOffStart - (ali->hStart - haystack))); 00339 int nStart = offset + ali->nStart - needle; 00340 int hStart = offset + ali->hStart - haystack; 00341 bafSetPos(&baf, nStart, hStart); 00342 if (doBreak || lastAli == NULL) 00343 bafStartLine(&baf); 00344 aliLen = ali->nEnd - ali->nStart; 00345 for (i=0; i<aliLen; ++i) 00346 { 00347 int hayOff = i + (ali->hStart - haystack); 00348 if (hayOff < hayOffStart) 00349 continue; 00350 if (hayOff >= hayOffEnd) 00351 break; 00352 bafOut(&baf, ali->nStart[i], ali->hStart[i]); 00353 } 00354 lastAli = ali; 00355 } 00356 if (leftAli != NULL) 00357 bafFlushLine(&baf); 00358 fprintf(f, "</TT></PRE>\n"); 00359 fprintf(f, "<EM>*Aligned Blocks with gaps <= %d bases are merged for " 00360 "this display when only one sequence has a gap, or when gaps in " 00361 "both sequences are of the same size.</EM>\n", blockMaxGap); 00362 } 00363 if (rcNeedle) 00364 reverseComplement(needle, needleSize); 00365 return anchorCount; 00366 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void ffShowAli | ( | struct ffAli * | aliList, | |
| char * | needleName, | |||
| DNA * | needle, | |||
| int | needleNumOffset, | |||
| char * | haystackName, | |||
| DNA * | haystack, | |||
| int | hayNumOffset, | |||
| boolean | rcNeedle | |||
| ) |
Definition at line 380 of file fuzzyShow.c.
References ffShAli().
00383 { 00384 ffShAli(stdout, aliList, needleName, needle, strlen(needle), needleNumOffset, 00385 haystackName, haystack, strlen(haystack), hayNumOffset, 8, rcNeedle); 00386 }
Here is the call graph for this function:

| boolean ffSlideIntrons | ( | struct ffAli * | ali | ) |
Definition at line 276 of file ffAliHelp.c.
References ffIntronOrientation(), and ffSlideOrientedIntrons().
Referenced by findBestAli(), jiggleSmallExons(), and ssStitch().
00279 { 00280 int orient = ffIntronOrientation(ali); 00281 return ffSlideOrientedIntrons(ali, orient); 00282 }
Here is the call graph for this function:

Here is the caller graph for this function:

| boolean ffSlideOrientedIntrons | ( | struct ffAli * | ali, | |
| int | orient | |||
| ) |
Definition at line 259 of file ffAliHelp.c.
References FALSE, ffAli::left, ffAli::right, slideIntron(), and TRUE.
Referenced by ffSlideIntrons(), and refineSpliceSites().
00262 { 00263 struct ffAli *left = ali, *right; 00264 boolean slid = FALSE; 00265 if (left == NULL) 00266 return FALSE; 00267 while((right = left->right) != NULL) 00268 { 00269 if (slideIntron(left, right, orient)) 00270 slid = TRUE; 00271 left = right; 00272 } 00273 return slid; 00274 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void setFfExtendThroughN | ( | boolean | val | ) |
Definition at line 605 of file fuzzyFind.c.
References extendThroughN.
Referenced by main().
00607 { 00608 extendThroughN = val; 00609 }
Here is the caller graph for this function:

| void setFfIntronMax | ( | int | value | ) |
Definition at line 12 of file ffScore.c.
References ffIntronMax.
Referenced by main().
00013 { 00014 ffIntronMax = value; 00015 }
Here is the caller graph for this function:

| int ffIntronMax |
Definition at line 10 of file ffScore.c.
Referenced by ffCalcCdnaGapPenalty(), ffSeedExtInMem(), gfAlignSomeClumps(), gfAlignStrand(), gfAlignTrans(), gfAlignTransTrans(), gfFindAlignAaTrans(), scanIndexForSmallExons(), seedResolvePower(), setFfIntronMax(), and ssStitch().
1.5.2