source: branches/stable/GDE/MUSCLE/src/clustsetmsa.h

Last change on this file was 10390, checked in by aboeckma, 11 years ago

added muscle sourcles amd makefile

File size: 1.2 KB
Line 
1#ifndef ClustSetMSA_h
2#define ClustSetMSA_h
3
4class MSA;
5class Clust;
6
7#include "clustset.h"
8#include "msadist.h"
9
10// Distance matrix based set.
11// Computes distances between leaves, never between
12// joined clusters (leaves this to distance matrix method).
13class ClustSetMSA : public ClustSet
14        {
15public:
16        ClustSetMSA(const MSA &msa, MSADist &MD) :
17                m_ptrMSA(&msa),
18                m_ptrMSADist(&MD)
19                {
20                }
21
22public:
23        virtual unsigned GetLeafCount()
24                {
25                return m_ptrMSA->GetSeqCount();
26                }
27        virtual const char *GetLeafName(unsigned uNodeIndex)
28                {
29                return m_ptrMSA->GetSeqName(uNodeIndex);
30                }
31        virtual unsigned GetLeafId(unsigned uNodeIndex)
32                {
33                return m_ptrMSA->GetSeqId(uNodeIndex);
34                }
35        virtual void JoinNodes(const Clust &C, unsigned uLeftNodeIndex,
36          unsigned uRightNodeIndex, unsigned uJoinedNodeIndex,
37          double *ptrdLeftLength, double *ptrdRightLength)
38                {
39                Quit("ClustSetMSA::JoinNodes, should never be called");
40                }
41        virtual double ComputeDist(const Clust &C, unsigned uNodeIndex1,
42          unsigned uNodeIndex2)
43                {
44                return m_ptrMSADist->ComputeDist(*m_ptrMSA, uNodeIndex1, uNodeIndex2);
45                }
46
47public:
48        const MSA &GetMSA();
49
50private:
51        const MSA *m_ptrMSA;
52        MSADist *m_ptrMSADist;
53        };
54
55#endif  // ClustSetMSA_h
Note: See TracBrowser for help on using the repository browser.