1 //uchime by Robert C. Edgar http://drive5.com/uchime This code is donated to the public domain.
\r
17 //unsigned LY, LN, LA, LD;
\r
18 //unsigned RY, RN, RA, RD;
\r
19 double PctIdQT, PctIdQA, PctIdQB, PctIdQM, PctIdAB;
\r
32 unsigned CS_LY, CS_LN, CS_LA, CS_RY, CS_RN, CS_RA;
\r
52 //LY = LN = LA = LD = UINT_MAX;
\r
53 //RY = RN = RA = RD = UINT_MAX;
\r
54 ColLo = ColHi = QXLo = QXHi = ColXLo = ColXHi = UINT_MAX;
\r
55 CS_LY = CS_LN = CS_LA = CS_RY = CS_RN = CS_RA = UINT_MAX;
\r
56 PctIdQT = PctIdQA = PctIdQB = PctIdQM = PctIdAB = -1.0;
\r
60 AbQ = AbA = AbB = -1.0f;
\r
65 return Score >= opt_minh && Div >= opt_mindiv && CS_LY >= opt_mindiffs && CS_RY >= opt_mindiffs;
\r
70 Log("@L %c ", yon(Score >= 1.0 && Div >= 1.0));
\r
71 Log(" %.4f", Score);
\r
72 Log(" LY %u LN %u LA %u", CS_LY, CS_LN, CS_LA);
\r
73 Log(" RY %u RN %u RA %u", CS_RY, CS_RN, CS_RA);
\r
74 Log(" Div %.1f%%", Div);
\r
75 Log(" Q=%s", QLabel.c_str());
\r
76 Log(" A=%s", ALabel.c_str());
\r
77 Log(" B=%s", BLabel.c_str());
\r
78 Log(" QA %.1f%% QB=%.1f%% AB=%.1f%% QM=%.1f%%", PctIdQA, PctIdQB, PctIdAB, PctIdQM);
\r
82 bool operator<(const ChimeHit2 &rhs) const
\r
84 if (Score == rhs.Score)
\r
85 return Div > rhs.Div;
\r
86 return Score > rhs.Score;
\r
90 static inline bool isacgt(char c)
\r
92 return c == 'A' || c == 'C' || c == 'G' || c == 'T';
\r
95 static bool inline isgap(char c)
\r
97 return c == '-' || c == '.';
\r
100 void GetChunkInfo(unsigned L, unsigned &Length, vector<unsigned> &Los);
\r
101 float GetAbFromLabel(const string &Label);
\r
102 void WriteChimeHitCS(FILE *f, const ChimeHit2 &Hit);
\r
103 void WriteChimeHit(FILE *f, const ChimeHit2 &Hit);
\r
104 void WriteChimeFileHdr(FILE *f);
\r