- out << tree[0].level << "\t" << tree[0].rank << "\t" << tree[0].name << "\t" << totalChildrenInTree << "\t" << tree[0].total << "\t";
-
-
- if (groupmap != NULL) {
- for (int i = 0; i < mGroups.size(); i++) { out << tree[0].groupCount[mGroups[i]] << '\t'; }
- }else if ( ct != NULL) {
- if (ct->hasGroupInfo()) { for (int i = 0; i < mGroups.size(); i++) { out << tree[0].groupCount[mGroups[i]] << '\t'; } }
- }
- out << endl;
+ if (relabund) {
+ out.setf(ios::fixed, ios::floatfield); out.setf(ios::showpoint);
+ out << tree[0].level << "\t" << tree[0].rank << "\t" << tree[0].name << "\t" << totalChildrenInTree << "\t" << (tree[0].total/(double) tree[0].total) << '\t';
+
+ if (groupmap != NULL) {
+ for (int i = 0; i < mGroups.size(); i++) {
+ double thisNum = tree[0].groupCount[mGroups[i]];
+ thisNum /= (double) groupmap->getNumSeqs(mGroups[i]);
+ out << thisNum << '\t';
+ }
+ }else if ( ct != NULL) {
+ if (ct->hasGroupInfo()) {
+ for (int i = 0; i < mGroups.size(); i++) {
+ double thisNum = tree[0].groupCount[mGroups[i]];
+ thisNum /= (double) ct->getGroupCount(mGroups[i]);
+ out << thisNum << '\t';
+ }
+ }
+ }
+ out << endl;
+ }else {
+ out << tree[0].level << "\t" << tree[0].rank << "\t" << tree[0].name << "\t" << totalChildrenInTree << "\t" << tree[0].total << "\t";
+ if (groupmap != NULL) {
+ for (int i = 0; i < mGroups.size(); i++) { out << tree[0].groupCount[mGroups[i]] << '\t'; }
+ }else if ( ct != NULL) {
+ if (ct->hasGroupInfo()) { for (int i = 0; i < mGroups.size(); i++) { out << tree[0].groupCount[mGroups[i]] << '\t'; } }
+ }
+ out << endl;
+ }