]> git.donarmstrong.com Git - mothur.git/blobdiff - chimerauchimecommand.h
adds group parameter to chimera.uchime so you can check for chimeras with template...
[mothur.git] / chimerauchimecommand.h
index eb99cbfbc05562912119c1f85a70b2b1ac472205..1f86a98973ba8c88c20de4678866a70db35efe05 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "mothur.h"
 #include "command.hpp"
+#include "sequenceparser.h"
 
 /***********************************************************/
 
@@ -27,23 +28,39 @@ public:
        string getCommandCategory()             { return "Sequence Processing"; }
        string getHelpString(); 
        string getCitation() { return "uchime by Robert C. Edgar\nhttp://drive5.com/uchime\nThis code is donated to the public domain.\nhttp://www.mothur.org/wiki/Chimera.uchime\nEdgar,R.C., Haas,B.J., Clemente,J.C., Quince,C. and Knight,R. (2011), UCHIME improves sensitivity and speed of chimera detection, Bioinformatics, in press.\n"; }
+       string getDescription()         { return "detect chimeric sequences"; }
        
        int execute(); 
        void help() { m->mothurOut(getHelpString()); }          
        
 private:
+       struct linePair {
+               int start;
+               int end;
+               linePair(int i, int j) : start(i), end(j) {}
+       };
+       
        vector<int> processIDS;   //processid
-       int driver(string, string, string, string);
-       int createProcesses(string, string, string, string);
+       int driver(string, string, string, string, int&);
+       int createProcesses(string, string, string, string, int&);
                
        bool abort, useAbskew, chimealns, useMinH, useMindiv, useXn, useDn, useXa, useChunks, useMinchunk, useIdsmoothwindow, useMinsmoothid, useMaxp, skipgaps, skipgaps2, useMinlen, useMaxlen, ucl, useQueryfract;
-       string fastafile, templatefile, outputDir, namefile, abskew, minh, mindiv, xn, dn, xa, chunks, minchunk, idsmoothwindow, minsmoothid, maxp, minlen, maxlen, queryfract;
+       string fastafile, groupfile, templatefile, outputDir, namefile, abskew, minh, mindiv, xn, dn, xa, chunks, minchunk, idsmoothwindow, minsmoothid, maxp, minlen, maxlen, queryfract;
        int processors;
        
        vector<string> outputNames;
        vector<string> fastaFileNames;
        vector<string> nameFileNames;
+       vector<string> groupFileNames;
        
+       string getNamesFile(string&);
+       int readFasta(string, map<string, string>&);
+       int printFile(vector<seqPriorityNode>&, string);
+       int deconvoluteResults(SequenceParser&, string, string, string);
+       int driverGroups(SequenceParser&, string, string, string, string, int, int, vector<string>);
+       int createProcessesGroups(SequenceParser&, string, string, string, string, vector<string>);
+
+
 };
 
 /***********************************************************/