- }else {
- for (i=0; i<globaldata->Estimators.size(); i++) {
- if (validCalculator->isValidCalculator("distance", globaldata->Estimators[i]) == true) {
- if (globaldata->Estimators[i] == "nogaps") {
- distCalculator = new ignoreGaps();
- }else if (globaldata->Estimators[i] == "eachgap") {
- distCalculator = new eachGapIgnoreTermGapDist();
- }else if (globaldata->Estimators[i] == "onegap") {
- distCalculator = new oneGapIgnoreTermGapDist();
+
+ //check for optional parameter and set defaults
+ // ...at some point should added some additional type checking...
+ calc = validParameter.validFile(parameters, "calc", false);
+ if (calc == "not found") { calc = "onegap"; }
+ else {
+ if (calc == "default") { calc = "onegap"; }
+ }
+ splitAtDash(calc, Estimators);
+
+ string temp;
+ temp = validParameter.validFile(parameters, "countends", false); if(temp == "not found"){ temp = "T"; }
+ convert(temp, countends);
+
+ temp = validParameter.validFile(parameters, "cutoff", false); if(temp == "not found"){ temp = "1.0"; }
+ convert(temp, cutoff);
+
+ temp = validParameter.validFile(parameters, "processors", false); if(temp == "not found"){ temp = "1"; }
+ convert(temp, processors);
+
+ phylip = validParameter.validFile(parameters, "phylip", false); if(phylip == "not found"){ phylip = "F"; }
+
+
+ ValidCalculators validCalculator;
+
+ if (isTrue(countends) == true) {
+ for (int i=0; i<Estimators.size(); i++) {
+ if (validCalculator.isValidCalculator("distance", Estimators[i]) == true) {
+ if (Estimators[i] == "nogaps") { distCalculator = new ignoreGaps(); }
+ else if (Estimators[i] == "eachgap") { distCalculator = new eachGapDist(); }
+ else if (Estimators[i] == "onegap") { distCalculator = new oneGapDist(); }
+ }
+ }
+ }else {
+ for (int i=0; i<Estimators.size(); i++) {
+ if (validCalculator.isValidCalculator("distance", Estimators[i]) == true) {
+ if (Estimators[i] == "nogaps") { distCalculator = new ignoreGaps(); }
+ else if (Estimators[i] == "eachgap"){ distCalculator = new eachGapIgnoreTermGapDist(); }
+ else if (Estimators[i] == "onegap") { distCalculator = new oneGapIgnoreTermGapDist(); }