Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / muscle / profdb.cpp
diff --git a/website/archive/binaries/mac/src/muscle/profdb.cpp b/website/archive/binaries/mac/src/muscle/profdb.cpp
new file mode 100644 (file)
index 0000000..f1b6595
--- /dev/null
@@ -0,0 +1,54 @@
+#include "muscle.h"\r
+#include "textfile.h"\r
+#include "seqvect.h"\r
+#include "distfunc.h"\r
+#include "msa.h"\r
+#include "tree.h"\r
+#include "clust.h"\r
+#include "profile.h"\r
+#include "clustsetmsa.h"\r
+\r
+void ProfDB()\r
+       {\r
+       SetOutputFileName(g_pstrOutFileName);\r
+       SetInputFileName(g_pstrFileName2);\r
+       SetStartTime();\r
+\r
+       TextFile file1(g_pstrFileName1);\r
+       TextFile file2(g_pstrFileName2);\r
+\r
+       SetMaxIters(g_uMaxIters);\r
+       SetSeqWeightMethod(g_SeqWeight1);\r
+\r
+       TextFile fileIn(g_pstrFileName1);\r
+       MSA msa1;\r
+       msa1.FromFile(fileIn);\r
+\r
+       const unsigned uSeqCount1 = msa1.GetSeqCount();\r
+       if (0 == uSeqCount1)\r
+               Quit("No sequences in input alignment");\r
+\r
+       SeqVect v;\r
+       v.FromFASTAFile(file2);\r
+       const unsigned uSeqCount2 = v.Length();\r
+       if (0 == uSeqCount2)\r
+               Quit("No sequences in input alignment");\r
+\r
+       MSA::SetIdCount(uSeqCount1 + uSeqCount2);\r
+       SetProgressDesc("Align sequence database to profile");\r
+       for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount2; ++uSeqIndex)\r
+               {\r
+               Progress(uSeqIndex, uSeqCount2);\r
+               Seq &s = *(v[uSeqIndex]);\r
+               s.SetId(0);\r
+               MSA msaTmp;\r
+               msaTmp.FromSeq(s);\r
+               MSA msaOut;\r
+               ProfileProfile(msa1, msaTmp, msaOut);\r
+               msa1.Copy(msaOut);\r
+               }\r
+       ProgressStepsDone();\r
+\r
+       TextFile fileOut(g_pstrOutFileName, true);\r
+       msa1.ToFile(fileOut);\r
+       }\r