]> git.donarmstrong.com Git - mothur.git/blobdiff - uchime_src/chime.h
added uchime_src folder. added biom parameter to make.shared. added biom as a current...
[mothur.git] / uchime_src / chime.h
diff --git a/uchime_src/chime.h b/uchime_src/chime.h
new file mode 100644 (file)
index 0000000..1b0662a
--- /dev/null
@@ -0,0 +1,104 @@
+#ifndef chime_h\r
+#define chime_h\r
+\r
+#include "seq.h"\r
+\r
+struct ChimeHit2\r
+       {\r
+       string QLabel;\r
+       string ALabel;\r
+       string BLabel;\r
+       string Q3;\r
+       string A3;\r
+       string B3;\r
+\r
+       //unsigned LY, LN, LA, LD;\r
+       //unsigned RY, RN, RA, RD;\r
+       double PctIdQT, PctIdQA, PctIdQB, PctIdQM, PctIdAB;\r
+\r
+       unsigned ColLo;\r
+       unsigned ColXLo;\r
+       unsigned ColXHi;\r
+       unsigned ColHi;\r
+       unsigned QXLo;\r
+       unsigned QXHi;\r
+\r
+       double Div;\r
+       double Score;\r
+       double H;\r
+\r
+       unsigned CS_LY, CS_LN, CS_LA, CS_RY, CS_RN, CS_RA;\r
+\r
+       float AbQ;\r
+       float AbA;\r
+       float AbB;\r
+\r
+       ChimeHit2()\r
+               {\r
+               Clear();\r
+               }\r
+\r
+       void Clear()\r
+               {\r
+               Q3.clear();\r
+               A3.clear();\r
+               B3.clear();\r
+               QLabel.clear();\r
+               ALabel.clear();\r
+               BLabel.clear();\r
+\r
+               //LY = LN = LA = LD = UINT_MAX;\r
+               //RY = RN = RA = RD = UINT_MAX;\r
+               ColLo = ColHi = QXLo = QXHi = ColXLo = ColXHi = UINT_MAX;\r
+               CS_LY = CS_LN = CS_LA = CS_RY = CS_RN = CS_RA = UINT_MAX;\r
+               PctIdQT = PctIdQA = PctIdQB = PctIdQM = PctIdAB = -1.0;\r
+               Div = -1.0;\r
+               H = -1.0;\r
+               Score = -1.0;\r
+               AbQ = AbA = AbB = -1.0f;\r
+               };\r
+\r
+       bool Accept() const\r
+               {\r
+               return Score >= opt_minh && Div >= opt_mindiv && CS_LY >= opt_mindiffs && CS_RY >= opt_mindiffs;\r
+               }\r
+\r
+       void LogMe() const\r
+               {\r
+               Log("@L %c ", yon(Score >= 1.0 && Div >= 1.0));\r
+               Log(" %.4f", Score);\r
+               Log(" LY %u LN %u LA %u", CS_LY, CS_LN, CS_LA);\r
+               Log(" RY %u RN %u RA %u", CS_RY, CS_RN, CS_RA);\r
+               Log(" Div %.1f%%", Div);\r
+               Log(" Q=%s", QLabel.c_str());\r
+               Log(" A=%s", ALabel.c_str());\r
+               Log(" B=%s", BLabel.c_str());\r
+               Log(" QA %.1f%% QB=%.1f%% AB=%.1f%% QM=%.1f%%", PctIdQA, PctIdQB, PctIdAB, PctIdQM);\r
+               Log("\n");\r
+               }\r
+\r
+       bool operator<(const ChimeHit2 &rhs) const\r
+               {\r
+               if (Score == rhs.Score)\r
+                       return Div > rhs.Div;\r
+               return Score > rhs.Score;\r
+               }\r
+       };\r
+\r
+static inline bool isacgt(char c)\r
+       {\r
+       return c == 'A' || c == 'C' || c == 'G' || c == 'T';\r
+       }\r
+\r
+static bool inline isgap(char c)\r
+       {\r
+       return c == '-' || c == '.';\r
+       }\r
+\r
+void GetChunkInfo(unsigned L, unsigned &Length, vector<unsigned> &Los);\r
+float GetAbFromLabel(const string &Label);\r
+void WriteChimeHitCS(FILE *f, const ChimeHit2 &Hit);\r
+void WriteChimeHit(FILE *f, const ChimeHit2 &Hit);\r
+void WriteChimeFileHdr(FILE *f);\r
+\r
+#endif // chime_h\r