+++ /dev/null
-#include "muscle.h"\r
-#include "msa.h"\r
-#include "tree.h"\r
-#include "seqvect.h"\r
-\r
-#if DEBUG\r
-static SeqVect *g_ptrMuscleSeqVect = 0;\r
-static MSA MuscleInputMSA;\r
-\r
-void SetMuscleInputMSA(MSA &msa)\r
- {\r
- MuscleInputMSA.Copy(msa);\r
- }\r
-\r
-void SetMuscleSeqVect(SeqVect &v)\r
- {\r
- g_ptrMuscleSeqVect = &v;\r
- }\r
-\r
-void ValidateMuscleIdsSeqVect(const MSA &msa)\r
- {\r
- const unsigned uSeqCount = msa.GetSeqCount();\r
- for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)\r
- {\r
- const unsigned uId = msa.GetSeqId(uSeqIndex);\r
- const char *ptrNameMSA = msa.GetSeqName(uSeqIndex);\r
- const char *ptrName = g_ptrMuscleSeqVect->GetSeqName(uId);\r
- if (0 != strcmp(ptrNameMSA, ptrName))\r
- Quit("ValidateMuscleIdsSeqVect, names don't match");\r
- }\r
- }\r
-\r
-void ValidateMuscleIdsMSA(const MSA &msa)\r
- {\r
- const unsigned uSeqCount = msa.GetSeqCount();\r
- for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)\r
- {\r
- const unsigned uId = msa.GetSeqId(uSeqIndex);\r
- const char *ptrNameMSA = msa.GetSeqName(uSeqIndex);\r
- const char *ptrName = MuscleInputMSA.GetSeqName(uId);\r
- if (0 != strcmp(ptrNameMSA, ptrName))\r
- {\r
- Log("Input MSA:\n");\r
- MuscleInputMSA.LogMe();\r
- Log("MSA being tested:\n");\r
- msa.LogMe();\r
- Log("Id=%u\n", uId);\r
- Log("Input name=%s\n", ptrName);\r
- Log("Test name=%s\n", ptrNameMSA);\r
- Quit("ValidateMuscleIdsMSA, names don't match");\r
- }\r
- }\r
- }\r
-\r
-void ValidateMuscleIds(const MSA &msa)\r
- {\r
- if (0 != g_ptrMuscleSeqVect)\r
- ValidateMuscleIdsSeqVect(msa);\r
- else if (0 != MuscleInputMSA.GetSeqCount())\r
- ValidateMuscleIdsMSA(msa);\r
- else\r
- Quit("ValidateMuscleIds, ptrMuscleSeqVect=0 && 0 == MuscleInputMSA.SeqCount()");\r
-\r
- }\r
-\r
-void ValidateMuscleIdsSeqVect(const Tree &tree)\r
- {\r
- const unsigned uSeqCount = g_ptrMuscleSeqVect->GetSeqCount();\r
- const unsigned uNodeCount = tree.GetNodeCount();\r
- for (unsigned uNodeIndex = 0; uNodeIndex < uNodeCount; ++uNodeIndex)\r
- {\r
- if (!tree.IsLeaf(uNodeIndex))\r
- continue;\r
- const unsigned uId = tree.GetLeafId(uNodeIndex);\r
- if (uId >= uSeqCount)\r
- {\r
- tree.LogMe();\r
- Quit("Leaf with node index %u has id=%u, there are %u seqs",\r
- uNodeIndex, uId, uSeqCount);\r
- }\r
- const char *ptrNameTree = tree.GetLeafName(uNodeIndex);\r
- const char *ptrName = g_ptrMuscleSeqVect->GetSeqName(uId);\r
- if (0 != strcmp(ptrNameTree, ptrName))\r
- Quit("ValidateMuscleIds: names don't match");\r
- }\r
- }\r
-\r
-void ValidateMuscleIdsMSA(const Tree &tree)\r
- {\r
- const unsigned uNodeCount = tree.GetNodeCount();\r
- for (unsigned uNodeIndex = 0; uNodeIndex < uNodeCount; ++uNodeIndex)\r
- {\r
- if (!tree.IsLeaf(uNodeIndex))\r
- continue;\r
- const unsigned uId = tree.GetLeafId(uNodeIndex);\r
- const char *ptrNameTree = tree.GetLeafName(uNodeIndex);\r
- const char *ptrName = MuscleInputMSA.GetSeqName(uId);\r
- if (0 != strcmp(ptrNameTree, ptrName))\r
- Quit("ValidateMuscleIds: names don't match");\r
- }\r
- }\r
-\r
-void ValidateMuscleIds(const Tree &tree)\r
- {\r
- if (0 != g_ptrMuscleSeqVect)\r
- ValidateMuscleIdsSeqVect(tree);\r
- else if (0 != MuscleInputMSA.GetSeqCount())\r
- ValidateMuscleIdsMSA(tree);\r
- else\r
- Quit("ValidateMuscleIds, ptrMuscleSeqVect=0 && 0 == MuscleInputMSA.SeqCount");\r
- }\r
-#endif\r