]> git.donarmstrong.com Git - mothur.git/blobdiff - parsimonycommand.cpp
working on chimera.perseus. made removeConfidences function smarter. Fixed bug in...
[mothur.git] / parsimonycommand.cpp
index 403b2b86d9addf1f9291e7f87fac63ef1755c002..3752935aac5ad0211c5f9bf5b66ca00dce2b366b 100644 (file)
@@ -126,8 +126,8 @@ ParsimonyCommand::ParsimonyCommand(string option)  {
                        }
                        
                        m->runParse = true;
-                       m->Groups.clear();
-                       m->namesOfGroups.clear();
+                       m->clearGroups();
+                       m->clearAllGroups();
                        m->Treenames.clear();
                        m->names.clear();
                        
@@ -144,16 +144,18 @@ ParsimonyCommand::ParsimonyCommand(string option)  {
                                        treefile = m->getTreeFile(); 
                                        if (treefile != "") { m->mothurOut("Using " + treefile + " as input file for the tree parameter."); m->mothurOutEndLine(); }
                                        else {  m->mothurOut("You have no current tree file and the tree parameter is required."); m->mothurOutEndLine(); abort = true; }                                                               
-                               }       
+                               }else { m->setTreeFile(treefile); }     
                                
                                //check for required parameters
                                groupfile = validParameter.validFile(parameters, "group", true);
                                if (groupfile == "not open") { abort = true; }
                                else if (groupfile == "not found") { groupfile = ""; }
+                               else { m->setGroupFile(groupfile); }
                                
                                namefile = validParameter.validFile(parameters, "name", true);
                                if (namefile == "not open") { abort = true; }
                                else if (namefile == "not found") { namefile = ""; }
+                               else { m->setNameFile(namefile); }
                        }
                        
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
@@ -162,10 +164,10 @@ ParsimonyCommand::ParsimonyCommand(string option)  {
                        //check for optional parameter and set defaults
                        // ...at some point should added some additional type checking...
                        groups = validParameter.validFile(parameters, "groups", false);                 
-                       if (groups == "not found") { groups = ""; m->Groups.clear(); }
+                       if (groups == "not found") { groups = ""; m->clearGroups(); }
                        else { 
                                m->splitAtDash(groups, Groups);
-                               m->Groups = Groups;
+                               m->setGroups(Groups);
                        }
                                
                        itersString = validParameter.validFile(parameters, "iters", false);                     if (itersString == "not found") { itersString = "1000"; }
@@ -217,7 +219,7 @@ int ParsimonyCommand::execute() {
                        read->AssembleTrees();
                        T = read->getTrees();
                        delete read;
-                       
+
                        //make sure all files match
                        //if you provide a namefile we will use the numNames in the namefile as long as the number of unique match the tree names size.
                        int numNamesInTree;
@@ -239,8 +241,8 @@ int ParsimonyCommand::execute() {
                                        
                                        if (m->control_pressed) { 
                                                delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; }
-                                               for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
-                                               m->Groups.clear();
+                                               for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
+                                               m->clearGroups();
                                                return 0;
                                        }
                                        
@@ -278,8 +280,11 @@ int ParsimonyCommand::execute() {
                        
                //set users groups to analyze
                util = new SharedUtil();
-               util->setGroups(m->Groups, tmap->namesOfGroups, allGroups, numGroups, "parsimony");     //sets the groups the user wants to analyze
-               util->getCombos(groupComb, m->Groups, numComp);
+               vector<string> mGroups = m->getGroups();
+               vector<string> tGroups = tmap->getNamesOfGroups();
+               util->setGroups(mGroups, tGroups, allGroups, numGroups, "parsimony");   //sets the groups the user wants to analyze
+               util->getCombos(groupComb, mGroups, numComp);
+               m->setGroups(mGroups);
                delete util;
                        
                if (numGroups == 1) { numComp++; groupComb.push_back(allGroups); }
@@ -294,8 +299,8 @@ int ParsimonyCommand::execute() {
                        delete reading; delete pars; delete output;
                        delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; }
                        if (randomtree == "") {  outSum.close();  }
-                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
-                       m->Groups.clear();
+                       for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
+                       m->clearGroups();
                        return 0;
                }
                        
@@ -319,8 +324,8 @@ int ParsimonyCommand::execute() {
                                        delete reading; delete pars; delete output;
                                        delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; }
                                        if (randomtree == "") {  outSum.close();  }
-                                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
-                                       m->Groups.clear();
+                                       for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
+                                       m->clearGroups();
                                        return 0;
                                }
 
@@ -357,9 +362,9 @@ int ParsimonyCommand::execute() {
                                if (m->control_pressed) { 
                                        delete reading; delete pars; delete output; delete randT;
                                        if (randomtree == "") {  outSum.close();  }
-                                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
+                                       for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
                                        delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; }
-                                       m->Groups.clear();
+                                       m->clearGroups();
                                        return 0;
                                }
                                        
@@ -395,8 +400,8 @@ int ParsimonyCommand::execute() {
                                if (m->control_pressed) { 
                                        delete reading; delete pars; delete output; delete randT;
                                        delete tmap; 
-                                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
-                                       m->Groups.clear();
+                                       for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
+                                       m->clearGroups();
                                        return 0;
                                }
 
@@ -407,8 +412,8 @@ int ParsimonyCommand::execute() {
                                if (m->control_pressed) { 
                                        delete reading; delete pars;  delete output; delete randT;
                                        delete tmap; 
-                                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
-                                       m->Groups.clear();
+                                       for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
+                                       m->clearGroups();
                                        return 0;
                                }
                        
@@ -464,8 +469,8 @@ int ParsimonyCommand::execute() {
                                delete reading; delete pars; delete output;
                                delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; }
                                if (randomtree == "") {  outSum.close();  }
-                               for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str()); } outputTypes.clear();
-                               m->Groups.clear();
+                               for (int i = 0; i < outputNames.size(); i++) {  m->mothurRemove(outputNames[i]); } outputTypes.clear();
+                               m->clearGroups();
                                return 0;
                }
                
@@ -478,12 +483,12 @@ int ParsimonyCommand::execute() {
                if (randomtree == "") { printUSummaryFile(); }
                
                //reset groups parameter
-               m->Groups.clear(); 
+               m->clearGroups(); 
                
                delete pars; delete output; 
                delete tmap; for (int i = 0; i < T.size(); i++) { delete T[i]; }
                
-               if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        remove(outputNames[i].c_str()); } outputTypes.clear(); return 0;}
+               if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) {        m->mothurRemove(outputNames[i]); } outputTypes.clear(); return 0;}
                
                m->mothurOutEndLine();
                m->mothurOut("Output File Names: "); m->mothurOutEndLine();
@@ -583,6 +588,7 @@ void ParsimonyCommand::getUserInput() {
                count = 1;
                numEachGroup.resize(numGroups, 0);  
                
+               
                for (int i = 1; i <= numGroups; i++) {
                        m->mothurOut("Please enter the number of sequences in group " + toString(i) +  ": ");
                        cin >> num;
@@ -590,7 +596,7 @@ void ParsimonyCommand::getUserInput() {
                                
                        //set tmaps seqsPerGroup
                        tmap->seqsPerGroup[toString(i)] = num;
-                       tmap->namesOfGroups.push_back(toString(i));
+                       tmap->addGroup(toString(i));
                        
                        //set tmaps namesOfSeqs
                        for (int j = 0; j < num; j++) {