//********************************************************************************************************************
//sorts lowest to highest
inline bool compareBin(repStruct left, repStruct right){
- return (left.bin < right.bin);
+ return (left.simpleBin < right.simpleBin);
}
//********************************************************************************************************************
//sorts lowest to highest
else if (countfile == "not open") { abort = true; countfile = ""; }
else {
m->setCountTableFile(countfile);
- ct.readTable(countfile);
+ ct.readTable(countfile, true, false);
if (ct.hasGroupInfo()) { hasGroups = true; }
}
-
+ groupfile = validParameter.validFile(parameters, "group", true);
+ if (groupfile == "not open") { groupfile = ""; abort = true; }
+ else if (groupfile == "not found") { groupfile = ""; }
+ else { m->setGroupFile(groupfile); }
+
method = validParameter.validFile(parameters, "method", false); if (method == "not found"){ method = "distance"; }
if ((method != "distance") && (method != "abundance")) {
m->mothurOut(method + " is not a valid option for the method parameter. The only options are: distance and abundance, aborting."); m->mothurOutEndLine(); abort = true;
else { allLines = 1; }
}
- groupfile = validParameter.validFile(parameters, "group", true);
- if (groupfile == "not open") { groupfile = ""; abort = true; }
- else if (groupfile == "not found") { groupfile = ""; }
- else { m->setGroupFile(groupfile); }
-
+
sorted = validParameter.validFile(parameters, "sorted", false); if (sorted == "not found"){ sorted = ""; }
if (sorted == "none") { sorted=""; }
if ((sorted != "") && (sorted != "name") && (sorted != "bin") && (sorted != "size") && (sorted != "group")) {
try{
vector<string> reps;
string rep = "notFound";
+
+ if (m->debug) { m->mothurOut("[DEBUG]: group=" + group + " names.size() = " + toString(names.size()) + " " + names[0] + "\n"); }
if ((names.size() == 1)) {
return names[0];
if (countfile != "") { //if countfile is not blank then we can assume the list file contains only uniques, otherwise we assume list file contains everyone.
int numRep = 0;
if (group != "") { numRep = ct.getGroupCount(names[i], group); }
- else { numRep = ct.getGroupCount(names[i]); }
+ else { numRep = ct.getNumSeqs(names[i]); }
if (numRep > maxAbund) {
reps.clear();
reps.push_back(names[i]);
if (countfile != "") { //if countfile is not blank then we can assume the list file contains only uniques, otherwise we assume list file contains everyone.
int numRep = 0;
if (group != "") { numRep = ct.getGroupCount(names[i], group); }
- else { numRep = ct.getGroupCount(names[i]); }
+ else { numRep = ct.getNumSeqs(names[i]); }
for (int j = 1; j < numRep; j++) { //don't add yourself again
seqIndex.push_back(nameToIndex[names[i]]);
}
}
//for each bin in the list vector
+ vector<string> binLabels = processList->getLabels();
for (int i = 0; i < processList->size(); i++) {
if (m->control_pressed) {
out.close();
if (Groups.size() == 0) {
nameRep = findRep(namesInBin, "");
- newNamesOutput << i << '\t' << nameRep << '\t';
+ newNamesOutput << binLabels[i] << '\t' << nameRep << '\t';
//put rep at first position in names line
string outputString = nameRep + ",";
nameRep = findRep(NamesInGroup[Groups[j]], Groups[j]);
//output group rep and other members of this group
- (*(filehandles[Groups[j]])) << i << '\t' << nameRep << '\t';
+ (*(filehandles[Groups[j]])) << binLabels[i] << '\t' << nameRep << '\t';
//put rep at first position in names line
string outputString = nameRep + ",";
ifstream in;
m->openInputFile(filename, in);
- int i = 0;
string tempGroup = "";
in >> tempGroup; m->gobble(in);
CountTable thisCt;
if (countfile != "") {
- thisCt.readTable(countfile);
+ thisCt.readTable(countfile, true, false);
if (tempGroup != "noGroup") { out2 << "Representative_Sequence\ttotal\t" << tempGroup << endl; }
}
int thistotal = 0;
while (!in.eof()) {
- string rep, binnames;
- in >> i >> rep >> binnames; m->gobble(in);
+ string rep, binnames, binLabel;
+ in >> binLabel >> rep >> binnames; m->gobble(in);
vector<string> names;
m->splitAtComma(binnames, names);
if (sequence != "not found") {
if (sorted == "") { //print them out
- rep = rep + "\t" + toString(i+1);
+ rep = rep + "\t" + binLabel;
rep = rep + "|" + toString(binsize);
if (group != "") {
rep = rep + "|" + group;
out << ">" << rep << endl;
out << sequence << endl;
}else { //save them
- repStruct newRep(rep, i+1, binsize, group);
+ int simpleLabel;
+ m->mothurConvert(m->getSimpleLabel(binLabel), simpleLabel);
+ repStruct newRep(rep, binLabel, simpleLabel, binsize, group);
reps.push_back(newRep);
}
}else {
//print them
for (int i = 0; i < reps.size(); i++) {
string sequence = fasta->getSequence(reps[i].name);
- string outputName = reps[i].name + "\t" + toString(reps[i].bin);
+ string outputName = reps[i].name + "\t" + reps[i].bin;
outputName = outputName + "|" + toString(reps[i].size);
if (reps[i].group != "") {
outputName = outputName + "|" + reps[i].group;
ifstream in;
m->openInputFile(filename, in);
- int i = 0;
string rep, binnames;
string tempGroup = "";
CountTable thisCt;
if (countfile != "") {
- thisCt.readTable(countfile);
+ thisCt.readTable(countfile, true, false);
if (tempGroup != "noGroup") { out2 << "Representative_Sequence\ttotal\t" << tempGroup << endl; }
}
while (!in.eof()) {
if (m->control_pressed) { break; }
- in >> i >> rep >> binnames; m->gobble(in);
+ string binLabel;
+ in >> binLabel >> rep >> binnames; m->gobble(in);
if (countfile == "") { out2 << rep << '\t' << binnames << endl; }
else {