+ if (order.size() == 0) { //user has not specified an order so do aplabetically
+ sort(thislookup.begin(), thislookup.end(), compareSharedRabunds);
+
+ //initialize bin values
+ for (int i = 0; i < thislookup.size(); i++) {
+ out << thislookup[i]->getLabel() << '\t' << thislookup[i]->getGroup() << '\t';
+ thislookup[i]->print(out);
+
+ RAbundVector rav = thislookup[i]->getRAbundVector();
+ openOutputFileAppend(fileroot + thislookup[i]->getGroup() + ".rabund", *(filehandles[thislookup[i]->getGroup()]));
+ rav.print(*(filehandles[thislookup[i]->getGroup()]));
+ (*(filehandles[thislookup[i]->getGroup()])).close();
+ }
+ }else{
+ //create a map from groupName to each sharedrabund
+ map<string, SharedRAbundVector*> myMap;
+ map<string, SharedRAbundVector*>::iterator myIt;
+
+ for (int i = 0; i < thislookup.size(); i++) {
+ myMap[thislookup[i]->getGroup()] = thislookup[i];
+ }
+
+
+ //loop through ordered list and print the rabund
+ for (int i = 0; i < order.size(); i++) {
+ myIt = myMap.find(order[i]);
+
+ if(myIt != myMap.end()) { //we found it
+ out << (myIt->second)->getLabel() << '\t' << (myIt->second)->getGroup() << '\t';
+ (myIt->second)->print(out);
+
+ RAbundVector rav = (myIt->second)->getRAbundVector();
+ openOutputFileAppend(fileroot + (myIt->second)->getGroup() + ".rabund", *(filehandles[(myIt->second)->getGroup()]));
+ rav.print(*(filehandles[(myIt->second)->getGroup()]));
+ (*(filehandles[(myIt->second)->getGroup()])).close();
+ }else{
+ m->mothurOut("Can't find shared info for " + order[i] + ", skipping."); m->mothurOutEndLine();
+ }
+ }
+
+ }
+
+ }
+ catch(exception& e) {
+ m->errorOut(e, "SharedCommand", "printSharedData");
+ exit(1);
+ }
+}
+//**********************************************************************************************************************
+int SharedCommand::eliminateZeroOTUS(vector<SharedRAbundVector*>& thislookup) {
+ try {
+
+ vector<SharedRAbundVector*> newLookup;