From a4f05f09c250323132a4b9427f41a3ededaec634 Mon Sep 17 00:00:00 2001 From: westcott Date: Mon, 21 Mar 2011 11:08:28 +0000 Subject: [PATCH] fixed get.lienage and remove.lineage bug with confidence scores that are floats. fixed bug with pairwiase.seqs that was caused by using nast. --- getlineagecommand.cpp | 12 ++++---- getlineagecommand.h | 2 +- pairwiseseqscommand.cpp | 61 ++++++++++++++++++++-------------------- removelineagecommand.cpp | 12 ++++---- removelineagecommand.h | 2 +- 5 files changed, 44 insertions(+), 45 deletions(-) diff --git a/getlineagecommand.cpp b/getlineagecommand.cpp index 5a30e1e..2a5505f 100644 --- a/getlineagecommand.cpp +++ b/getlineagecommand.cpp @@ -571,7 +571,7 @@ int GetLineageCommand::readTax(){ //bool wroteSomething = false; bool taxonsHasConfidence = false; - vector< map > searchTaxons; + vector< map > searchTaxons; string noConfidenceTaxons = taxons; int hasConPos = taxons.find_first_of('('); if (hasConPos != string::npos) { @@ -629,7 +629,7 @@ int GetLineageCommand::readTax(){ if (pos != string::npos) { //if yes, then are the confidences okay bool good = true; - vector< map > usersTaxon = getTaxons(newtax); + vector< map > usersTaxon = getTaxons(newtax); //the usersTaxon is most likely longer than the searchTaxons, and searchTaxon[0] may relate to userTaxon[4] //we want to "line them up", so we will find the the index where the searchstring starts @@ -691,10 +691,10 @@ int GetLineageCommand::readTax(){ } } /**************************************************************************************************/ -vector< map > GetLineageCommand::getTaxons(string tax) { +vector< map > GetLineageCommand::getTaxons(string tax) { try { - vector< map > t; + vector< map > t; string taxon = ""; int taxLength = tax.length(); for(int i=0;i > GetLineageCommand::getTaxons(string tax) { newtaxon = taxon; confidence = "0"; } - int con = 0; + float con = 0; convert(confidence, con); - map temp; + map temp; temp[newtaxon] = con; t.push_back(temp); diff --git a/getlineagecommand.h b/getlineagecommand.h index 45b51a8..5b7c43e 100644 --- a/getlineagecommand.h +++ b/getlineagecommand.h @@ -40,7 +40,7 @@ class GetLineageCommand : public Command { int readList(); int readTax(); string removeConfidences(string); - vector< map > getTaxons(string); + vector< map > getTaxons(string); }; #endif diff --git a/pairwiseseqscommand.cpp b/pairwiseseqscommand.cpp index e3f8852..1e7a338 100644 --- a/pairwiseseqscommand.cpp +++ b/pairwiseseqscommand.cpp @@ -14,7 +14,6 @@ #include "needlemanoverlap.hpp" #include "blastalign.hpp" #include "noalign.hpp" -#include "nast.hpp" #include "ignoregaps.h" #include "eachgapdist.h" @@ -605,16 +604,16 @@ int PairwiseSeqsCommand::driver(int startLine, int endLine, string dFileName, fl alignment->resize(alignDB.get(j).getUnaligned().length()+1); } - Sequence* seqI = new Sequence(alignDB.get(i).getName(), alignDB.get(i).getAligned()); - Sequence* seqJ = new Sequence(alignDB.get(j).getName(), alignDB.get(j).getAligned()); + Sequence seqI(alignDB.get(i).getName(), alignDB.get(i).getAligned()); + Sequence seqJ(alignDB.get(j).getName(), alignDB.get(j).getAligned()); - Nast(alignment, seqI, seqJ); + alignment->align(seqI.getUnaligned(), seqJ.getUnaligned()); + seqI.setAligned(alignment->getSeqAAln()); + seqJ.setAligned(alignment->getSeqBAln()); - distCalculator->calcDist(*seqI, *seqJ); + distCalculator->calcDist(seqI, seqJ); double dist = distCalculator->getDist(); - delete seqI; delete seqJ; - if(dist <= cutoff){ if (output == "column") { outFile << alignDB.get(i).getName() << ' ' << alignDB.get(j).getName() << ' ' << dist << endl; } } @@ -673,15 +672,15 @@ int PairwiseSeqsCommand::driver(int startLine, int endLine, string dFileName, st alignment->resize(alignDB.get(j).getUnaligned().length()+1); } - Sequence* seqI = new Sequence(alignDB.get(i).getName(), alignDB.get(i).getAligned()); - Sequence* seqJ = new Sequence(alignDB.get(j).getName(), alignDB.get(j).getAligned()); + Sequence seqI(alignDB.get(i).getName(), alignDB.get(i).getAligned()); + Sequence seqJ(alignDB.get(j).getName(), alignDB.get(j).getAligned()); - Nast(alignment, seqI, seqJ); + alignment->align(seqI.getUnaligned(), seqJ.getUnaligned()); + seqI.setAligned(alignment->getSeqAAln()); + seqJ.setAligned(alignment->getSeqBAln()); - distCalculator->calcDist(*seqI, *seqJ); + distCalculator->calcDist(seqI, seqJ); double dist = distCalculator->getDist(); - - delete seqI; delete seqJ; outFile << dist << '\t'; } @@ -728,16 +727,16 @@ int PairwiseSeqsCommand::driverMPI(int startLine, int endLine, MPI_File& outMPI, alignment->resize(alignDB.get(j).getUnaligned().length()+1); } - Sequence* seqI = new Sequence(alignDB.get(i).getName(), alignDB.get(i).getAligned()); - Sequence* seqJ = new Sequence(alignDB.get(j).getName(), alignDB.get(j).getAligned()); + Sequence seqI(alignDB.get(i).getName(), alignDB.get(i).getAligned()); + Sequence seqJ(alignDB.get(j).getName(), alignDB.get(j).getAligned()); - Nast(alignment, seqI, seqJ); + alignment->align(seqI.getUnaligned(), seqJ.getUnaligned()); + seqI.setAligned(alignment->getSeqAAln()); + seqJ.setAligned(alignment->getSeqBAln()); - distCalculator->calcDist(*seqI, *seqJ); + distCalculator->calcDist(seqI, seqJ); double dist = distCalculator->getDist(); - delete seqI; delete seqJ; - if(dist <= cutoff){ outputString += (alignDB.get(i).getName() + ' ' + alignDB.get(j).getName() + ' ' + toString(dist) + '\n'); } @@ -809,16 +808,16 @@ int PairwiseSeqsCommand::driverMPI(int startLine, int endLine, string file, unsi alignment->resize(alignDB.get(j).getUnaligned().length()+1); } - Sequence* seqI = new Sequence(alignDB.get(i).getName(), alignDB.get(i).getAligned()); - Sequence* seqJ = new Sequence(alignDB.get(j).getName(), alignDB.get(j).getAligned()); + Sequence seqI(alignDB.get(i).getName(), alignDB.get(i).getAligned()); + Sequence seqJ(alignDB.get(j).getName(), alignDB.get(j).getAligned()); - Nast(alignment, seqI, seqJ); + alignment->align(seqI.getUnaligned(), seqJ.getUnaligned()); + seqI.setAligned(alignment->getSeqAAln()); + seqJ.setAligned(alignment->getSeqBAln()); - distCalculator->calcDist(*seqI, *seqJ); + distCalculator->calcDist(seqI, seqJ); double dist = distCalculator->getDist(); - delete seqI; delete seqJ; - outputString += toString(dist) + "\t"; } @@ -885,16 +884,16 @@ int PairwiseSeqsCommand::driverMPI(int startLine, int endLine, string file, unsi alignment->resize(alignDB.get(j).getUnaligned().length()+1); } - Sequence* seqI = new Sequence(alignDB.get(i).getName(), alignDB.get(i).getAligned()); - Sequence* seqJ = new Sequence(alignDB.get(j).getName(), alignDB.get(j).getAligned()); + Sequence seqI(alignDB.get(i).getName(), alignDB.get(i).getAligned()); + Sequence seqJ(alignDB.get(j).getName(), alignDB.get(j).getAligned()); - Nast(alignment, seqI, seqJ); + alignment->align(seqI.getUnaligned(), seqJ.getUnaligned()); + seqI.setAligned(alignment->getSeqAAln()); + seqJ.setAligned(alignment->getSeqBAln()); - distCalculator->calcDist(*seqI, *seqJ); + distCalculator->calcDist(seqI, seqJ); double dist = distCalculator->getDist(); - delete seqI; delete seqJ; - outputString += toString(dist) + "\t"; } diff --git a/removelineagecommand.cpp b/removelineagecommand.cpp index 893b210..ef1e77e 100644 --- a/removelineagecommand.cpp +++ b/removelineagecommand.cpp @@ -556,7 +556,7 @@ int RemoveLineageCommand::readTax(){ bool wroteSomething = false; bool taxonsHasConfidence = false; - vector< map > searchTaxons; + vector< map > searchTaxons; string noConfidenceTaxons = taxons; int hasConPos = taxons.find_first_of('('); if (hasConPos != string::npos) { @@ -618,7 +618,7 @@ int RemoveLineageCommand::readTax(){ if (pos != string::npos) { //if yes, then are the confidences okay bool remove = false; - vector< map > usersTaxon = getTaxons(newtax); + vector< map > usersTaxon = getTaxons(newtax); //the usersTaxon is most likely longer than the searchTaxons, and searchTaxon[0] may relate to userTaxon[4] //we want to "line them up", so we will find the the index where the searchstring starts @@ -686,10 +686,10 @@ int RemoveLineageCommand::readTax(){ } } /**************************************************************************************************/ -vector< map > RemoveLineageCommand::getTaxons(string tax) { +vector< map > RemoveLineageCommand::getTaxons(string tax) { try { - vector< map > t; + vector< map > t; string taxon = ""; int taxLength = tax.length(); for(int i=0;i > RemoveLineageCommand::getTaxons(string tax) { newtaxon = taxon; confidence = "0"; } - int con = 0; + float con = 0; convert(confidence, con); - map temp; + map temp; temp[newtaxon] = con; t.push_back(temp); diff --git a/removelineagecommand.h b/removelineagecommand.h index 60712c9..02a4440 100644 --- a/removelineagecommand.h +++ b/removelineagecommand.h @@ -40,7 +40,7 @@ class RemoveLineageCommand : public Command { int readList(); int readTax(); string removeConfidences(string); - vector< map > getTaxons(string); + vector< map > getTaxons(string); }; #endif -- 2.39.2