#include "trimoligos.h"
#include "alignment.hpp"
#include "needlemanoverlap.hpp"
+#include "counttable.h"
class PcrSeqsCommand : public Command {
public:
vector<string> setParameters();
string getCommandName() { return "pcr.seqs"; }
string getCommandCategory() { return "Sequence Processing"; }
+
string getHelpString();
+ string getOutputPattern(string);
string getCitation() { return "http://www.mothur.org/wiki/Pcr.seqs"; }
string getDescription() { return "pcr.seqs"; }
vector<linePair> lines;
bool getOligos(vector<vector<string> >&, vector<vector<string> >&, vector<vector<string> >&);
bool abort, keepprimer, keepdots;
- string fastafile, oligosfile, taxfile, groupfile, namefile, ecolifile, outputDir, nomatch;
- int start, end, pdiffs, processors, length;
+ string fastafile, oligosfile, taxfile, groupfile, namefile, countfile, ecolifile, outputDir, nomatch;
+ int start, end, processors, length;
vector<string> revPrimer, outputNames;
vector<string> primers;
int readName(set<string>&);
int readGroup(set<string>);
int readTax(set<string>);
+ int readCount(set<string>);
bool readOligos();
bool readEcoli();
int driverPcr(string, string, string, set<string>&, linePair);
pDataArray->m->mothurOut("[ERROR]: seqs are not the same length as ecoli seq. When using ecoli option your sequences must be aligned and the same length as the ecoli sequence.\n"); pDataArray->m->control_pressed = true; break;
}else {
if (pDataArray->keepdots) {
- currSeq.filterToPos(start);
- currSeq.filterFromPos(end);
+ currSeq.filterToPos(pDataArray->start);
+ currSeq.filterFromPos(pDataArray->end);
}else {
- string seqString = currSeq.getAligned().substr(0, end);
- seqString = seqString.substr(start);
+ string seqString = currSeq.getAligned().substr(0, pDataArray->end);
+ seqString = seqString.substr(pDataArray->start);
currSeq.setAligned(seqString);
}
}
if (pDataArray->end != -1) {
if (pDataArray->end > currSeq.getAligned().length()) { pDataArray->m->mothurOut("[ERROR]: end is longer than your sequence length, aborting.\n"); pDataArray->m->control_pressed = true; break; }
else {
- if (pDataArray->keepdots) { currSeq.filterFromPos(end); }
+ if (pDataArray->keepdots) { currSeq.filterFromPos(pDataArray->end); }
else {
- string seqString = currSeq.getAligned().substr(0, end);
+ string seqString = currSeq.getAligned().substr(0, pDataArray->end);
currSeq.setAligned(seqString);
}
}
}
if (pDataArray->start != -1) {
- if (pDataArray->keepdots) { currSeq.filterToPos(start); }
+ if (pDataArray->keepdots) { currSeq.filterToPos(pDataArray->start); }
else {
- string seqString = currSeq.getAligned().substr(start);
+ string seqString = currSeq.getAligned().substr(pDataArray->start);
currSeq.setAligned(seqString);
}
}