]> git.donarmstrong.com Git - mothur.git/blobdiff - getoturepcommand.cpp
added mantel command
[mothur.git] / getoturepcommand.cpp
index 818775fdd7e24678545750fcfad6596efdd666e6..84d3871c3d74026c8d92af7e5b66dfa03ebcba21 100644 (file)
@@ -38,8 +38,7 @@ inline bool compareGroup(repStruct left, repStruct right){
 //**********************************************************************************************************************
 GetOTURepCommand::GetOTURepCommand(){  
        try {
-               abort = true;
-               //initialize outputTypes
+               abort = true; calledHelp = true; 
                vector<string> tempOutNames;
                outputTypes["fasta"] = tempOutNames;
                outputTypes["name"] = tempOutNames;
@@ -88,13 +87,13 @@ vector<string> GetOTURepCommand::getRequiredFiles(){
 GetOTURepCommand::GetOTURepCommand(string option)  {
        try{
                globaldata = GlobalData::getInstance();
-               abort = false;
+               abort = false; calledHelp = false;   
                allLines = 1;
                labels.clear();
                                
                //allow user to run help
                if (option == "help") { 
-                       help(); abort = true;
+                       help(); abort = true; calledHelp = true;
                } else {
                        //valid paramters for this command
                        string Array[] =  {"fasta","list","label","name","weighted", "group", "sorted", "phylip","column","large","cutoff","precision","groups","outputdir","inputdir"};
@@ -299,7 +298,7 @@ GetOTURepCommand::~GetOTURepCommand(){}
 int GetOTURepCommand::execute(){
        try {
        
-               if (abort == true) { return 0; }
+               if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                int error;
                
                if (!large) {
@@ -437,7 +436,7 @@ int GetOTURepCommand::execute(){
                        delete read; delete input; delete list; globaldata->gListVector = NULL; return 0; 
                }
                
-               if (!weighted) { readNamesFile(weighted); }
+               if ((!weighted) && (namefile != "")) { readNamesFile(weighted); }
                
                while((list != NULL) && ((allLines == 1) || (userLabels.size() != 0))) {
                        
@@ -560,14 +559,15 @@ int GetOTURepCommand::execute(){
 //**********************************************************************************************************************
 void GetOTURepCommand::readNamesFile() {
        try {
+               ifstream in;
                vector<string> dupNames;
-               m->openInputFile(namefile, inNames);
+               m->openInputFile(namefile, in);
                
                string name, names, sequence;
        
-               while(inNames){
-                       inNames >> name;                        //read from first column  A
-                       inNames >> names;               //read from second column  A,B,C,D
+               while(!in.eof()){
+                       in >> name;                     //read from first column  A
+                       in >> names;            //read from second column  A,B,C,D
                        
                        dupNames.clear();
                        
@@ -580,9 +580,9 @@ void GetOTURepCommand::readNamesFile() {
                                fasta->push_back(dupNames[i], sequence);
                        }
                
-                       m->gobble(inNames);
+                       m->gobble(in);
                }
-               inNames.close();
+               in.close();
 
        }
        catch(exception& e) {
@@ -594,14 +594,15 @@ void GetOTURepCommand::readNamesFile() {
 //read names file to find the weighted rep for each bin
 void GetOTURepCommand::readNamesFile(bool w) {
        try {
+               ifstream in;
                vector<string> dupNames;
-               m->openInputFile(namefile, inNames);
+               m->openInputFile(namefile, in);
                
                string name, names, sequence;
                
-               while(inNames){
-                       inNames >> name;        m->gobble(inNames);             //read from first column  A
-                       inNames >> names;                                                       //read from second column  A,B,C,D
+               while(!in.eof()){
+                       in >> name;     m->gobble(in);          //read from first column  A
+                       in >> names;                                                    //read from second column  A,B,C,D
                        
                        dupNames.clear();
                        
@@ -612,9 +613,9 @@ void GetOTURepCommand::readNamesFile(bool w) {
                                nameFileMap[dupNames[i]] = name;
                        }
                        
-                       m->gobble(inNames);
+                       m->gobble(in);
                }
-               inNames.close();
+               in.close();
                
        }
        catch(exception& e) {