]> git.donarmstrong.com Git - mothur.git/commitdiff
fixed get.lienage and remove.lineage bug with confidence scores that are floats....
authorwestcott <westcott>
Mon, 21 Mar 2011 11:08:28 +0000 (11:08 +0000)
committerwestcott <westcott>
Mon, 21 Mar 2011 11:08:28 +0000 (11:08 +0000)
getlineagecommand.cpp
getlineagecommand.h
pairwiseseqscommand.cpp
removelineagecommand.cpp
removelineagecommand.h

index 5a30e1e2e3495e6a9e2c69c06c11d45c83baec5f..2a5505f149241c88b0591f1622a50d6a2fc89577 100644 (file)
@@ -571,7 +571,7 @@ int GetLineageCommand::readTax(){
                //bool wroteSomething = false;
                
                bool taxonsHasConfidence = false;
-               vector< map<string, int> > searchTaxons;
+               vector< map<string, float> > 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<string, int> > usersTaxon = getTaxons(newtax);
+                                               vector< map<string, float> > 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<string, int> > GetLineageCommand::getTaxons(string tax) {
+vector< map<string, float> > GetLineageCommand::getTaxons(string tax) {
        try {
                
-               vector< map<string, int> > t;
+               vector< map<string, float> > t;
                string taxon = "";
                int taxLength = tax.length();
                for(int i=0;i<taxLength;i++){
@@ -711,10 +711,10 @@ vector< map<string, int> > GetLineageCommand::getTaxons(string tax) {
                                        newtaxon = taxon;
                                        confidence = "0";
                                } 
-                               int con = 0;
+                               float con = 0;
                                convert(confidence, con);
                                
-                               map<string, int> temp;
+                               map<string, float> temp;
                                temp[newtaxon] = con;
                                t.push_back(temp);
                                
index 45b51a89398af8fbd3551560ae425b28520706b6..5b7c43ed65808f7038b3c46cb96f3b7a32b8849a 100644 (file)
@@ -40,7 +40,7 @@ class GetLineageCommand : public Command {
                int readList();
                int readTax();  
                string removeConfidences(string);
-               vector< map<string, int> > getTaxons(string);
+               vector< map<string, float> > getTaxons(string);
 };
 
 #endif
index e3f8852203b21640567a725aa10af3d68eb6fbef..1e7a3388ce4780d369142385cc0b7bf15e96fae9 100644 (file)
@@ -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"; 
                        }
                        
index 893b2100cc60aeb26806a6b47620d3aca468f72d..ef1e77e01755f57acbaa4581c36a3e66d376c198 100644 (file)
@@ -556,7 +556,7 @@ int RemoveLineageCommand::readTax(){
                bool wroteSomething = false;
                
                bool taxonsHasConfidence = false;
-               vector< map<string, int> > searchTaxons;
+               vector< map<string, float> > 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<string, int> > usersTaxon = getTaxons(newtax);
+                                               vector< map<string, float> > 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<string, int> > RemoveLineageCommand::getTaxons(string tax) {
+vector< map<string, float> > RemoveLineageCommand::getTaxons(string tax) {
        try {
                
-               vector< map<string, int> > t;
+               vector< map<string, float> > t;
                string taxon = "";
                int taxLength = tax.length();
                for(int i=0;i<taxLength;i++){
@@ -706,10 +706,10 @@ vector< map<string, int> > RemoveLineageCommand::getTaxons(string tax) {
                                        newtaxon = taxon;
                                        confidence = "0";
                                }
-                               int con = 0;
+                               float con = 0;
                                convert(confidence, con);
                                
-                               map<string, int> temp;
+                               map<string, float> temp;
                                temp[newtaxon] = con;
                                t.push_back(temp);
                                
index 60712c95e8455e020e9fc77a0a851d41c36f06c4..02a4440e79ec4a7e996b58a7b9209b30cc933dcd 100644 (file)
@@ -40,7 +40,7 @@ class RemoveLineageCommand : public Command {
                int readList();
                int readTax();  
                string removeConfidences(string);
-               vector< map<string, int> > getTaxons(string);
+               vector< map<string, float> > getTaxons(string);
 };
 
 #endif