]> git.donarmstrong.com Git - mothur.git/blobdiff - venncommand.cpp
Merge remote-tracking branch 'mothur/master'
[mothur.git] / venncommand.cpp
index 5a5b9b3481e6e784ed5ef7c920bff78814300431..c918500270a537ac909326f3edc10ad068dc3ac5 100644 (file)
@@ -27,6 +27,7 @@ vector<string> VennCommand::setParameters(){
                CommandParameter pcalc("calc", "String", "", "", "", "", "",false,false); parameters.push_back(pcalc);
                CommandParameter pabund("abund", "Number", "", "10", "", "", "",false,false); parameters.push_back(pabund);
                CommandParameter pnseqs("nseqs", "Boolean", "", "F", "", "", "",false,false); parameters.push_back(pnseqs);
+               CommandParameter pfontsize("fontsize", "Number", "", "24", "", "", "",false,false); parameters.push_back(pfontsize);
                CommandParameter ppermute("permute", "Boolean", "", "F", "", "", "",false,false); parameters.push_back(ppermute);
                CommandParameter pinputdir("inputdir", "String", "", "", "", "", "",false,false); parameters.push_back(pinputdir);
                CommandParameter poutputdir("outputdir", "String", "", "", "", "", "",false,false); parameters.push_back(poutputdir);
@@ -44,9 +45,10 @@ vector<string> VennCommand::setParameters(){
 string VennCommand::getHelpString(){   
        try {
                string helpString = "";
-               helpString += "The venn command parameters are list, shared, groups, calc, abund, nseqs, permute and label.   shared, relabund, list, rabund or sabund is required unless you have a valid current file.\n";
+               helpString += "The venn command parameters are list, shared, groups, calc, abund, nseqs, permute, fontsize and label.   shared, relabund, list, rabund or sabund is required unless you have a valid current file.\n";
                helpString += "The groups parameter allows you to specify which of the groups in your groupfile you would like included in your venn diagram, you may only use a maximum of 4 groups.\n";
                helpString += "The group names are separated by dashes. The label allows you to select what distance levels you would like a venn diagram created for, and are also separated by dashes.\n";
+               helpString += "The fontsize parameter allows you to adjust the font size of the picture created, default=24.\n";
                helpString += "The venn command should be in the following format: venn(groups=yourGroups, calc=yourCalcs, label=yourLabels, abund=yourAbund).\n";
                helpString += "Example venn(groups=A-B-C, calc=sharedsobs-sharedchao, abund=20).\n";
                helpString += "The default value for groups is all the groups in your groupfile up to 4, and all labels in your inputfile will be used.\n";
@@ -64,6 +66,27 @@ string VennCommand::getHelpString(){
                exit(1);
        }
 }
+//**********************************************************************************************************************
+
+string VennCommand::getOutputFileNameTag(string type, string inputName=""){    
+       try {
+        string outputFileName = "";
+               map<string, vector<string> >::iterator it;
+        
+        //is this a type this command creates
+        it = outputTypes.find(type);
+        if (it == outputTypes.end()) {  m->mothurOut("[ERROR]: this command doesn't create a " + type + " output file.\n"); }
+        else {
+            if (type == "svg")            {   outputFileName =  "svg";   }
+            else { m->mothurOut("[ERROR]: No definition for type " + type + " output file tag.\n"); m->control_pressed = true;  }
+        }
+        return outputFileName;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "VennCommand", "getOutputFileNameTag");
+               exit(1);
+       }
+}
 
 //**********************************************************************************************************************
 VennCommand::VennCommand(){    
@@ -191,13 +214,16 @@ VennCommand::VennCommand(string option)  {
                        
                        string temp;
                        temp = validParameter.validFile(parameters, "abund", false);            if (temp == "not found") { temp = "10"; }
-                       convert(temp, abund); 
+                       m->mothurConvert(temp, abund); 
                        
                        temp = validParameter.validFile(parameters, "nseqs", false);            if (temp == "not found"){       temp = "f";                             }
                        nseqs = m->isTrue(temp); 
 
-                       temp = validParameter.validFile(parameters, "permute", false);                  if (temp == "not found"){       temp = "f";                             }
+                       temp = validParameter.validFile(parameters, "permute", false);          if (temp == "not found"){       temp = "f";                             }
                        perm = m->isTrue(temp); 
+                       
+                       temp = validParameter.validFile(parameters, "fontsize", false);         if (temp == "not found") { temp = "24"; }
+                       m->mothurConvert(temp, fontsize);
 
                }
                                
@@ -224,8 +250,7 @@ int VennCommand::execute(){
                                        }else if (Estimators[i] == "chao") { 
                                                vennCalculators.push_back(new Chao1());
                                        }else if (Estimators[i] == "ace") {
-                                               if(abund < 5)
-                                                       abund = 10;
+                                               if(abund < 5) { abund = 10; }
                                                vennCalculators.push_back(new Ace(abund));
                                        }
                                }
@@ -247,7 +272,7 @@ int VennCommand::execute(){
                //if the users entered no valid calculators don't execute command
                if (vennCalculators.size() == 0) { m->mothurOut("No valid calculators given, please correct."); m->mothurOutEndLine(); return 0;  }
                
-               venn = new Venn(outputDir, nseqs, inputfile); 
+               venn = new Venn(outputDir, nseqs, inputfile, fontsize); 
                input = new InputData(inputfile, format);
                
                string lastLabel;