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

Go to the source code of this file.
Functions | |
| int4 | tableGappedScoring_score (struct ungappedExtension *ungappedExtension, struct PSSMatrix PSSMatrix, int4 subjectSize, unsigned char *packedSubject, int4 dropoff) |
| int4 tableGappedScoring_score | ( | struct ungappedExtension * | ungappedExtension, | |
| struct PSSMatrix | PSSMatrix, | |||
| int4 | subjectSize, | |||
| unsigned char * | packedSubject, | |||
| int4 | dropoff | |||
| ) |
Definition at line 34 of file tableGappedScoring.c.
References dpResults::best, dpResults::bestScore, blast_dloc, blast_numSemiGapped, ungappedExtension::end, int4, ungappedExtension::nominalScore, parameters_bytepackDropoffDecrease, parameters_verboseDloc, PSSMatrix_chop(), coordinate::queryOffset, ungappedExtension::seed, ungappedExtension::start, coordinate::subjectOffset, tableGappedScoring_buildTable(), tableGappedScoring_dpAfterSeed(), tableGappedScoring_dpBeforeSeed(), and tableGappedScoring_table.
Referenced by alignments_findGoodAlignments().
00036 { 00037 struct coordinate seed; 00038 unsigned char *choppedSubject; 00039 struct PSSMatrix choppedPSSMatrix; 00040 int4 choppedSubjectSize, score, packedSubjectSize; 00041 struct dpResults beforeDpResults, afterDpResults; 00042 00043 // Increment counter number of HSP's semi-gapped 00044 blast_numSemiGapped++; 00045 00046 dropoff -= parameters_bytepackDropoffDecrease; 00047 00048 // Calculate packed subject size 00049 packedSubjectSize = (subjectSize + 3) / 4; 00050 00051 seed = ungappedExtension->seed; 00052 00053 // Adjust to point to start of byte 00054 seed.queryOffset -= 2; 00055 seed.subjectOffset -= 2; 00056 00057 if (tableGappedScoring_table == NULL) 00058 tableGappedScoring_buildTable(); 00059 00060 // Update the seed to point to byte-packed sequences 00061 seed.subjectOffset /= 4; 00062 00063 // printf("Seed=%d,%d\n", seed.queryOffset, seed.subjectOffset); fflush(stdout); 00064 00065 // Perform dynamic programming for pointsinitialTable before the seed 00066 beforeDpResults = tableGappedScoring_dpBeforeSeed(packedSubject, PSSMatrix, seed, dropoff); 00067 00068 // printf("Score=%d\n", beforeDpResults.bestScore); 00069 00070 // Adjust starting position to point to non-bytepacked subject 00071 beforeDpResults.best.subjectOffset *= 4; 00072 00073 // Chop the start off the query and subject so they begin at the seed 00074 choppedPSSMatrix = PSSMatrix_chop(PSSMatrix, seed.queryOffset - 1); 00075 choppedSubject = packedSubject + seed.subjectOffset; 00076 choppedSubjectSize = packedSubjectSize - seed.subjectOffset; 00077 00078 // printf("[[%d]]", PSSMatrix.queryCodes[0]); 00079 // encoding_printLetters(PSSMatrix.xorCodes[0], 4); 00080 00081 // Perform dynamic programming for points after the seed 00082 afterDpResults = tableGappedScoring_dpAfterSeed(choppedSubject, choppedPSSMatrix, 00083 dropoff, choppedSubjectSize); 00084 00085 // Re-adjust result change due to chopping subject/query and byte packing 00086 afterDpResults.best.queryOffset += seed.queryOffset - 1; 00087 afterDpResults.best.subjectOffset = (afterDpResults.best.subjectOffset + seed.subjectOffset) * 4; 00088 00089 // Extend out ends slightly 00090 beforeDpResults.best.queryOffset -= 2; 00091 beforeDpResults.best.subjectOffset -= 2; 00092 afterDpResults.best.queryOffset += 6; 00093 afterDpResults.best.subjectOffset += 6; 00094 00095 #ifdef VERBOSE 00096 if (parameters_verboseDloc == blast_dloc) 00097 printf("table[%d,%d](seed=%d,%d)\n", beforeDpResults.bestScore, afterDpResults.bestScore, 00098 seed.queryOffset, seed.subjectOffset * 4); 00099 #endif 00100 00101 // Determine score by combining score from the two traces, and the match score at 00102 // the seed position 00103 score = beforeDpResults.bestScore + afterDpResults.bestScore; 00104 00105 // printf("Table score=%d/%d\n", score, ungappedExtension->nominalScore); 00106 00107 // Use ungapped alignment score and endpoints if better 00108 if (ungappedExtension->nominalScore > score) 00109 { 00110 score = ungappedExtension->nominalScore; 00111 } 00112 else 00113 { 00114 // Associate best scoring start and end points with the ungapped extension 00115 ungappedExtension->start = beforeDpResults.best; 00116 ungappedExtension->end = afterDpResults.best; 00117 } 00118 00119 return score; 00120 }
Here is the call graph for this function:

Here is the caller graph for this function:

1.5.2