inc/chainConnect.h

Go to the documentation of this file.
00001 /* chainConnect - Modules to figure out cost of connecting two blocks
00002  * in a chain, and to help clean up overlapping blocks in a chain after
00003  * main chainBlock call is done. */
00004 
00005 #ifndef CHAINCONNECT_H
00006 #define CHAINCONNECT_H
00007 
00008 struct chainConnect
00009 /* Structure to help figure out chain connection costs. */
00010     {
00011     struct dnaSeq *query;
00012     struct dnaSeq *target;
00013     struct axtScoreScheme *ss;
00014     struct gapCalc *gapCalc;
00015     };
00016 
00017 
00018 int chainConnectCost(struct cBlock *a, struct cBlock *b, 
00019         struct chainConnect *cc);
00020 /* Calculate connection cost - including gap score
00021  * and overlap adjustments if any. */
00022 
00023 int chainConnectGapCost(int dq, int dt, struct chainConnect *cc);
00024 /* Calculate cost of non-overlapping gap. */
00025 
00026 void chainRemovePartialOverlaps(struct chain *chain, 
00027         struct dnaSeq *qSeq, struct dnaSeq *tSeq, int matrix[256][256]);
00028 /* If adjacent blocks overlap then find crossover points between them. */
00029 
00030 void chainMergeAbutting(struct chain *chain);
00031 /* Merge together blocks in a chain that abut each
00032  * other exactly. */
00033 
00034 double chainScoreBlock(char *q, char *t, int size, int matrix[256][256]);
00035 /* Score block through matrix. */
00036 
00037 double chainCalcScore(struct chain *chain, struct axtScoreScheme *ss, 
00038         struct gapCalc *gapCalc, struct dnaSeq *query, struct dnaSeq *target);
00039 /* Calculate chain score freshly. */
00040 
00041 double chainCalcScoreSubChain(struct chain *chain, struct axtScoreScheme *ss, 
00042         struct gapCalc *gapCalc, struct dnaSeq *query, struct dnaSeq *target);
00043 /* Calculate chain score assuming query and target 
00044    span the chained region rather than entire chrom. */
00045 
00046 void chainCalcBounds(struct chain *chain);
00047 /* Recalculate chain boundaries - setting qStart/qEnd/tStart/tEnd from
00048  * a scan of blockList. */
00049 
00050 void cBlockFindCrossover(struct cBlock *left, struct cBlock *right,
00051         struct dnaSeq *qSeq, struct dnaSeq *tSeq,  
00052         int overlap, int matrix[256][256], int *retPos, int *retScoreAdjustment);
00053 /* Find ideal crossover point of overlapping blocks.  That is
00054  * the point where we should start using the right block rather
00055  * than the left block.  This point is an offset from the start
00056  * of the overlapping region (which is the same as the start of the
00057  * right block). */
00058 
00059 #endif /* CHAINCONNECT_H */
00060 

Generated on Tue Dec 25 18:39:29 2007 for blat by  doxygen 1.5.2