X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=sharedordervector.cpp;h=80b8fb9bd45a8596e91afe30fdec3984b2411de6;hp=ca26362672e130364f66ed8bd005ae8fa9d68d4c;hb=499f4ac6e321f9f03d4c3aa25c3b6880892c8b83;hpb=55386dddad84cc1140d736cabaf4dd0ae16f2e01 diff --git a/sharedordervector.cpp b/sharedordervector.cpp index ca26362..80b8fb9 100644 --- a/sharedordervector.cpp +++ b/sharedordervector.cpp @@ -38,9 +38,45 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { //reads in a individual newguy; //read in first row since you know there is at least 1 group. - f >> label >> groupN >> num; + //are we at the beginning of the file?? + if (m->saveNextLabel == "") { + f >> label; + + //is this a shared file that has headers + if (label == "label") { + //gets "group" + f >> label; m->gobble(f); + + //gets "numOtus" + f >> label; m->gobble(f); + + //eat rest of line + label = m->getline(f); m->gobble(f); + + //parse labels to save + istringstream iStringStream(label); + m->sharedBinLabelsInFile.clear(); + while(!iStringStream.eof()){ + if (m->control_pressed) { break; } + string temp; + iStringStream >> temp; m->gobble(iStringStream); + + m->sharedBinLabelsInFile.push_back(temp); + } + + f >> label; + } + }else { label = m->saveNextLabel; } + + //reset labels, currentLabels may have gotten changed as otus were eliminated because of group choices or sampling + m->currentSharedBinLabels = m->sharedBinLabelsInFile; + + //read in first row since you know there is at least 1 group. + f >> groupN >> num; + holdLabel = label; + vector allGroups; //save group in groupmap allGroups.push_back(groupN); @@ -58,7 +94,7 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { //reads in a m->gobble(f); - if (f.eof() != true) { f >> nextLabel; } + if (!(f.eof())) { f >> nextLabel; } //read the rest of the groups info in while ((nextLabel == holdLabel) && (f.eof() != true)) { @@ -86,9 +122,8 @@ SharedOrderVector::SharedOrderVector(ifstream& f) : DataVector() { //reads in a } - //put file pointer back since you are now at a new distance label - for (int i = 0; i < nextLabel.length(); i++) { f.unget(); } - + m->saveNextLabel = nextLabel; + groupmap->setNamesOfGroups(allGroups); m->setAllGroups(allGroups);