/***********************************************************/
int UnifracUnweightedCommand::execute() {
try {
-
+
userData.resize(numComp,0); //data[0] = unweightedscore
randomData.resize(numComp,0); //data[0] = unweightedscore
//create new tree with same num nodes and leaves as users
-
+
+ outSum << "Tree#" << '\t' << "Groups" << '\t' << "UWScore" <<'\t' << "UWSig" << endl;
+ cout << "Tree#" << '\t' << "Groups" << '\t' << "UWScore" << '\t' << "UWSig" << endl;
+
//get pscores for users trees
for (int i = 0; i < T.size(); i++) {
counter = 0;
unweightedFile = globaldata->getTreeFile() + toString(i+1) + ".unweighted";
unweightedFileout = globaldata->getTreeFile() + "temp." + toString(i+1) + ".unweighted";
- //column headers
-// outSum << "Tree# " << i+1 << endl;
- outSum << "Tree#" << '\t' << "Groups" << '\t' << "UWScore" <<'\t' << "UWSig" << endl;
-// cout << "Tree# " << i+1 << endl;
- cout << "Tree#" << '\t' << "Groups" << '\t' << "UWScore" << '\t' << "UWSig" << endl;
-
-
+ outSum << i+1 << '\t';
+ cout << i+1 << '\t';
+
//get unweighted for users tree
rscoreFreq.resize(numComp);
rCumul.resize(numComp);
for(int k = 0; k < numComp; k++) {
//saves users score
utreeScores[k].push_back(userData[k]);
+
}
//get unweighted scores for random trees
//add randoms score to validscores
validScores[randomData[k]] = randomData[k];
}
+
}
for(int a = 0; a < numComp; a++) {
UWScoreSig[a].push_back(rCumul[a][userData[a]]);
}
+
+
printUnweightedFile();
printUWSummaryFile();
outSum.setf(ios::fixed, ios::floatfield); outSum.setf(ios::showpoint);
//print each line
- for (int i = 0; i< T.size(); i++) {
- for(int a = 0; a < numComp; a++) {
- if (UWScoreSig[a][i] > (1/(float)iters)) {
- outSum << setprecision(globaldata->getIters().length()) << i+1 << '\t' << groupComb[a] << '\t' << utreeScores[a][i] << '\t' << UWScoreSig[a][i] << endl;
- cout << setprecision(globaldata->getIters().length()) << i+1 << '\t' << groupComb[a] << '\t' << utreeScores[a][i] << '\t' << UWScoreSig[a][i] << endl;
- }else {
- outSum << setprecision(globaldata->getIters().length()) << i+1 << '\t' << groupComb[a] << '\t' << utreeScores[a][i] << '\t' << "<" << (1/float(iters)) << endl;
- cout << setprecision(globaldata->getIters().length()) << i+1 << '\t' << groupComb[a] << '\t' << utreeScores[a][i] << '\t' << "<" << (1/float(iters)) << endl;
- }
+
+ for(int a = 0; a < numComp; a++) {
+ if (UWScoreSig[a][0] > (1/(float)iters)) {
+ outSum << setprecision(6) << groupComb[a] << '\t' << utreeScores[a][0] << '\t' << setprecision(globaldata->getIters().length()) << UWScoreSig[a][0] << endl;
+ cout << setprecision(6) << groupComb[a] << '\t' << utreeScores[a][0] << '\t' << setprecision(globaldata->getIters().length()) << UWScoreSig[a][0] << endl;
+ }else {
+ outSum << setprecision(6) << groupComb[a] << '\t' << utreeScores[a][0] << '\t' << setprecision(globaldata->getIters().length()) << "<" << (1/float(iters)) << endl;
+ cout << setprecision(6) << groupComb[a] << '\t' << utreeScores[a][0] << '\t' << setprecision(globaldata->getIters().length()) << "<" << (1/float(iters)) << endl;
}
}
if (globaldata->Groups.size() == 0) {
cout << "When using the groups parameter you must have at least 1 valid group. I will run the command using all the groups in your groupfile." << endl;
for (int i = 0; i < tmap->namesOfGroups.size(); i++) {
- globaldata->Groups.push_back(tmap->namesOfGroups[i]);
- numGroups++;
- allGroups += tmap->namesOfGroups[i] + "-";
+ if (tmap->namesOfGroups[i] != "xxx") {
+ globaldata->Groups.push_back(tmap->namesOfGroups[i]);
+ numGroups++;
+ allGroups += tmap->namesOfGroups[i] + "-";
+ }
}
allGroups = allGroups.substr(0, allGroups.length()-1);
}else {
}else{//user has enter "all" and wants the default groups
globaldata->Groups.clear();
for (int i = 0; i < tmap->namesOfGroups.size(); i++) {
- globaldata->Groups.push_back(tmap->namesOfGroups[i]);
- numGroups++;
- allGroups += tmap->namesOfGroups[i] + "-";
+ if (tmap->namesOfGroups[i] != "xxx") {
+ globaldata->Groups.push_back(tmap->namesOfGroups[i]);
+ numGroups++;
+ allGroups += tmap->namesOfGroups[i] + "-";
+ }
}
allGroups = allGroups.substr(0, allGroups.length()-1);
globaldata->setGroups("");
}
}else {
for (int i = 0; i < tmap->namesOfGroups.size(); i++) {
- allGroups += tmap->namesOfGroups[i] + "-";
+ if (tmap->namesOfGroups[i] != "xxx") {
+ allGroups += tmap->namesOfGroups[i] + "-";
+ }
}
allGroups = allGroups.substr(0, allGroups.length()-1);
numGroups = 1;
getline(inFile, inputBuffer);
// out << inputBuffer << setprecision(6) << '\t' << data[0] << setprecision(globaldata->getIters().length()) << '\t' << data[1] << '\t' << data[2] << endl;
- out << inputBuffer << setprecision(globaldata->getIters().length()-1) << '\t' << data[1] << '\t' << data[2] << endl;
+ out << inputBuffer << '\t' << setprecision(6) << data[0] << setprecision(globaldata->getIters().length()) << '\t' << data[1] << '\t' << data[2] << endl;
}
else{
- out << setprecision(6) << data[0] << setprecision(globaldata->getIters().length()-1) << '\t' << data[1] << '\t' << data[2] << endl;
+ out << setprecision(6) << data[0] << setprecision(globaldata->getIters().length()) << '\t' << data[1] << '\t' << data[2] << endl;
}
}