m->gobble(fileHandle);
}
fileHandle.close();
+ m->setAllGroups(namesOfGroups);
return error;
}
/************************************************************/
m->gobble(fileHandle);
}
fileHandle.close();
+ m->setAllGroups(namesOfGroups);
return error;
}
/************************************************************/
void GroupMap::setGroup(string sequenceName, string groupN) {
- groupmap[sequenceName] = groupN;
+ setNamesOfGroups(groupN);
+
+ it = groupmap.find(sequenceName);
+
+ if (it != groupmap.end()) { m->mothurOut("Your groupfile contains more than 1 sequence named " + sequenceName + ", sequence names must be unique. Please correct."); m->mothurOutEndLine(); }
+ else {
+ groupmap[sequenceName] = groupN; //store data in map
+ seqsPerGroup[groupN]++; //increment number of seqs in that group
+ }
}
/************************************************************/
}
}
/************************************************************/
+vector<string> GroupMap::getNamesSeqs(vector<string> picked){
+ try {
+
+ vector<string> names;
+
+ for (it = groupmap.begin(); it != groupmap.end(); it++) {
+ //if you are belong to one the the groups in the picked vector add you
+ if (m->inUsersGroups(it->second, picked)) {
+ names.push_back(it->first);
+ }
+ }
+
+ return names;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "GroupMap", "getNamesSeqs");
+ exit(1);
+ }
+}
+
+/************************************************************/