include/smithWatermanTraceback.h File Reference

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

Go to the source code of this file.

Functions

gappedExtensionsmithWatermanTraceback_build (struct PSSMatrix PSSMatrix, int4 subjectSize, unsigned char *subject, struct coordinate start, struct coordinate end)


Function Documentation

struct gappedExtension* smithWatermanTraceback_build ( struct PSSMatrix  PSSMatrix,
int4  subjectSize,
unsigned char *  subject,
struct coordinate  start,
struct coordinate  end 
) [read]

Definition at line 25 of file smithWatermanTraceback.c.

References dpResults::best, dpResults::bestScore, global_malloc(), PSSMatrix_chop(), coordinate::queryOffset, trace::queryStart, smithWatermanTraceback_dynamicProgramming(), smithWatermanTraceback_trace(), coordinate::subjectOffset, trace::subjectStart, and gappedExtension::trace.

Referenced by search_nucleotideSsearch(), and search_proteinSsearch().

00027 {
00028         struct trace trace;
00029         struct gappedExtension* gappedExtension;
00030     struct dpResults dpResults;
00031 
00032     // Only perform dynamic programming on region containing high-scoring alignment
00033         PSSMatrix = PSSMatrix_chop(PSSMatrix, start.queryOffset);
00034     PSSMatrix.length = end.queryOffset - start.queryOffset + 1;
00035     subject += start.subjectOffset;
00036     subjectSize = end.subjectOffset - start.subjectOffset + 1;
00037 
00038     // Perform dynamic programming
00039     dpResults = smithWatermanTraceback_dynamicProgramming(subject, PSSMatrix, subjectSize);
00040 
00041 /*    printf("lengths=%d,%d\n", PSSMatrix.length, subjectSize);
00042         printf("Start=%d,%d\n", start.queryOffset, start.subjectOffset);
00043         printf("End=%d,%d\n", end.queryOffset, end.subjectOffset);
00044     printf("Best=%d,%d Score=%d dloc=%d\n", dpResults.best.queryOffset, dpResults.best.subjectOffset,
00045                                                 dpResults.bestScore);*/
00046 
00047         // Trace back and create the trace which specifies the alignment
00048         trace = smithWatermanTraceback_trace(dpResults, PSSMatrix.length, PSSMatrix, subject);
00049         trace.queryStart += start.queryOffset;
00050         trace.subjectStart += start.subjectOffset;
00051 
00052         // Create gapped extension
00053         gappedExtension = (struct gappedExtension*)global_malloc(sizeof(struct gappedExtension));
00054         gappedExtension->trace = trace;
00055         gappedExtension->next = NULL;
00056 
00057         gappedExtension->queryEnd = dpResults.best.queryOffset + start.queryOffset;
00058         gappedExtension->subjectEnd = dpResults.best.subjectOffset + start.subjectOffset;
00059         gappedExtension->nominalScore = dpResults.bestScore;
00060 
00061         return gappedExtension;
00062 }

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Wed Dec 19 20:52:11 2007 for fsa-blast by  doxygen 1.5.2