00001
00002
00003
00004
00005 #ifndef CHAINCONNECT_H
00006 #define CHAINCONNECT_H
00007
00008 struct chainConnect
00009
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
00021
00022
00023 int chainConnectGapCost(int dq, int dt, struct chainConnect *cc);
00024
00025
00026 void chainRemovePartialOverlaps(struct chain *chain,
00027 struct dnaSeq *qSeq, struct dnaSeq *tSeq, int matrix[256][256]);
00028
00029
00030 void chainMergeAbutting(struct chain *chain);
00031
00032
00033
00034 double chainScoreBlock(char *q, char *t, int size, int matrix[256][256]);
00035
00036
00037 double chainCalcScore(struct chain *chain, struct axtScoreScheme *ss,
00038 struct gapCalc *gapCalc, struct dnaSeq *query, struct dnaSeq *target);
00039
00040
00041 double chainCalcScoreSubChain(struct chain *chain, struct axtScoreScheme *ss,
00042 struct gapCalc *gapCalc, struct dnaSeq *query, struct dnaSeq *target);
00043
00044
00045
00046 void chainCalcBounds(struct chain *chain);
00047
00048
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
00054
00055
00056
00057
00058
00059 #endif
00060