From: westcott <westcott>
Date: Mon, 21 Mar 2011 11:08:28 +0000 (+0000)
Subject: fixed get.lienage and remove.lineage bug with confidence scores that are floats.... 
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a4f05f09c250323132a4b9427f41a3ededaec634;p=mothur.git

fixed get.lienage and remove.lineage bug with confidence scores that are floats.  fixed bug with pairwiase.seqs that was caused by using nast.
---

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<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);
 				
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<string, int> > getTaxons(string);
+		vector< map<string, float> > 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<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);
 				
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<string, int> > getTaxons(string);
+		vector< map<string, float> > getTaxons(string);
 };
 
 #endif