- if (!isAligned(seq.getAligned())) { templateAligned = false; m->mothurOut(seq.getName() + " is not aligned. Sequences must be aligned to use the distance method."); m->mothurOutEndLine(); }
+ if (!isAligned(seq.getAligned())) {
+ templateAligned = false;
+ m->mothurOut(seq.getName() + " is not aligned. Sequences must be aligned to use the distance method.");
+ m->mothurOutEndLine();
+ }
if (templateSeqsLength == 0) { templateSeqsLength = seq.getAligned().length(); }
if (templateSeqsLength == 0) { templateSeqsLength = seq.getAligned().length(); }
vector<int> DistanceDB::findClosestSequences(Sequence* query, int numWanted){
try {
vector<int> topMatches;
vector<int> DistanceDB::findClosestSequences(Sequence* query, int numWanted){
try {
vector<int> topMatches;
+ Scores.clear();
bool templateSameLength = true;
string sequence = query->getAligned();
vector<seqDist> dists;
searchScore = -1.0;
bool templateSameLength = true;
string sequence = query->getAligned();
vector<seqDist> dists;
searchScore = -1.0;
- if (numWanted > data.size()) { m->mothurOut("numwanted is larger than the number of template sequences, using "+ toString(data.size()) + "."); m->mothurOutEndLine(); numWanted = data.size(); }
+ if (numWanted > data.size()){
+ m->mothurOut("numwanted is larger than the number of template sequences, using "+ toString(data.size()) + ".");
+ m->mothurOutEndLine();
+ numWanted = data.size();
+ }
if (sequence.length() != templateSeqsLength) { templateSameLength = false; }
if (sequence.length() != templateSeqsLength) { templateSameLength = false; }
@@ -79,6+89,7 @@ vector<int> DistanceDB::findClosestSequences(Sequence* query, int numWanted){
//fill topmatches with numwanted closest sequences indexes
for (int i = 0; i < numWanted; i++) {
topMatches.push_back(dists[i].seq2);
//fill topmatches with numwanted closest sequences indexes
for (int i = 0; i < numWanted; i++) {
topMatches.push_back(dists[i].seq2);
+ Scores.push_back(dists[i].dist);
}
}else {
int bestIndex = 0;
}
}else {
int bestIndex = 0;
@@ -93,13+104,14 @@ vector<int> DistanceDB::findClosestSequences(Sequence* query, int numWanted){
smallDist = dist;
}
}
smallDist = dist;
}
}
-
searchScore = smallDist;
topMatches.push_back(bestIndex);
searchScore = smallDist;
topMatches.push_back(bestIndex);
+ Scores.push_back(smallDist);
}
}else{
}
}else{
- m->mothurOut("cannot find closest matches using distance method for " + query->getName() + " without aligned template sequences of the same length."); m->mothurOutEndLine();
+ m->mothurOut("cannot find closest matches using distance method for " + query->getName() + " without aligned template sequences of the same length.");