lib/ffAli.c File Reference

#include "common.h"
#include "dnautil.h"
#include "fuzzyFind.h"

Include dependency graph for ffAli.c:

Go to the source code of this file.

Functions

void ffFreeAli (struct ffAli **pAli)
int ffOneIntronOrientation (struct ffAli *left, struct ffAli *right)
int ffIntronOrientation (struct ffAli *ali)
ffAliffRightmost (struct ffAli *ff)
ffAliffMakeRightLinks (struct ffAli *rightMost)
static int countGoodStart (struct ffAli *ali)
static int countGoodEnd (struct ffAli *ali)
void ffCountGoodEnds (struct ffAli *aliList)
int ffAliCount (struct ffAli *d)
ffAliffAliFromSym (int symCount, char *nSym, char *hSym, struct lm *lm, char *nStart, char *hStart)

Variables

static char const rcsid [] = "$Id: ffAli.c,v 1.9 2004/02/13 09:33:32 kent Exp $"


Function Documentation

static int countGoodEnd ( struct ffAli ali  )  [static]

Definition at line 93 of file ffAli.c.

References ffAli::hEnd, ffAli::nEnd, and ffAli::nStart.

Referenced by ffCountGoodEnds().

00095 {
00096 DNA *n = ali->nEnd;
00097 DNA *h = ali->hEnd;
00098 int count = ali->nEnd - ali->nStart;
00099 int i;
00100 for (i=0; i<count; ++i)
00101     {
00102     if (*--n != *--h)
00103         break;
00104     }
00105 return i;
00106 }

Here is the caller graph for this function:

static int countGoodStart ( struct ffAli ali  )  [static]

Definition at line 78 of file ffAli.c.

References ffAli::hStart, ffAli::nEnd, and ffAli::nStart.

Referenced by ffCountGoodEnds().

00080 {
00081 DNA *n = ali->nStart;
00082 DNA *h = ali->hStart;
00083 int count = ali->nEnd - ali->nStart;
00084 int i;
00085 for (i=0; i<count; ++i)
00086     {
00087     if (*n++ != *h++)
00088         break;
00089     }
00090 return i;
00091 }

Here is the caller graph for this function:

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 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:

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 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:

struct ffAli* ffMakeRightLinks ( struct ffAli rightMost  )  [read]

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:

int ffOneIntronOrientation ( struct ffAli left,
struct ffAli right 
)

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:

struct ffAli* ffRightmost ( struct ffAli ff  )  [read]

Definition at line 54 of file ffAli.c.

References ffAli::right.

Referenced by savePslx(), smallMiddleExons(), smoothOneGap(), and trimFlakyEnds().

00056 {
00057 while (ff->right != NULL)
00058     ff = ff->right;
00059 return ff;
00060 }

Here is the caller graph for this function:


Variable Documentation

char const rcsid[] = "$Id: ffAli.c,v 1.9 2004/02/13 09:33:32 kent Exp $" [static]

Definition at line 12 of file ffAli.c.


Generated on Tue Dec 25 19:49:39 2007 for blat by  doxygen 1.5.2