]> git.donarmstrong.com Git - mothur.git/blobdiff - classifyseqscommand.cpp
fixed an mpi bug in shhh.seqs
[mothur.git] / classifyseqscommand.cpp
index 2d3838774afe52a382c52426e6db4243ebd64c87..2dfe05a05f9e267390c7e7656dee12d0ee1ab169 100644 (file)
@@ -30,8 +30,7 @@ vector<string> ClassifySeqsCommand::getValidParameters(){
 //**********************************************************************************************************************
 ClassifySeqsCommand::ClassifySeqsCommand(){    
        try {
-               abort = true;
-               //initialize outputTypes
+               abort = true; calledHelp = true; 
                vector<string> tempOutNames;
                outputTypes["taxonomy"] = tempOutNames;
                outputTypes["taxsummary"] = tempOutNames;
@@ -68,10 +67,10 @@ vector<string> ClassifySeqsCommand::getRequiredFiles(){
 //**********************************************************************************************************************
 ClassifySeqsCommand::ClassifySeqsCommand(string option)  {
        try {
-               abort = false;
+               abort = false; calledHelp = false;   
                
                //allow user to run help
-               if(option == "help") { help(); abort = true; }
+               if(option == "help") { help(); abort = true; calledHelp = true; }
                
                else {
                        
@@ -421,7 +420,7 @@ void ClassifySeqsCommand::help(){
 
 int ClassifySeqsCommand::execute(){
        try {
-               if (abort == true) {    return 0;       }
+               if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                
                if(method == "bayesian"){       classify = new Bayesian(taxonomyFileName, templateFileName, search, kmerSize, cutoff, iters);           }
                else if(method == "knn"){       classify = new Knn(taxonomyFileName, templateFileName, search, kmerSize, gapOpen, gapExtend, match, misMatch, numWanted);                               }
@@ -461,7 +460,7 @@ int ClassifySeqsCommand::execute(){
                        for (int i = 0; i < lines.size(); i++) {  delete lines[i];  }  lines.clear();
                        
 #ifdef USE_MPI 
-                               int pid, end, numSeqsPerProcessor; 
+                               int pid, numSeqsPerProcessor; 
                                int tag = 2001;
                                vector<unsigned long int> MPIPos;
                                
@@ -652,7 +651,7 @@ int ClassifySeqsCommand::execute(){
                        
                        //get maxLevel from phylotree so you know how many 'unclassified's to add
                        int maxLevel = taxaSum.getMaxLevel();
-                       
+                                                       
                        //read taxfile - this reading and rewriting is done to preserve the confidence scores.
                        string name, taxon;
                        while (!inTax.eof()) {
@@ -829,13 +828,14 @@ int ClassifySeqsCommand::driver(linePair* filePos, string taxFName, string tempT
 
                bool done = false;
                int count = 0;
-       
+               
                while (!done) {
                        if (m->control_pressed) { return 0; }
                
                        Sequence* candidateSeq = new Sequence(inFASTA); m->gobble(inFASTA);
                        
                        if (candidateSeq->getName() != "") {
+                       
                                taxonomy = classify->getTaxonomy(candidateSeq);
                                
                                if (m->control_pressed) { delete candidateSeq; return 0; }
@@ -867,7 +867,7 @@ int ClassifySeqsCommand::driver(linePair* filePos, string taxFName, string tempT
                }
                //report progress
                if((count) % 100 != 0){ m->mothurOut("Processing sequence: " + toString(count)); m->mothurOutEndLine();         }
-                               
+                       
                inFASTA.close();
                outTax.close();
                outTaxSimple.close();