]> git.donarmstrong.com Git - mothur.git/blob - addtargets2.cpp
fixed label option in sens.spec and added smart distancing.
[mothur.git] / addtargets2.cpp
1 //#if   UCHIMES\r
2 \r
3 #include "myutils.h"\r
4 #include "chime.h"\r
5 #include "ultra.h"\r
6 #include <set>\r
7 \r
8 const float MAX_WORD_COUNT_DROP = 1;\r
9 \r
10 void SortDescending(const vector<float> &Values, vector<unsigned> &Order);\r
11 bool GlobalAlign(const SeqData &Query, const SeqData &Target, string &Path);\r
12 double GetFractIdGivenPath(const byte *A, const byte *B, const char *Path);\r
13 void USort(const SeqData &Query, const SeqDB &DB, vector<float> &WordCounts,\r
14   vector<unsigned> &Order);\r
15 \r
16 void AddTargets(SeqDB &DB, const SeqData &Query, set<unsigned> &TargetIndexes)\r
17         {\r
18         const unsigned SeqCount = DB.GetSeqCount();\r
19         if (SeqCount == 0)\r
20                 return;\r
21 \r
22         vector<float> WordCounts;\r
23         vector<unsigned> Order;\r
24         USort(Query, DB, WordCounts, Order);\r
25         asserta(SIZE(Order) == SeqCount);\r
26         unsigned TopSeqIndex = Order[0];\r
27         float TopWordCount = WordCounts[TopSeqIndex];\r
28         for (unsigned i = 0; i < SeqCount; ++i)\r
29                 {\r
30                 unsigned SeqIndex = Order[i];\r
31                 float WordCount = WordCounts[SeqIndex];\r
32                 if (TopWordCount - WordCount > MAX_WORD_COUNT_DROP)\r
33                         return;\r
34                 TargetIndexes.insert(SeqIndex);\r
35                 }\r
36         }\r
37 \r
38 //#endif\r