7 static SeqVect *g_ptrMuscleSeqVect = 0;
\r
8 static MSA MuscleInputMSA;
\r
10 void SetMuscleInputMSA(MSA &msa)
\r
12 MuscleInputMSA.Copy(msa);
\r
15 void SetMuscleSeqVect(SeqVect &v)
\r
17 g_ptrMuscleSeqVect = &v;
\r
20 void ValidateMuscleIdsSeqVect(const MSA &msa)
\r
22 const unsigned uSeqCount = msa.GetSeqCount();
\r
23 for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)
\r
25 const unsigned uId = msa.GetSeqId(uSeqIndex);
\r
26 const char *ptrNameMSA = msa.GetSeqName(uSeqIndex);
\r
27 const char *ptrName = g_ptrMuscleSeqVect->GetSeqName(uId);
\r
28 if (0 != strcmp(ptrNameMSA, ptrName))
\r
29 Quit("ValidateMuscleIdsSeqVect, names don't match");
\r
33 void ValidateMuscleIdsMSA(const MSA &msa)
\r
35 const unsigned uSeqCount = msa.GetSeqCount();
\r
36 for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)
\r
38 const unsigned uId = msa.GetSeqId(uSeqIndex);
\r
39 const char *ptrNameMSA = msa.GetSeqName(uSeqIndex);
\r
40 const char *ptrName = MuscleInputMSA.GetSeqName(uId);
\r
41 if (0 != strcmp(ptrNameMSA, ptrName))
\r
43 Log("Input MSA:\n");
\r
44 MuscleInputMSA.LogMe();
\r
45 Log("MSA being tested:\n");
\r
47 Log("Id=%u\n", uId);
\r
48 Log("Input name=%s\n", ptrName);
\r
49 Log("Test name=%s\n", ptrNameMSA);
\r
50 Quit("ValidateMuscleIdsMSA, names don't match");
\r
55 void ValidateMuscleIds(const MSA &msa)
\r
57 if (0 != g_ptrMuscleSeqVect)
\r
58 ValidateMuscleIdsSeqVect(msa);
\r
59 else if (0 != MuscleInputMSA.GetSeqCount())
\r
60 ValidateMuscleIdsMSA(msa);
\r
62 Quit("ValidateMuscleIds, ptrMuscleSeqVect=0 && 0 == MuscleInputMSA.SeqCount()");
\r
66 void ValidateMuscleIdsSeqVect(const Tree &tree)
\r
68 const unsigned uSeqCount = g_ptrMuscleSeqVect->GetSeqCount();
\r
69 const unsigned uNodeCount = tree.GetNodeCount();
\r
70 for (unsigned uNodeIndex = 0; uNodeIndex < uNodeCount; ++uNodeIndex)
\r
72 if (!tree.IsLeaf(uNodeIndex))
\r
74 const unsigned uId = tree.GetLeafId(uNodeIndex);
\r
75 if (uId >= uSeqCount)
\r
78 Quit("Leaf with node index %u has id=%u, there are %u seqs",
\r
79 uNodeIndex, uId, uSeqCount);
\r
81 const char *ptrNameTree = tree.GetLeafName(uNodeIndex);
\r
82 const char *ptrName = g_ptrMuscleSeqVect->GetSeqName(uId);
\r
83 if (0 != strcmp(ptrNameTree, ptrName))
\r
84 Quit("ValidateMuscleIds: names don't match");
\r
88 void ValidateMuscleIdsMSA(const Tree &tree)
\r
90 const unsigned uNodeCount = tree.GetNodeCount();
\r
91 for (unsigned uNodeIndex = 0; uNodeIndex < uNodeCount; ++uNodeIndex)
\r
93 if (!tree.IsLeaf(uNodeIndex))
\r
95 const unsigned uId = tree.GetLeafId(uNodeIndex);
\r
96 const char *ptrNameTree = tree.GetLeafName(uNodeIndex);
\r
97 const char *ptrName = MuscleInputMSA.GetSeqName(uId);
\r
98 if (0 != strcmp(ptrNameTree, ptrName))
\r
99 Quit("ValidateMuscleIds: names don't match");
\r
103 void ValidateMuscleIds(const Tree &tree)
\r
105 if (0 != g_ptrMuscleSeqVect)
\r
106 ValidateMuscleIdsSeqVect(tree);
\r
107 else if (0 != MuscleInputMSA.GetSeqCount())
\r
108 ValidateMuscleIdsMSA(tree);
\r
110 Quit("ValidateMuscleIds, ptrMuscleSeqVect=0 && 0 == MuscleInputMSA.SeqCount");
\r