+++ /dev/null
-#ifndef GROUPMAP_H
-#define GROUPMAP_H
-/*
- * groupmap.h
- * Mothur
- *
- * Created by Sarah Westcott on 12/1/08.
- * Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
- *
- */
-
-#include "mothur.h"
-#include "mothurout.h"
-
-/* This class is a representation of the groupfile. It is used by all the shared commands to determine what group a
- certain sequence belongs to. */
-
-class GroupMap {
-public:
- GroupMap() {};
- GroupMap(string);
- ~GroupMap();
- int readMap();
- int readDesignMap();
- int getNumGroups();
- bool isValidGroup(string); //return true if string is a valid group
- string getGroup(string);
- void setGroup(string, string);
- vector<string> getNamesOfGroups() {
- sort(namesOfGroups.begin(), namesOfGroups.end());
- groupIndex.clear();
- for (int i = 0; i < namesOfGroups.size(); i++) { groupIndex[namesOfGroups[i]] = i; }
- return namesOfGroups;
- }
- void setNamesOfGroups(vector<string> sn) { namesOfGroups = sn; }
- map<string, int> groupIndex; //groupname, vectorIndex in namesOfGroups. - used by collectdisplays and libshuff commands.
- int getNumSeqs() { return groupmap.size(); }
- vector<string> getNamesSeqs();
- vector<string> getNamesSeqs(vector<string>); //get names of seqs belonging to a group or set of groups
- int getNumSeqs(string); //return the number of seqs in a given group
-
-private:
- vector<string> namesOfGroups;
- MothurOut* m;
- ifstream fileHandle;
- string groupFileName;
- int index;
- map<string, string>::iterator it;
- void setNamesOfGroups(string);
- map<string, string> groupmap; //sequence name and groupname
- map<string, int> seqsPerGroup; //maps groupname to number of seqs in that group
-};
-
-#endif