X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=refchimeratest.cpp;h=4d4a658fe471ba9d0970fbb7fa57151d93c53807;hb=0bcfddf7bc721a334bdae42d86a580019303537d;hp=246d4394a58ae7f5d65bf78c8b0d19a426ea30c6;hpb=5e5253ff472de3c6349e562d2580873287be0c65;p=mothur.git diff --git a/refchimeratest.cpp b/refchimeratest.cpp index 246d439..4d4a658 100644 --- a/refchimeratest.cpp +++ b/refchimeratest.cpp @@ -30,8 +30,8 @@ RefChimeraTest::RefChimeraTest(vector& refs, string chimeraReportFileN alignLength = referenceSeqs[0].length(); - chimeraReportFile << "queryName\tbestRef\tbestSequenceMismatch\tleftParentChi,rightParentChi\tbreakPointChi\tminMismatchToChimera\t"; - chimeraReportFile << "leftParentChi,middleParentTri,rightParentChi\tbreakPointTriA,breakPointTriB\tminMismatchToTrimera\tdistToBestMera\tnMera" << endl; + chimeraReportFile << "queryName\tbestRef\tbestSequenceMismatch\tleftParentChi,rightParentChi\tbreakPointChi\tminMismatchToChimera\tdistToBestMera\tnumParents" << endl; +// chimeraReportFile << "leftParentTri,middleParentTri,rightParentTri\tbreakPointTriA,breakPointTriB\tminMismatchToTrimera\tdistToBestMera\tnMera" << endl; } @@ -54,8 +54,8 @@ int RefChimeraTest::analyzeQuery(string queryName, string querySeq){ int leftParentBi, rightParentBi, breakPointBi; int minMismatchToChimera = getChimera(left, right, leftParentBi, rightParentBi, breakPointBi, singleLeft, bestLeft, singleRight, bestRight); - int minMismatchToTrimera = MAXINT; - int leftParentTri, middleParentTri, rightParentTri, breakPointTriA, breakPointTriB; +// int minMismatchToTrimera = MAXINT; +// int leftParentTri, middleParentTri, rightParentTri, breakPointTriA, breakPointTriB; int nMera = 0; string chimeraRefSeq = ""; @@ -65,17 +65,20 @@ int RefChimeraTest::analyzeQuery(string queryName, string querySeq){ chimeraRefSeq = referenceSeqs[bestMatch]; } else { - - minMismatchToTrimera = getTrimera(left, right, leftParentTri, middleParentTri, rightParentTri, breakPointTriA, breakPointTriB, singleLeft, bestLeft, singleRight, bestRight); - if(minMismatchToChimera - minMismatchToTrimera <= 3){ - nMera = 2; - chimeraRefSeq = stitchBimera(leftParentBi, rightParentBi, breakPointBi); - } - else{ - nMera = 3; - chimeraRefSeq = stitchTrimera(leftParentTri, middleParentTri, rightParentTri, breakPointTriA, breakPointTriB); - } + nMera = 2; + chimeraRefSeq = stitchBimera(leftParentBi, rightParentBi, breakPointBi); + +// minMismatchToTrimera = getTrimera(left, right, leftParentTri, middleParentTri, rightParentTri, breakPointTriA, breakPointTriB, singleLeft, bestLeft, singleRight, bestRight); +// +// if(minMismatchToChimera - minMismatchToTrimera <= 3){ +// nMera = 2; +// chimeraRefSeq = stitchBimera(leftParentBi, rightParentBi, breakPointBi); +// } +// else{ +// nMera = 3; +// chimeraRefSeq = stitchTrimera(leftParentTri, middleParentTri, rightParentTri, breakPointTriA, breakPointTriB); +// } } double distToChimera = calcDistToChimera(querySeq, chimeraRefSeq); @@ -86,12 +89,12 @@ int RefChimeraTest::analyzeQuery(string queryName, string querySeq){ chimeraReportFile << referenceNames[leftParentBi] << ',' << referenceNames[rightParentBi] << '\t' << breakPointBi << '\t'; chimeraReportFile << minMismatchToChimera << '\t'; - if(nMera == 1){ - chimeraReportFile << "NA" << '\t' << "NA" << '\t' << "NA"; - } - else{ - chimeraReportFile << referenceNames[leftParentTri] << ',' << referenceNames[middleParentTri] << ',' << referenceNames[rightParentTri] << '\t' << breakPointTriA << ',' << breakPointTriB << '\t' << minMismatchToTrimera; - } +// if(nMera == 1){ +// chimeraReportFile << "NA" << '\t' << "NA" << '\t' << "NA"; +// } +// else{ +// chimeraReportFile << referenceNames[leftParentTri] << ',' << referenceNames[middleParentTri] << ',' << referenceNames[rightParentTri] << '\t' << breakPointTriA << ',' << breakPointTriB << '\t' << minMismatchToTrimera; +// } chimeraReportFile << '\t' << distToChimera << '\t' << nMera << endl; @@ -108,7 +111,8 @@ int RefChimeraTest::getMismatches(string& querySeq, vector >& left, int lDiffs = 0; for(int l=0;l >& left, 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]){ rDiffs++; } right[i][index++] = rDiffs; @@ -251,7 +256,8 @@ double RefChimeraTest::calcDistToChimera(string& querySeq, string& chimeraRefSeq int mismatch = 0; for(int i=0;i