alignLength = referenceSeqs[0].length();
- chimeraReportFile << "queryName\tbestRef\tbestSequenceMismatch\tleftParentChi,rightParentChi\tbreakPointChi\tminMismatchToChimera\tdistToBestMera\tnumParents";
+ chimeraReportFile << "queryName\tbestRef\tbestSequenceMismatch\tleftParentChi,rightParentChi\tbreakPointChi\tminMismatchToChimera\tdistToBestMera\tnumParents" << endl;
// chimeraReportFile << "leftParentTri,middleParentTri,rightParentTri\tbreakPointTriA,breakPointTriB\tminMismatchToTrimera\tdistToBestMera\tnMera" << endl;
}
int nMera = 0;
string chimeraRefSeq = "";
- if(bestSequenceMismatch - minMismatchToChimera <= 3){
- nMera = 1;
- chimeraRefSeq = referenceSeqs[bestMatch];
- }
- else {
-
+ if(bestSequenceMismatch - minMismatchToChimera >= 3){// || (minMismatchToChimera == 0 && bestSequenceMismatch != 0)){
+
nMera = 2;
chimeraRefSeq = stitchBimera(leftParentBi, rightParentBi, breakPointBi);
// }
}
+ else{
+ nMera = 1;
+ chimeraRefSeq = referenceSeqs[bestMatch];
+ }
+
+
double distToChimera = calcDistToChimera(querySeq, chimeraRefSeq);
// double loonIndex = calcLoonIndex(querySeq, referenceSeqs[leftParentBi], referenceSeqs[rightParentBi], breakPointBi, binMatrix);
for(int i=0;i<numRefSeqs;i++){
int lDiffs = 0;
+
for(int l=0;l<alignLength;l++){
- if(querySeq[l] != '.' && querySeq[l] != referenceSeqs[i][l]){
+// if(querySeq[l] != '.' && querySeq[l] != referenceSeqs[i][l]){
+
+ if(querySeq[l] != '.' && referenceSeqs[i][l] != '.' && querySeq[l] != referenceSeqs[i][l] && referenceSeqs[i][l] != 'N'){
lDiffs++;
}
left[i][l] = lDiffs;
int rDiffs = 0;
int index = 0;
for(int l=alignLength-1;l>=0;l--){
- if(querySeq[l] != '.' && querySeq[l] != referenceSeqs[i][l]){
+// if(querySeq[l] != '.' && querySeq[l] != referenceSeqs[i][l]){
+ if(querySeq[l] != '.' && referenceSeqs[i][l] != '.' && querySeq[l] != referenceSeqs[i][l] && referenceSeqs[i][l] != 'N'){
rDiffs++;
}
right[i][index++] = rDiffs;
}
+
if(lDiffs < bestSequenceMismatch){
bestSequenceMismatch = lDiffs;
bestRefSeq = i;
int mismatch = 0;
for(int i=0;i<alignLength;i++){
- if(querySeq[i] != '.' && chimeraRefSeq[i] != '.'){
- if(querySeq[i] == '-' && chimeraRefSeq[i] == '-'){ /* do nothing */ }
+// if(querySeq[i] != '.' && chimeraRefSeq[i] != '.'){
+ if(chimeraRefSeq[i] != '.' && querySeq[i] != '.'){
+ if(querySeq[i] == '-' && chimeraRefSeq[i] == '-' && chimeraRefSeq[i] != 'N'){ /* do nothing */ }
else if(querySeq[i] == chimeraRefSeq[i]){
match++;
}