realigner.reAlign(query, parents);
}
-
+
//get sequence that were given from maligner results
vector<SeqDist> seqs;
map<string, float> removeDups;
for (int j = 0; j < Results.size(); j++) {
float dist = (Results[j].regionEnd - Results[j].regionStart + 1) * Results[j].queryToParentLocal;
//only add if you are not a duplicate
- itDup = removeDups.find(Results[j].parent);
- if (itDup == removeDups.end()) { //this is not duplicate
- removeDups[Results[j].parent] = dist;
- parentNameSeq[Results[j].parent] = Results[j].parentAligned;
- }else if (dist > itDup->second) { //is this a stronger number for this parent
- removeDups[Results[j].parent] = dist;
- parentNameSeq[Results[j].parent] = Results[j].parentAligned;
+
+ if(Results[j].queryToParentLocal >= 90){ //local match has to be over 90% similarity
+
+ itDup = removeDups.find(Results[j].parent);
+ if (itDup == removeDups.end()) { //this is not duplicate
+ removeDups[Results[j].parent] = dist;
+ parentNameSeq[Results[j].parent] = Results[j].parentAligned;
+ }else if (dist > itDup->second) { //is this a stronger number for this parent
+ removeDups[Results[j].parent] = dist;
+ parentNameSeq[Results[j].parent] = Results[j].parentAligned;
+ }
+
}
+
}
for (itDup = removeDups.begin(); itDup != removeDups.end(); itDup++) {
SeqDist member;
member.seq = seq;
member.dist = itDup->second;
-
seqs.push_back(member);
}
vector<data_struct> all; all.clear();
myQuery = *query;
+
for (int i = 0; i < refSeqs.size(); i++) {
for (int j = i+1; j < refSeqs.size(); j++) {
float QRA = computePercentID(query, parentA, breakpoint+1, length);
float LAB = computePercentID(parentA, parentB, 0, breakpoint);
- float RAB = computePercentID(parentA, parentB, breakpoint+1, length);
-
+ float RAB = computePercentID(parentA, parentB, breakpoint+1, length);
+
float AB = ((LAB*leftLength) + (RAB*rightLength)) / (float) length;
float QA = ((QLA*leftLength) + (QRA*rightLength)) / (float) length;
float QB = ((QLB*leftLength) + (QRB*rightLength)) / (float) length;
float divR_QLA_QRB = min((QLA_QRB/QA), (QLA_QRB/QB));
float divR_QLB_QRA = min((QLB_QRA/QA), (QLB_QRA/QB));
+
//cout << q->getName() << '\t';
//cout << pA->getName() << '\t';
//cout << pB->getName() << '\t';
}//if
}//for
+
return data;
}