+++ /dev/null
-#include "muscle.h"\r
-#include "textfile.h"\r
-#include "msa.h"\r
-#include "tree.h"\r
-#include "profile.h"\r
-#include "objscore.h"\r
-\r
-bool g_bTracePPScore = false;\r
-MSA *g_ptrPPScoreMSA1 = 0;\r
-MSA *g_ptrPPScoreMSA2 = 0;\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_Cluster2, g_Distance2, g_Root1);\r
- SetMuscleTree(tree);\r
- return ProfileFromMSA(msa);\r
- }\r
-\r
-void PPScore()\r
- {\r
- if (0 == g_pstrFileName1 || 0 == g_pstrFileName2)\r
- Quit("-ppscore needs -in1 and -in2");\r
-\r
- SetSeqWeightMethod(g_SeqWeight1);\r
-\r
- TextFile file1(g_pstrFileName1);\r
- TextFile file2(g_pstrFileName2);\r
-\r
- MSA msa1;\r
- MSA msa2;\r
-\r
- msa1.FromFile(file1);\r
- msa2.FromFile(file2);\r
-\r
- const unsigned uLength1 = msa1.GetColCount();\r
- const unsigned uLength2 = msa2.GetColCount();\r
-\r
- if (uLength1 != uLength2)\r
- Quit("Profiles must have the same length");\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
- Tree tree1;\r
- Tree tree2;\r
- ProfPos *Prof1 = ProfileFromMSALocal(msa1, tree1);\r
- ProfPos *Prof2 = ProfileFromMSALocal(msa2, tree2);\r
-\r
- g_bTracePPScore = true;\r
- g_ptrPPScoreMSA1 = &msa1;\r
- g_ptrPPScoreMSA2 = &msa2;\r
-\r
- SCORE Score = ObjScoreDP_Profs(Prof1, Prof2, uLength1);\r
-\r
- Log("Score=%.4g\n", Score);\r
- printf("Score=%.4g\n", Score);\r
- }\r