+++ /dev/null
-#ifndef ClustSetMSA_h\r
-#define ClustSetMSA_h\r
-\r
-class MSA;\r
-class Clust;\r
-\r
-#include "clustset.h"\r
-#include "msadist.h"\r
-\r
-// Distance matrix based set.\r
-// Computes distances between leaves, never between\r
-// joined clusters (leaves this to distance matrix method).\r
-class ClustSetMSA : public ClustSet\r
- {\r
-public:\r
- ClustSetMSA(const MSA &msa, MSADist &MD) :\r
- m_ptrMSA(&msa),\r
- m_ptrMSADist(&MD)\r
- {\r
- }\r
-\r
-public:\r
- virtual unsigned GetLeafCount()\r
- {\r
- return m_ptrMSA->GetSeqCount();\r
- }\r
- virtual const char *GetLeafName(unsigned uNodeIndex)\r
- {\r
- return m_ptrMSA->GetSeqName(uNodeIndex);\r
- }\r
- virtual unsigned GetLeafId(unsigned uNodeIndex)\r
- {\r
- return m_ptrMSA->GetSeqId(uNodeIndex);\r
- }\r
- virtual void JoinNodes(const Clust &C, unsigned uLeftNodeIndex,\r
- unsigned uRightNodeIndex, unsigned uJoinedNodeIndex,\r
- double *ptrdLeftLength, double *ptrdRightLength)\r
- {\r
- Quit("ClustSetMSA::JoinNodes, should never be called");\r
- }\r
- virtual double ComputeDist(const Clust &C, unsigned uNodeIndex1,\r
- unsigned uNodeIndex2)\r
- {\r
- return m_ptrMSADist->ComputeDist(*m_ptrMSA, uNodeIndex1, uNodeIndex2);\r
- }\r
-\r
-public:\r
- const MSA &GetMSA();\r
-\r
-private:\r
- const MSA *m_ptrMSA;\r
- MSADist *m_ptrMSADist;\r
- };\r
-\r
-#endif // ClustSetMSA_h\r