X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=eachgapignore.h;h=2e7fbd6bd228d3ed625cd1904ecd7d15075d9234;hp=f6824cf8d3e407dce231f3fc18194cb5f7b8bc0e;hb=615301e57c25e241356a9c2380648d117709458d;hpb=f2d22832d127f781989c98457f42e94aea96075f diff --git a/eachgapignore.h b/eachgapignore.h index f6824cf..2e7fbd6 100644 --- a/eachgapignore.h +++ b/eachgapignore.h @@ -17,12 +17,15 @@ class eachGapIgnoreTermGapDist : public Dist { public: + eachGapIgnoreTermGapDist() {} + eachGapIgnoreTermGapDist(const eachGapIgnoreTermGapDist& ddb) {} void calcDist(Sequence A, Sequence B){ int diff = 0; int length = 0; int start = 0; int end = 0; + bool overlap = false; string seqA = A.getAligned(); string seqB = B.getAligned(); @@ -32,6 +35,7 @@ public: if(seqA[i] != '.' && seqB[i] != '.' && seqA[i] != '-' && seqB[i] != '-' ){ start = i; // cout << "start: " << start << endl; + overlap = true; break; } } @@ -39,6 +43,7 @@ public: if(seqA[i] != '.' && seqB[i] != '.' && seqA[i] != '-' && seqB[i] != '-' ){ end = i; // cout << "end: " << end << endl; + overlap = true; break; } } @@ -55,6 +60,9 @@ public: } } + //non-overlapping sequences + if (!overlap) { length = 0; } + if(length == 0) { dist = 1.0000; } else { dist = ((double)diff / (double)length); }