X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sharedlistvector.cpp;fp=sharedlistvector.cpp;h=4303cfde13d3c4250c8f952c7a6eeb4bd9a2553d;hb=4ba6188707e67c638ea5ee3c787d5d07ccd07e3e;hp=6cac9b1d9512a16d15eef553d351de0b16771b6e;hpb=648ec37228eb16075ace911dd5a5773cdfe683da;p=mothur.git diff --git a/sharedlistvector.cpp b/sharedlistvector.cpp index 6cac9b1..4303cfd 100644 --- a/sharedlistvector.cpp +++ b/sharedlistvector.cpp @@ -263,10 +263,8 @@ vector SharedListVector::getSharedRAbundVector() { try { SharedUtil* util; util = new SharedUtil(); - vector lookup; - vector lookup2; - map finder; - map::iterator it; + vector lookup; //contains just the groups the user selected + map finder; //contains all groups in groupmap string group, names, name; util->setGroups(globaldata->Groups, globaldata->gGroupmap->namesOfGroups); @@ -277,10 +275,11 @@ vector SharedListVector::getSharedRAbundVector() { finder[globaldata->gGroupmap->namesOfGroups[i]] = temp; finder[globaldata->gGroupmap->namesOfGroups[i]]->setLabel(label); finder[globaldata->gGroupmap->namesOfGroups[i]]->setGroup(globaldata->gGroupmap->namesOfGroups[i]); - //*temp = getSharedRAbundVector(globaldata->Groups[i]); - lookup.push_back(finder[globaldata->gGroupmap->namesOfGroups[i]]); + if (inVector(globaldata->gGroupmap->namesOfGroups[i], globaldata->Groups)) { //if this group is in user groups + lookup.push_back(finder[globaldata->gGroupmap->namesOfGroups[i]]); + } } -//cout << "after blanks" << endl; + //fill vectors for(int i=0;i SharedListVector::getSharedRAbundVector() { name = names.substr(0,names.find_first_of(',')); names = names.substr(names.find_first_of(',')+1, names.length()); group = groupmap->getGroup(name); -//cout << i << '\t' << name << '\t' << group << endl; if(group == "not found") { mothurOut("Error: Sequence '" + name + "' was not found in the group file, please correct."); mothurOutEndLine(); exit(1); } finder[group]->set(i, finder[group]->getAbundance(i) + 1, group); //i represents what bin you are in } //get last name group = groupmap->getGroup(names); -//cout << i << '\t' << names << '\t' << group << endl; if(group == "not found") { mothurOut("Error: Sequence '" + names + "' was not found in the group file, please correct."); mothurOutEndLine(); exit(1); } finder[group]->set(i, finder[group]->getAbundance(i) + 1, group); //i represents what bin you are in } - if (globaldata->Groups.size() == globaldata->gGroupmap->namesOfGroups.size()) { //no groups specified - lookup2 = lookup; - }else{ //delete unwanted groups - for (int i = 0; i < globaldata->Groups.size(); i++) { - SharedRAbundVector* temp = new SharedRAbundVector(*finder[globaldata->Groups[i]]); - lookup2.push_back(temp); - delete finder[globaldata->Groups[i]]; //so we don't get dup memory - } - } - - return lookup2; + return lookup; } catch(exception& e) { errorOut(e, "SharedListVector", "getSharedRAbundVector");