#include "removeseqscommand.h"
#include "sequence.hpp"
#include "listvector.hpp"
+#include "counttable.h"
//**********************************************************************************************************************
vector<string> RemoveSeqsCommand::setParameters(){
else if (type == "list") { outputFileName = "pick" + m->getExtension(inputName); }
else if (type == "qfile") { outputFileName = "pick" + m->getExtension(inputName); }
else if (type == "alignreport") { outputFileName = "pick.align.report"; }
- else if (type == "count") { outputFileName = "pick.count.table"; }
+ else if (type == "count") { outputFileName = "pick.count_table"; }
else { m->mothurOut("[ERROR]: No definition for type " + type + " output file tag.\n"); m->control_pressed = true; }
}
return outputFileName;
if (m->control_pressed) { in.close(); out.close(); m->mothurRemove(outputFileName); return 0; }
Sequence currSeq(in);
+
+ if (!dups) {//adjust name if needed
+ map<string, string>::iterator it = uniqueMap.find(currSeq.getName());
+ if (it != uniqueMap.end()) { currSeq.setName(it->second); }
+ }
+
name = currSeq.getName();
if (name != "") {
if (names.count(name) == 0) {
wroteSomething = true;
- currSeq.printSequence(out);
+ currSeq.printSequence(out);
}else { removedCount++; }
}
m->gobble(in);
m->gobble(in);
+ if (!dups) {//adjust name if needed
+ map<string, string>::iterator it = uniqueMap.find(saveName);
+ if (it != uniqueMap.end()) { name = ">" + it->second; saveName = it->second; }
+ }
+
if (names.count(saveName) == 0) {
wroteSomething = true;
}
in.close();
out.close();
+
+ //check for groups that have been eliminated
+ CountTable ct;
+ if (ct.testGroups(outputFileName)) {
+ ct.readTable(outputFileName);
+ ct.printTable(outputFileName);
+ }
+
if (wroteSomething == false) { m->mothurOut("Your file contains only sequences from the .accnos file."); m->mothurOutEndLine(); }
outputTypes["count"].push_back(outputFileName); outputNames.push_back(outputFileName);
wroteSomething = true;
out << validSecond[0] << '\t';
+ //we are changing the unique name in the fasta file
+ uniqueMap[firstCol] = validSecond[0];
//you know you have at least one valid second since first column is valid
for (int i = 0; i < validSecond.size()-1; i++) { out << validSecond[i] << ','; }
in >> name; //read from first column
in >> tax; //read from second column
+ if (!dups) {//adjust name if needed
+ map<string, string>::iterator it = uniqueMap.find(name);
+ if (it != uniqueMap.end()) { name = it->second; }
+ }
+
//if this name is in the accnos file
if (names.count(name) == 0) {
wroteSomething = true;
+
out << name << '\t' << tax << endl;
}else { removedCount++; }
if (m->control_pressed) { in.close(); out.close(); m->mothurRemove(outputFileName); return 0; }
in >> name; //read from first column
+
+ if (!dups) {//adjust name if needed
+ map<string, string>::iterator it = uniqueMap.find(name);
+ if (it != uniqueMap.end()) { name = it->second; }
+ }
//if this name is in the accnos file
if (names.count(name) == 0) {