13 SA.Seq and SB.Seq align.
\r
14 Reverse strand stuff for nucleotides is handled like this:
\r
15 SA.RevComp must be false.
\r
16 If SB.RevComp is true, then SA.Seq is r.c.'d relative to the sequence in
\r
17 the input file (query or db). If so, coordinates in HSP refer to SB.Seq
\r
18 so are also r.c.'d relative to the original sequence.
\r
35 Log(" %s,%s\n", SA.Label, SB.Label);
\r
39 bool OnDerepHit(const SeqData &SA, const SeqData &SB);
\r
41 bool OnLocalUngappedHit(const SeqData &SA, const SeqData &SB,
\r
42 const HSPData &HSP, float &Evalue, float &FractId);
\r
44 bool OnLocalGappedHit(const SeqData &SA, const SeqData &SB,
\r
45 const HSPData &HSP, const PathData &PD, float &Evalue, float &FractId);
\r
47 bool OnGlobalHit(const SeqData &SA, const SeqData &SB, const PathData &PD,
\r
50 void OnReject(const SeqData &SA, const SeqData &SB, double FractId,
\r
53 void OnNotMatched(const char *Label, unsigned L);
\r
54 void OnNewCluster(unsigned ClusterIndex, const char *Label, unsigned L);
\r
55 void OnNewLibCluster(unsigned ClusterIndex, const char *Label, unsigned L);
\r
56 void OnLibCluster(unsigned ClusterIndex, unsigned Size, double AvgId,
\r
58 void OnNewCluster(unsigned ClusterIndex, unsigned Size, double AvgId,
\r
60 void OnChainCov(const SeqData &NucleoSD, const SeqData &TargetSD,
\r
61 float Score, float ChainCov);
\r
63 void SetUserFieldIndexes(const string &s);
\r
65 void BlastOut(FILE *f, const AlnData &AD);
\r
66 void Blast6Out(FILE *f, const AlnData &AD);
\r
67 void FastaPairOut(FILE *f, const AlnData &AD);
\r
68 void UserOut(FILE *f, const AlnData &AD);
\r
70 void BlastOutORF(FILE *f, const AlnData &AD);
\r
72 void OpenOutputFiles();
\r
73 void CloseOutputFiles();
\r
74 void SetLibSeedCount(unsigned DBSeqCount);
\r
75 const char *UserFieldIndexToStr(unsigned i);
\r
77 extern float **g_SubstMx;
\r
79 static char g_IdChar = '|';
\r
80 static char g_DiffChar = ' ';
\r
82 static inline char GetSymN(byte Letter1, byte Letter2)
\r
84 Letter1 = toupper(Letter1);
\r
85 Letter2 = toupper(Letter2);
\r
86 if (Letter1 == Letter2)
\r
91 static inline char GetSymA(byte Letter1, byte Letter2)
\r
93 Letter1 = toupper(Letter1);
\r
94 Letter2 = toupper(Letter2);
\r
95 if (Letter1 == Letter2)
\r
98 float Score = g_SubstMx[Letter1][Letter2];
\r
106 static inline char GetSym(byte Letter1, byte Letter2, bool Nucleo)
\r
109 return GetSymN(Letter1, Letter2);
\r
111 return GetSymA(Letter1, Letter2);
\r
114 static unsigned GetNDig(unsigned n)
\r
131 extern unsigned *g_UserFieldIndexes;
\r
132 extern unsigned g_UserFieldCount;
\r