Next version of JABA
[jabaws.git] / binaries / src / muscle / fastdist.cpp
1 #include "muscle.h"\r
2 #include "distfunc.h"\r
3 #include "seqvect.h"\r
4 \r
5 void DistPWScoreDist(const SeqVect &v, DistFunc &DF);\r
6 \r
7 void DistUnaligned(const SeqVect &v, DISTANCE DistMethod, DistFunc &DF)\r
8         {\r
9         const unsigned uSeqCount = v.Length();\r
10 \r
11         switch (DistMethod)\r
12                 {\r
13         case DISTANCE_Kmer6_6:\r
14                 DistKmer6_6(v, DF);\r
15                 break;\r
16 \r
17         case DISTANCE_Kmer20_3:\r
18                 DistKmer20_3(v, DF);\r
19                 break;\r
20 \r
21         case DISTANCE_Kmer20_4:\r
22                 FastDistKmer(v, DF);\r
23                 break;\r
24 \r
25         case DISTANCE_Kbit20_3:\r
26                 DistKbit20_3(v, DF);\r
27                 break;\r
28 \r
29         case DISTANCE_Kmer4_6:\r
30                 DistKmer4_6(v, DF);\r
31                 break;\r
32 \r
33         case DISTANCE_PWKimura:\r
34                 DistPWKimura(v, DF);\r
35                 break;\r
36 \r
37         case DISTANCE_PWScoreDist:\r
38                 DistPWScoreDist(v, DF);\r
39                 break;\r
40 \r
41         default:\r
42                 Quit("DistUnaligned, unsupported distance method %d", DistMethod);\r
43                 }\r
44 \r
45 //      const char **SeqNames = (const char **) malloc(uSeqCount*sizeof(char *));\r
46         for (unsigned uSeqIndex = 0; uSeqIndex < uSeqCount; ++uSeqIndex)\r
47                 {\r
48                 const Seq &s = *(v[uSeqIndex]);\r
49 \r
50                 const char *ptrName = s.GetName();\r
51                 unsigned uId = s.GetId();\r
52 \r
53                 DF.SetName(uSeqIndex, ptrName);\r
54                 DF.SetId(uSeqIndex, uId);\r
55                 }\r
56         }\r