]> git.donarmstrong.com Git - mothur.git/blobdiff - uchime_src/globalalign2.cpp
added uchime_src folder. added biom parameter to make.shared. added biom as a current...
[mothur.git] / uchime_src / globalalign2.cpp
diff --git a/uchime_src/globalalign2.cpp b/uchime_src/globalalign2.cpp
new file mode 100644 (file)
index 0000000..2adfb71
--- /dev/null
@@ -0,0 +1,45 @@
+#if    UCHIMES
+
+#include "dp.h"
+#include "seq.h"
+
+static AlnParams g_AP;
+static bool g_APInitDone = false;
+
+bool GlobalAlign(const SeqData &Query, const SeqData &Target, PathData &PD)\r
+       {\r
+       if (!g_APInitDone)\r
+               {\r
+               g_AP.InitFromCmdLine(true);\r
+               g_APInitDone = true;\r
+               }\r
+\r
+       ViterbiFast(Query.Seq, Query.L, Target.Seq, Target.L, g_AP, PD);\r
+       return true;\r
+       }\r
+\r
+bool GlobalAlign(const SeqData &Query, const SeqData &Target, string &Path)\r
+       {\r
+       PathData PD;\r
+       GlobalAlign(Query, Target, PD);\r
+       Path = string(PD.Start);\r
+       return true;\r
+       }\r
+\r
+bool GlobalAlign(const SeqData &Query, const SeqData &Target, const AlnParams &/*AP*/,\r
+  const AlnHeuristics &AH, HSPFinder &/*HF*/, float /*MinFractId*/, float &/*HSPId*/, PathData &PD)\r
+       {\r
+       PD.Clear();\r
+       string Path;\r
+       bool Found = GlobalAlign(Query, Target, Path);\r
+       if (!Found)\r
+               return false;\r
+       unsigned n = SIZE(Path);\r
+       PD.Alloc(n+1);\r
+       memcpy(PD.Front, Path.c_str(), n);\r
+       PD.Start = PD.Front;\r
+       PD.Start[n] = 0;\r
+       return true;\r
+       }\r
+\r
+#endif // UCHIMES\r