+++ /dev/null
-#include "muscle.h"\r
-#include "textfile.h"\r
-#include "msa.h"\r
-#include "profile.h"\r
-#include "pwpath.h"\r
-#include "tree.h"\r
-\r
-#define TRACE 0\r
-\r
-static void MSAFromFileName(const char *FileName, MSA &a)\r
- {\r
- TextFile File(FileName);\r
- a.FromFile(File);\r
- }\r
-\r
-static ProfPos *ProfileFromMSALocal(MSA &msa, Tree &tree)\r
- {\r
- const unsigned uSeqCount = msa.GetSeqCount();\r
- for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)\r
- msa.SetSeqId(uSeqIndex, uSeqIndex);\r
-\r
- TreeFromMSA(msa, tree, g_Cluster1, g_Distance1, g_Root1);\r
- SetMuscleTree(tree);\r
- return ProfileFromMSA(msa);\r
- }\r
-\r
-void Local()\r
- {\r
- if (0 == g_pstrFileName1 || 0 == g_pstrFileName2)\r
- Quit("Must specify both -in1 and -in2 for -sw");\r
-\r
- SetSeqWeightMethod(g_SeqWeight1);\r
-\r
- MSA msa1;\r
- MSA msa2;\r
-\r
- MSAFromFileName(g_pstrFileName1, msa1);\r
- MSAFromFileName(g_pstrFileName2, msa2);\r
-\r
- ALPHA Alpha = ALPHA_Undefined;\r
- switch (g_SeqType)\r
- {\r
- case SEQTYPE_Auto:\r
- Alpha = msa1.GuessAlpha();\r
- break;\r
-\r
- case SEQTYPE_Protein:\r
- Alpha = ALPHA_Amino;\r
- break;\r
-\r
- case SEQTYPE_DNA:\r
- Alpha = ALPHA_DNA;\r
- break;\r
-\r
- case SEQTYPE_RNA:\r
- Alpha = ALPHA_RNA;\r
- break;\r
-\r
- default:\r
- Quit("Invalid SeqType");\r
- }\r
- SetAlpha(Alpha);\r
-\r
- msa1.FixAlpha();\r
- msa2.FixAlpha();\r
-\r
- if (ALPHA_DNA == Alpha || ALPHA_RNA == Alpha)\r
- SetPPScore(PPSCORE_SPN);\r
-\r
- const unsigned uSeqCount1 = msa1.GetSeqCount();\r
- const unsigned uSeqCount2 = msa2.GetSeqCount();\r
- const unsigned uMaxSeqCount = (uSeqCount1 > uSeqCount2 ? uSeqCount1 : uSeqCount2);\r
- MSA::SetIdCount(uMaxSeqCount);\r
-\r
- unsigned uLength1 = msa1.GetColCount();\r
- unsigned uLength2 = msa2.GetColCount();\r
-\r
- Tree tree1;\r
- Tree tree2;\r
-\r
- ProfPos *Prof1 = ProfileFromMSALocal(msa1, tree1);\r
- ProfPos *Prof2 = ProfileFromMSALocal(msa2, tree2);\r
-\r
- PWPath Path;\r
- SW(Prof1, uLength1, Prof2, uLength2, Path);\r
-\r
-#if TRACE\r
- Path.LogMe();\r
-#endif\r
-\r
- MSA msaOut;\r
- AlignTwoMSAsGivenPathSW(Path, msa1, msa2, msaOut);\r
-\r
-#if TRACE\r
- msaOut.LogMe();\r
-#endif\r
-\r
- TextFile fileOut(g_pstrOutFileName, true);\r
- msaOut.ToFile(fileOut);\r
- }\r