+
+ mothurOut("Calculating observed, expected and de values for sequences " + toString(lines[process]->start) + " to " + toString(lines[process]->end)); mothurOutEndLine();
+ for (int i = lines[process]->start; i < lines[process]->end; i++) {
+
+ vector<float> obsi = decalc->calcObserved(querySeqs[i], bestfit[i], windowsForeachQuery[i], windowSizes[i]);
+ obsDistance[i] = obsi;
+
+ //calc Qav
+ vector<float> q = decalc->findQav(windowsForeachQuery[i], windowSizes[i], probabilityProfile);
+
+ //get alpha
+ float alpha = decalc->getCoef(obsDistance[i], q);
+
+ //find expected
+ vector<float> exp = decalc->calcExpected(q, alpha);
+ expectedDistance[i] = exp;
+
+ //get de and deviation
+ float dei = decalc->calcDE(obsi, exp);
+ DE[i] = dei;
+
+ it = trimmed[i].begin();
+ float dist = decalc->calcDist(querySeqs[i], bestfit[i], it->first, it->second);
+ deviation[i] = dist;
+ }
+ mothurOut("Done calculating observed, expected and de values for sequences " + toString(lines[process]->start) + " to " + toString(lines[process]->end)); mothurOutEndLine();
+
+ //write out data to file so parent can read it
+ ofstream out;
+ string s = toString(getpid()) + ".temp";
+ openOutputFile(s, out);
+
+ int size = lines[process]->end - lines[process]->start;
+ out << size << endl;
+
+ //output observed distances
+ for (int i = lines[process]->start; i < lines[process]->end; i++) {
+ out << obsDistance[i].size() << '\t';
+ for (int j = 0; j < obsDistance[i].size(); j++) {
+ out << obsDistance[i][j] << '\t';
+ }
+ out << endl;
+ }
+
+
+ //output expected distances
+ for (int i = lines[process]->start; i < lines[process]->end; i++) {
+ out << expectedDistance[i].size() << '\t';
+ for (int j = 0; j < expectedDistance[i].size(); j++) {
+ out << expectedDistance[i][j] << '\t';
+ }
+ out << endl;
+ }
+
+
+ //output de values
+ for (int i = lines[process]->start; i < lines[process]->end; i++) {
+ out << DE[i] << '\t';
+ }
+ out << endl;
+
+ //output de values
+ for (int i = lines[process]->start; i < lines[process]->end; i++) {
+ out << deviation[i] << '\t';
+ }
+ out << endl;
+
+ out.close();
+