--- /dev/null
+#include "muscle.h"\r
+#include "textfile.h"\r
+#include "msa.h"\r
+#include "objscore.h"\r
+#include "tree.h"\r
+#include "profile.h"\r
+\r
+void DoSP()\r
+ {\r
+ TextFile f(g_pstrSPFileName);\r
+\r
+ MSA a;\r
+ a.FromFile(f);\r
+\r
+ ALPHA Alpha = ALPHA_Undefined;\r
+ switch (g_SeqType)\r
+ {\r
+ case SEQTYPE_Auto:\r
+ Alpha = a.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
+ a.FixAlpha();\r
+\r
+ SetPPScore();\r
+\r
+ const unsigned uSeqCount = a.GetSeqCount();\r
+ if (0 == uSeqCount)\r
+ Quit("No sequences in input file %s", g_pstrSPFileName);\r
+\r
+ MSA::SetIdCount(uSeqCount);\r
+ for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)\r
+ a.SetSeqId(uSeqIndex, uSeqIndex);\r
+\r
+ SetSeqWeightMethod(g_SeqWeight1);\r
+ Tree tree;\r
+ TreeFromMSA(a, tree, g_Cluster2, g_Distance2, g_Root2);\r
+ SetMuscleTree(tree);\r
+ SetMSAWeightsMuscle((MSA &) a);\r
+\r
+ SCORE SP = ObjScoreSP(a);\r
+\r
+ Log("File=%s;SP=%.4g\n", g_pstrSPFileName, SP);\r
+ fprintf(stderr, "File=%s;SP=%.4g\n", g_pstrSPFileName, SP);\r
+ }\r