X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=refchimeratest.cpp;fp=refchimeratest.cpp;h=0000000000000000000000000000000000000000;hb=4a877efa127e56e81a21f53cfdbbfd3bfbe8c4ff;hp=2f397e8f71ec0b8a1d47338b1f12cfc552642ed2;hpb=a6cf29fa4dac0909c7582cb1094151d34093ee76;p=mothur.git diff --git a/refchimeratest.cpp b/refchimeratest.cpp deleted file mode 100644 index 2f397e8..0000000 --- a/refchimeratest.cpp +++ /dev/null @@ -1,294 +0,0 @@ -/* - * refchimeratest.cpp - * Mothur - * - * Created by Pat Schloss on 1/31/11. - * Copyright 2011 Schloss Lab. All rights reserved. - * - */ - -#include "refchimeratest.h" -#include "mothur.h" - -int MAXINT = numeric_limits::max(); - -//*************************************************************************************************************** - -RefChimeraTest::RefChimeraTest(vector& refs){ - - m = MothurOut::getInstance(); - - numRefSeqs = refs.size(); - - referenceSeqs.resize(numRefSeqs); - referenceNames.resize(numRefSeqs); - for(int i=0;ierrorOut(e, "RefChimeraTest", "execute"); - exit(1); - } -} -//*************************************************************************************************************** - -int RefChimeraTest::analyzeQuery(string queryName, string querySeq, ofstream& chimeraReportFile){ - - vector > left(numRefSeqs); - vector singleLeft, bestLeft; - vector singleRight, bestRight; - - vector > right(numRefSeqs); - for(int i=0;i= 3){// || (minMismatchToChimera == 0 && bestSequenceMismatch != 0)){ - - 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); -// } - - } - else{ - nMera = 1; - chimeraRefSeq = referenceSeqs[bestMatch]; - } - - - double distToChimera = calcDistToChimera(querySeq, chimeraRefSeq); - -// double loonIndex = calcLoonIndex(querySeq, referenceSeqs[leftParentBi], referenceSeqs[rightParentBi], breakPointBi, binMatrix); - - chimeraReportFile << queryName << '\t' << referenceNames[bestMatch] << '\t' << bestSequenceMismatch << '\t'; - 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; -// } - - chimeraReportFile << '\t' << distToChimera << '\t' << nMera << endl; - - return nMera; -} - -/**************************************************************************************************/ - -int RefChimeraTest::getMismatches(string& querySeq, vector >& left, vector >& right, int& bestRefSeq){ - - int bestSequenceMismatch = MAXINT; - - for(int i=0;i=0;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; - } - } - return bestSequenceMismatch; -} - -/**************************************************************************************************/ - -int RefChimeraTest::getChimera(vector >& left, vector >& right, int& leftParent, int& rightParent, int& breakPoint, vector& singleLeft, vector& bestLeft, vector& singleRight, vector& bestRight){ - - singleLeft.resize(alignLength, MAXINT); - bestLeft.resize(alignLength, -1); - - for(int l=0;l >& left, vector >& right, int& leftParent, int& middleParent, int& rightParent, int& breakPointA, int& breakPointB, vector& singleLeft, vector& bestLeft, vector& singleRight, vector& bestRight){ - - int bestTrimeraMismatches = MAXINT; - - leftParent = -1; - middleParent = -1; - rightParent = -1; - - breakPointA = -1; - breakPointB = -1; - - vector > minDelta(alignLength); - vector > minDeltaSeq(alignLength); - - for(int i=0;i