2 #include "distfunc.h"
\r
3 #include "distcalc.h"
\r
6 void DistCalcDF::Init(const DistFunc &DF)
\r
11 void DistCalcDF::CalcDistRange(unsigned i, dist_t Dist[]) const
\r
13 for (unsigned j = 0; j < i; ++j)
\r
14 Dist[j] = m_ptrDF->GetDist(i, j);
\r
17 unsigned DistCalcDF::GetCount() const
\r
19 return m_ptrDF->GetCount();
\r
22 unsigned DistCalcDF::GetId(unsigned i) const
\r
24 return m_ptrDF->GetId(i);
\r
27 const char *DistCalcDF::GetName(unsigned i) const
\r
29 return m_ptrDF->GetName(i);
\r
32 void DistCalcMSA::Init(const MSA &msa, DISTANCE Distance)
\r
35 m_Distance = Distance;
\r
38 void DistCalcMSA::CalcDistRange(unsigned i, dist_t Dist[]) const
\r
40 for (unsigned j = 0; j < i; ++j)
\r
44 case DISTANCE_PctIdKimura:
\r
46 const float PctId = (float) m_ptrMSA->GetPctIdentityPair(i, j);
\r
47 Dist[j] = (float) KimuraDist(PctId);
\r
50 case DISTANCE_PctIdLog:
\r
52 const float PctId = (float) m_ptrMSA->GetPctIdentityPair(i, j);
\r
53 Dist[j] = (float) PctIdToMAFFTDist(PctId);
\r
56 case DISTANCE_ScoreDist:
\r
58 double GetScoreDist(const MSA &msa, unsigned SeqIndex1, unsigned SeqIndex2);
\r
59 Dist[j] = (float) GetScoreDist(*m_ptrMSA, i, j);
\r
64 const float PctId = (float) m_ptrMSA->GetPctIdentityPair(i, j);
\r
66 Quit("Internal error, DISTANCE_Edit, pct id=%.3g", PctId);
\r
67 Dist[j] = (float) 1.0 - PctId;
\r
71 Quit("DistCalcMSA: Invalid DISTANCE_%u", m_Distance);
\r
76 unsigned DistCalcMSA::GetCount() const
\r
78 return m_ptrMSA->GetSeqCount();
\r
81 unsigned DistCalcMSA::GetId(unsigned i) const
\r
83 return m_ptrMSA->GetSeqId(i);
\r
86 const char *DistCalcMSA::GetName(unsigned i) const
\r
88 return m_ptrMSA->GetSeqName(i);
\r