+ vector<score_struct> path;
+
+ int rowIndex = highestStruct[i].row;
+ int pos = highestStruct[i].col;
+ int score = highestStruct[i].score;
+
+ while (pos >= 0 && score > 0) {
+ score_struct temp = ms[rowIndex][pos];
+ score = temp.score;
+
+ if (score > 0) { path.push_back(temp); }
+
+ rowIndex = temp.prev;
+ pos--;
+ }
+
+ reverse(path.begin(), path.end());
+
+ vector<trace_struct> trace = mapTraceRegionsToAlignment(path, refSeqs);
+
+// cout << "traces\n";
+// for(int j=0;j<trace.size();j++){
+// cout << trace[j].col << '\t' << trace[j].oldCol << '\t' << refSeqs[trace[j].row]->getName() << endl;
+// }
+
+// Need to do something with this in a bit...
+// if (trace.size() > 1) { chimera = "yes"; }
+// else { chimera = "no"; }
+
+ int traceStart = path[0].col;
+ int traceEnd = path[path.size()-1].col;
+// cout << "traceStart/End\t" << traceStart << '\t' << traceEnd << endl;
+
+ string queryInRange = query->getAligned();
+ queryInRange = queryInRange.substr(traceStart, (traceEnd-traceStart+1));
+// cout << "here" << endl;
+ string chimeraSeq = constructChimericSeq(trace, refSeqs);
+ string antiChimeraSeq = constructAntiChimericSeq(trace, refSeqs);
+
+ percentIdenticalQueryChimera = computePercentID(queryInRange, chimeraSeq);
+ double percentIdenticalQueryAntiChimera = computePercentID(queryInRange, antiChimeraSeq);
+// cout << i << '\t' << percentIdenticalQueryChimera << '\t' << percentIdenticalQueryAntiChimera << endl;