globaldata = GlobalData::getInstance();
validCommand = new ValidCommands();
validParameter = new ValidParameters();
- validCalculator = new ValidCalculators();
}
/*******************************************************/
format = globaldata->getFormat();
method = globaldata->getMethod();
randomtree = globaldata->getRandomTree();
+ sharedfile = globaldata->getSharedFile();
}
/*******************************************************/
//reads in parameters and values
if((optionText != "") && (commandName != "help")){
while((optionText.find_first_of(',') != -1) && (errorFree)) { //while there are parameters
- globaldata->splitAtComma(value, optionText);
- globaldata->splitAtEquals(parameter, value);
+ splitAtComma(value, optionText);
+ splitAtEquals(parameter, value);
//is it a valid parameter
if (validParameter->isValidParameter(parameter) != true) { return false; }
if (parameter == "fasta" ) { fastafile = value; }
if (parameter == "tree" ) { treefile = value; }
if (parameter == "group" ) { groupfile = value; }
+ if (parameter == "shared" ) { sharedfile = value; }
if (parameter == "cutoff" ) { cutoff = value; }
if (parameter == "precision" ) { precision = value; }
if (parameter == "iters" ) { iters = value; }
if (parameter == "fileroot" ) { fileroot = value; }
if (parameter == "line" ) { line = value; }
if (parameter == "label" ) { label = value; }
- if (parameter == "randomtree" ) { randomtree = value; }
+ if (parameter == "random" ) { randomtree = value; }
- if (parameter == "single") {//stores estimators in a vector
- singleEsimators.clear(); //clears out old values
- globaldata->splitAtDash(value, singleEsimators);
- for (int i = 0; i < singleEsimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, singleEsimators[i]) != true) { return false; }
- }
- }
- if (parameter == "rarefaction") {//stores estimators in a vector
- rareEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, rareEstimators);
- for (int i = 0; i < rareEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, rareEstimators[i]) != true) { return false; }
- }
- }
- if (parameter == "shared") {//stores estimators in a vector
- sharedEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, sharedEstimators);
- for (int i = 0; i < sharedEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, sharedEstimators[i]) != true) { return false; }
- }
- }
- if (parameter == "summary") { //stores summaries to be used in a vector
- summaryEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, summaryEstimators);
- for (int i = 0; i < summaryEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, summaryEstimators[i]) != true) { return false; }
- }
- }
- if (parameter == "sharedrarefaction") { //stores summaries to be used in a vector
- sharedRareEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, sharedRareEstimators);
- for (int i = 0; i < sharedRareEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, sharedRareEstimators[i]) != true) { return false; }
- }
- }
}
//gets the last parameter and value
if (errorFree) { //gets the last parameter and value
value = optionText;
- globaldata->splitAtEquals(parameter, value);
+ splitAtEquals(parameter, value);
//is it a valid parameter
if (validParameter->isValidParameter(parameter) != true) { return false; }
if (parameter == "name" ) { namefile = value; }
if (parameter == "order" ) { orderfile = value; }
if (parameter == "group" ) { groupfile = value; }
+ if (parameter == "shared" ) { sharedfile = value; }
if (parameter == "fasta" ) { fastafile = value; }
if (parameter == "tree" ) { treefile = value; }
if (parameter == "cutoff" ) { cutoff = value; }
if (parameter == "fileroot" ) { fileroot = value; }
if (parameter == "line" ) { line = value; }
if (parameter == "label" ) { label = value; }
- if (parameter == "randomtree" ) { randomtree = value; }
-
- if (parameter == "single") {//stores estimators in a vector
- singleEsimators.clear(); //clears out old values
- globaldata->splitAtDash(value, singleEsimators);
- for (int i = 0; i < singleEsimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, singleEsimators[i]) != true) { return false; }
- }
- }
- if (parameter == "rarefaction") {//stores estimators in a vector
- rareEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, rareEstimators);
- for (int i = 0; i < rareEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, rareEstimators[i]) != true) { return false; }
- }
- }
- if (parameter == "shared") {//stores estimators in a vector
- sharedEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, sharedEstimators);
- for (int i = 0; i < sharedEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, sharedEstimators[i]) != true) { return false; }
- }
- }
- if (parameter == "summary") { //stores summaries to be used in a vector
- summaryEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, summaryEstimators);
- for (int i = 0; i < summaryEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, summaryEstimators[i]) != true) { return false; }
- }
- }
- if (parameter == "sharedrarefaction") { //stores summaries to be used in a vector
- sharedRareEstimators.clear(); //clears out old values
- globaldata->splitAtDash(value, sharedRareEstimators);
- for (int i = 0; i < sharedRareEstimators.size(); i++) { //loop through estimators
- //is it a valid calculator
- if (validCalculator->isValidCalculator(parameter, sharedRareEstimators[i]) != true) { return false; }
- }
- }
+ if (parameter == "random" ) { randomtree = value; }
}
}
//make sure the user does not use both the line and label parameters
if ((line != "") && (label != "")) { cout << "You may use either the line or label parameters, but not both." << endl; return false; }
-
if (commandName == "read.dist") {
validateReadFiles();
validateReadFiles();
validateReadPhil();
}
+ }else if (commandName == "read.shared") {
+ //you want to do shared commands with just the shared file
+ validateReadFiles();
}else if (commandName == "read.tree") {
validateTreeFiles(); //checks the treefile and groupfile parameters
}else if (commandName == "deconvolute") {
if (commandName == "parsimony") {
//are you trying to use parsimony without reading a tree or saying you want random distribution
- if (randomtree == "0") {
- if ((globaldata->getTreeFile() == "") || (globaldata->getGroupFile() == "")) {
- cout << "You must read a treefile and a groupfile or set the randomtree parameter to 1, before you may execute the parsimony command." << endl; return false; }
+ if (randomtree == "") {
+ if (globaldata->gTree.size() == 0) {
+ cout << "You must read a treefile and a groupfile or set the randomtree parameter to the output filename you wish, before you may execute the parsimony command." << endl; return false; }
}
}
}
if ((commandName == "collect.shared") || (commandName == "rarefaction.shared") || (commandName == "summary.shared") ){
- if (globaldata->getListFile() == "") { cout << "You must read a list and a group before you can use the collect.shared, rarefaction.shared or summary.shared commands." << endl; return false; }
- else if (globaldata->getGroupFile() == "") { cout << "You must read a list and a group before you can use the collect.shared, rarefaction.shared or summary.shared commands." << endl; return false; }
+ if (globaldata->getSharedFile() == "") {
+ if (globaldata->getListFile() == "") { cout << "You must read a list and a group, or a shared before you can use the collect.shared, rarefaction.shared or summary.shared commands." << endl; return false; }
+ else if (globaldata->getGroupFile() == "") { cout << "You must read a list and a group, or a shared before you can use the collect.shared, rarefaction.shared or summary.shared commands." << endl; return false; }
+ }
}
-
return errorFree;
}
//unable to open
if (ableToOpen == 1) { errorFree = false; }
else { globaldata->inputFileName = fastafile; }
+ }else if (sharedfile != "") {
+ ableToOpen = openInputFile(sharedfile, filehandle);
+ filehandle.close();
+ //unable to open
+ if (ableToOpen == 1) { errorFree = false; }
+ else { globaldata->inputFileName = sharedfile; }
}else{ //no file given
errorFree = false;
}
namefile = "";
groupfile = "";
orderfile = "";
+ sharedfile = "";
line = "";
label = "";
method = "furthest";