1 #ifndef ClustSetMSA_h
\r
2 #define ClustSetMSA_h
\r
7 #include "clustset.h"
\r
10 // Distance matrix based set.
\r
11 // Computes distances between leaves, never between
\r
12 // joined clusters (leaves this to distance matrix method).
\r
13 class ClustSetMSA : public ClustSet
\r
16 ClustSetMSA(const MSA &msa, MSADist &MD) :
\r
23 virtual unsigned GetLeafCount()
\r
25 return m_ptrMSA->GetSeqCount();
\r
27 virtual const char *GetLeafName(unsigned uNodeIndex)
\r
29 return m_ptrMSA->GetSeqName(uNodeIndex);
\r
31 virtual unsigned GetLeafId(unsigned uNodeIndex)
\r
33 return m_ptrMSA->GetSeqId(uNodeIndex);
\r
35 virtual void JoinNodes(const Clust &C, unsigned uLeftNodeIndex,
\r
36 unsigned uRightNodeIndex, unsigned uJoinedNodeIndex,
\r
37 double *ptrdLeftLength, double *ptrdRightLength)
\r
39 Quit("ClustSetMSA::JoinNodes, should never be called");
\r
41 virtual double ComputeDist(const Clust &C, unsigned uNodeIndex1,
\r
42 unsigned uNodeIndex2)
\r
44 return m_ptrMSADist->ComputeDist(*m_ptrMSA, uNodeIndex1, uNodeIndex2);
\r
48 const MSA &GetMSA();
\r
51 const MSA *m_ptrMSA;
\r
52 MSADist *m_ptrMSADist;
\r
55 #endif // ClustSetMSA_h
\r