]> git.donarmstrong.com Git - mothur.git/blobdiff - pcrseqscommand.h
classify.seqs allows sequences to be in taxonomy file that are not in template. ...
[mothur.git] / pcrseqscommand.h
index 03092bca2a70da8428e77f5599e6ab200c2b8960..d35850ce74296fa4f4471927817becd21145dbee 100644 (file)
@@ -15,6 +15,7 @@
 #include "trimoligos.h"
 #include "alignment.hpp"
 #include "needlemanoverlap.hpp"
+#include "counttable.h"
 
 class PcrSeqsCommand : public Command {
 public:
@@ -25,6 +26,7 @@ public:
        vector<string> setParameters();
        string getCommandName()                 { return "pcr.seqs";    }
        string getCommandCategory()             { return "Sequence Processing";         }
+       string getOutputFileNameTag(string, string);
        string getHelpString(); 
        string getCitation() { return "http://www.mothur.org/wiki/Pcr.seqs"; }
        string getDescription()         { return "pcr.seqs"; }
@@ -44,8 +46,8 @@ private:
     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;
@@ -54,6 +56,7 @@ private:
     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);  
@@ -315,11 +318,11 @@ static DWORD WINAPI MyPcrThreadFunction(LPVOID lpParam){
                         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); 
                         }
                     }
@@ -331,17 +334,17 @@ static DWORD WINAPI MyPcrThreadFunction(LPVOID lpParam){
                         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); 
                             }
                         }