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

Go to the source code of this file.
Functions | |
| int4 | gappedScoring_score (struct ungappedExtension *ungappedExtension, struct PSSMatrix PSSMatrix, int4 subjectSize, unsigned char *subject, int4 dropoff) |
| void | gappedScoring_free () |
| void gappedScoring_free | ( | ) |
Definition at line 909 of file gappedScoring.c.
References gappedScoring_bestRow, and gappedScoring_insertQrow.
Referenced by main().
00910 { 00911 free(gappedScoring_bestRow); 00912 free(gappedScoring_insertQrow); 00913 }
Here is the caller graph for this function:

| int4 gappedScoring_score | ( | struct ungappedExtension * | ungappedExtension, | |
| struct PSSMatrix | PSSMatrix, | |||
| int4 | subjectSize, | |||
| unsigned char * | subject, | |||
| int4 | dropoff | |||
| ) |
Definition at line 24 of file gappedScoring.c.
References dpResults::best, dpResults::bestScore, blast_dloc, blast_numGapped, encoding_alphabetType, encoding_nucleotide, ungappedExtension::end, gappedScoring_dpAfterSeed(), gappedScoring_dpBeforeSeed(), int4, PSSMatrix::length, PSSMatrix::matrix, nuGappedScoring_score(), oldGappedScoring_score(), parameters_restrictedInsertionScoring, parameters_verboseDloc, PSSMatrix_chop(), coordinate::queryOffset, ungappedExtension::seed, ungappedExtension::start, PSSMatrix::strandLength, and coordinate::subjectOffset.
Referenced by alignments_checkForJoin(), alignments_findGoodAlignments(), alignments_getTracebacks(), and alignments_regularGappedAlignment().
00026 { 00027 struct coordinate seed; 00028 unsigned char *choppedSubject; 00029 struct PSSMatrix choppedPSSMatrix; 00030 int4 choppedSubjectSize; 00031 struct dpResults beforeDpResults, afterDpResults; 00032 int4 strandOffset = 0; 00033 00034 // Increment counter number of HSP's gapped 00035 blast_numGapped++; 00036 00037 if (encoding_alphabetType == encoding_nucleotide) 00038 { 00039 // Use nucleotide gapped alignment code 00040 return nuGappedScoring_score(ungappedExtension, PSSMatrix, subjectSize, subject, dropoff); 00041 } 00042 00043 // Use old code if restricted insertion has been disabled 00044 if (!parameters_restrictedInsertionScoring) 00045 { 00046 return oldGappedScoring_score(ungappedExtension, PSSMatrix, subjectSize, subject, dropoff); 00047 } 00048 00049 seed = ungappedExtension->seed; 00050 if (seed.queryOffset > PSSMatrix.strandLength) 00051 { 00052 // If query position is in the second strand, remove first strand from PSSM 00053 strandOffset = PSSMatrix.strandLength; 00054 seed.queryOffset -= PSSMatrix.strandLength; 00055 PSSMatrix = PSSMatrix_chop(PSSMatrix, PSSMatrix.strandLength); 00056 } 00057 else 00058 { 00059 // Otherwise remove second strand 00060 PSSMatrix.length = PSSMatrix.strandLength; 00061 } 00062 00063 // Perform dynamic programming for points before the seed 00064 beforeDpResults = gappedScoring_dpBeforeSeed(subject, PSSMatrix, seed, dropoff); 00065 00066 // Chop the start off the query and subject so they begin at the seed 00067 choppedPSSMatrix = PSSMatrix_chop(PSSMatrix, seed.queryOffset); 00068 choppedSubject = subject + seed.subjectOffset; 00069 choppedSubjectSize = subjectSize - seed.subjectOffset; 00070 00071 // Perform dynamic programming for points after the seed 00072 afterDpResults = gappedScoring_dpAfterSeed(choppedSubject, choppedPSSMatrix, 00073 dropoff, choppedSubjectSize); 00074 00075 // Re-adjust result change due to chopping subject/query and strand adjustment 00076 afterDpResults.best.queryOffset += seed.queryOffset + strandOffset; 00077 afterDpResults.best.subjectOffset += seed.subjectOffset; 00078 beforeDpResults.best.queryOffset += strandOffset; 00079 00080 // Associate best scoring start and end points with the ungapped extension 00081 ungappedExtension->start = beforeDpResults.best; 00082 ungappedExtension->end = afterDpResults.best; 00083 00084 #ifdef VERBOSE 00085 if (parameters_verboseDloc == blast_dloc) 00086 printf("norm[%d,%d,%d](seed=%d,%d)\n", beforeDpResults.bestScore, afterDpResults.bestScore, 00087 choppedPSSMatrix.matrix[0][choppedSubject[0]], seed.queryOffset, seed.subjectOffset); 00088 #endif 00089 00090 // Determine score by combining score from the two traces, and the match score at 00091 // the seed position 00092 return beforeDpResults.bestScore + afterDpResults.bestScore + 00093 choppedPSSMatrix.matrix[0][choppedSubject[0]]; 00094 }
Here is the call graph for this function:

Here is the caller graph for this function:

1.5.2