#include "needlemanoverlap.hpp"
#include "blastalign.hpp"
#include "noalign.hpp"
-
+#include "trimoligos.h"
struct fastqRead {
vector<int> scores;
string getCommandName() { return "make.contigs"; }
string getCommandCategory() { return "Sequence Processing"; }
//commmand category choices: Sequence Processing, OTU-Based Approaches, Hypothesis Testing, Phylotype Analysis, General, Clustering and Hidden
- string getHelpString();
+ string getOutputFileNameTag(string, string);
+ string getHelpString();
string getCitation() { return "http://www.mothur.org/wiki/Make.contigs"; }
string getDescription() { return "description"; }
void help() { m->mothurOut(getHelpString()); }
private:
- bool abort;
- string outputDir, ffastqfile, rfastqfile, align;
+ bool abort, allFiles;
+ string outputDir, ffastqfile, rfastqfile, align, oligosfile;
float match, misMatch, gapOpen, gapExtend;
- int processors, longestBase, threshold;
+ int processors, longestBase, threshold, tdiffs, bdiffs, pdiffs, ldiffs, sdiffs;
vector<string> outputNames;
+ map<int, oligosPair> barcodes;
+ map<int, oligosPair> primers;
+ vector<string> linker;
+ vector<string> spacer;
+ vector<string> primerNameVector;
+ vector<string> barcodeNameVector;
+
+ map<string, int> groupCounts;
+ //map<string, int> combos;
+ //map<string, int> groupToIndex;
+ //vector<string> groupVector;
+
fastqRead readFastq(ifstream&);
vector< vector<string> > readFastqFiles(int&);
bool checkReads(fastqRead&, fastqRead&);
int createProcesses(vector< vector<string> >, string, string, string);
int driver(vector<string>, string, string, string);
+ bool getOligos(vector<vector<string> >&, vector<vector<string> >&);
+ string reverseOligo(string);
};
/**************************************************************************************************/
contigScores.push_back(scores1[ABaseMap[i]]);
if (scores1[ABaseMap[i]] < scores2[BBaseMap[i]]) { contigScores[i] = scores2[BBaseMap[i]]; }
}else if (((seq1[i] == '.') || (seq1[i] == '-')) && ((seq2[i] != '-') && (seq2[i] != '.'))) { //seq1 is a gap and seq2 is a base, choose seq2, unless quality score for base is below threshold. In that case eliminate base
- if (scores2[BBaseMap[i]] >= pDataArray->threshold)) {
+ if (scores2[BBaseMap[i]] >= pDataArray->threshold) {
contig += seq2[i];
contigScores.push_back(scores2[BBaseMap[i]]);
}