//**********************************************************************************************************************
TreeGroupCommand::TreeGroupCommand(){
try {
- abort = true;
+ abort = true; calledHelp = true;
globaldata = GlobalData::getInstance();
//initialize outputTypes
vector<string> tempOutNames;
TreeGroupCommand::TreeGroupCommand(string option) {
try {
globaldata = GlobalData::getInstance();
- abort = false;
+ abort = false; calledHelp = false;
allLines = 1;
labels.clear();
Groups.clear();
Estimators.clear();
//allow user to run help
- if(option == "help") { validCalculator = new ValidCalculators(); help(); abort = true; }
+ if(option == "help") { validCalculator = new ValidCalculators(); help(); abort = true; calledHelp = true; }
else {
//valid paramters for this command
int TreeGroupCommand::execute(){
try {
- if (abort == true) { return 0; }
+ if (abort == true) { if (calledHelp) { return 0; } return 2; }
if (format == "sharedfile") {
//if the users entered no valid calculators don't execute command
//add new pair of sharedrabunds
subset.push_back(thisLookup[k]); subset.push_back(thisLookup[l]);
+ //if this calc needs all groups to calculate the pair load all groups
+ if (treeCalculators[i]->getNeedsAll()) {
+ //load subset with rest of lookup for those calcs that need everyone to calc for a pair
+ for (int w = 0; w < thisLookup.size(); w++) {
+ if ((w != k) && (w != l)) { subset.push_back(thisLookup[w]); }
+ }
+ }
+
data = treeCalculators[i]->getValues(subset); //saves the calculator outputs
//cout << thisLookup[k]->getGroup() << '\t' << thisLookup[l]->getGroup() << '\t' << (1.0 - data[0]) << endl;
if (m->control_pressed) { return 1; }