- int i, count;
- count = 0;
- for (i=0; i<namesOfGroups.size(); i++) {
- if (namesOfGroups[i] != seqGroup) {
- count++; //you have not found this group
- }else {
- break; //you already have it
- }
- }
- if (count == namesOfGroups.size()) {
- namesOfGroups.push_back(seqGroup); //new group
- groupIndex[seqGroup] = index;
- index++;
+ int i, count;
+ count = 0;
+ for (i=0; i<namesOfGroups.size(); i++) {
+ if (namesOfGroups[i] != seqGroup) {
+ count++; //you have not found this group
+ }else {
+ break; //you already have it
+ }
+ }
+ if (count == namesOfGroups.size()) {
+ namesOfGroups.push_back(seqGroup); //new group
+ seqsPerGroup[seqGroup] = 0;
+ groupIndex[seqGroup] = index;
+ index++;
+ }
+}
+/************************************************************/
+bool GroupMap::isValidGroup(string groupname) {
+ try {
+ for (int i = 0; i < namesOfGroups.size(); i++) {
+ if (groupname == namesOfGroups[i]) { return true; }
+ }
+
+ return false;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "GroupMap", "isValidGroup");
+ exit(1);
+ }
+}
+/************************************************************/
+int GroupMap::getNumSeqs(string group) {
+ try {
+
+ map<string, int>::iterator itNum;
+
+ itNum = seqsPerGroup.find(group);
+
+ if (itNum == seqsPerGroup.end()) { return 0; }
+
+ return seqsPerGroup[group];
+
+ }
+ catch(exception& e) {
+ m->errorOut(e, "GroupMap", "getNumSeqs");
+ exit(1);
+ }
+}
+
+/************************************************************/
+vector<string> GroupMap::getNamesSeqs(){
+ try {
+
+ vector<string> names;
+
+ for (it = groupmap.begin(); it != groupmap.end(); it++) {
+ names.push_back(it->first);
+ }
+
+ return names;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "GroupMap", "getNamesSeqs");
+ exit(1);
+ }
+}
+/************************************************************/
+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);