X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=groupmap.cpp;h=d57646e3e3dad937d3ca0fa81b26f402cfa1ad4d;hb=a8367302932de9be5434e77f6e5829d7609e2aec;hp=b627a6bda6e3fa63de073a4b3f6c20bee7a2a680;hpb=9354b70bb84f6dd52ff4a1955754bcbf7edeedbf;p=mothur.git diff --git a/groupmap.cpp b/groupmap.cpp index b627a6b..d57646e 100644 --- a/groupmap.cpp +++ b/groupmap.cpp @@ -12,6 +12,7 @@ /************************************************************/ GroupMap::GroupMap(string filename) { + m = MothurOut::getInstance(); groupFileName = filename; openInputFile(filename, fileHandle); index = 0; @@ -21,21 +22,29 @@ GroupMap::~GroupMap(){} /************************************************************/ -void GroupMap::readMap() { +int GroupMap::readMap() { string seqName, seqGroup; - + int error = 0; + while(fileHandle){ - fileHandle >> seqName; //read from first column + fileHandle >> seqName; gobble(fileHandle); //read from first column fileHandle >> seqGroup; //read from second column + if (m->control_pressed) { fileHandle.close(); return 1; } + setNamesOfGroups(seqGroup); - groupmap[seqName] = seqGroup; //store data in map - seqsPerGroup[seqGroup]++; //increment number of seqs in that group - + it = groupmap.find(seqName); + + if (it != groupmap.end()) { error = 1; m->mothurOut("Your groupfile contains more than 1 sequence named " + seqName + ", sequence names must be unique. Please correct."); m->mothurOutEndLine(); } + else { + groupmap[seqName] = seqGroup; //store data in map + seqsPerGroup[seqGroup]++; //increment number of seqs in that group + } gobble(fileHandle); } fileHandle.close(); + return error; } /************************************************************/ int GroupMap::getNumGroups() { return namesOfGroups.size(); } @@ -83,7 +92,7 @@ bool GroupMap::isValidGroup(string groupname) { return false; } catch(exception& e) { - errorOut(e, "GroupMap", "isValidGroup"); + m->errorOut(e, "GroupMap", "isValidGroup"); exit(1); } } @@ -101,7 +110,7 @@ int GroupMap::getNumSeqs(string group) { } catch(exception& e) { - errorOut(e, "GroupMap", "getNumSeqs"); + m->errorOut(e, "GroupMap", "getNumSeqs"); exit(1); } } @@ -119,7 +128,7 @@ vector GroupMap::getNamesSeqs(){ return names; } catch(exception& e) { - errorOut(e, "GroupMap", "getNamesSeqs"); + m->errorOut(e, "GroupMap", "getNamesSeqs"); exit(1); } }