]> git.donarmstrong.com Git - mothur.git/blob - sffmultiplecommand.h
Merge remote-tracking branch 'mothur/master'
[mothur.git] / sffmultiplecommand.h
1 #ifndef Mothur_sffmultiplecommand_h
2 #define Mothur_sffmultiplecommand_h
3
4 //
5 //  sffmultiplecommand.h
6 //  Mothur
7 //
8 //  Created by Sarah Westcott on 8/14/12.
9 //  Copyright (c) 2012 Schloss Lab. All rights reserved.
10 //
11
12 #include "command.hpp"
13 #include "sffinfocommand.h"
14 #include "seqsummarycommand.h"
15 #include "trimflowscommand.h"
16 #include "shhhercommand.h"
17 #include "trimseqscommand.h"
18
19 class SffMultipleCommand : public Command {
20         
21 public:
22         SffMultipleCommand(string);
23         SffMultipleCommand();
24         ~SffMultipleCommand(){}
25         
26         vector<string> setParameters();
27         string getCommandName()                 { return "sff.multiple";                        }
28         string getCommandCategory()             { return "Sequence Processing";         }
29         string getOutputFileNameTag(string, string);
30         string getHelpString(); 
31         string getCitation() { return "http://www.mothur.org/wiki/Sff.multiple"; }
32         string getDescription()         { return "run multiple sff files through, sffinfo, trim.flow, shhh.flows and trim.seqs combining the results"; }
33     
34         int execute(); 
35         void help() { m->mothurOut(getHelpString()); }  
36         
37 private:
38     
39     struct linePair {
40                 int start;
41                 int end;
42                 linePair(int i, int j) : start(i), end(j) {}
43         };
44
45         string filename, outputDir, flowOrder, lookupFileName, minDelta;
46         vector<string> outputNames;
47         bool abort, trim, large, flip, allFiles, keepforward, append, makeGroup;
48         int maxFlows, minFlows, minLength, maxLength, maxHomoP, tdiffs, bdiffs, pdiffs, sdiffs, ldiffs;
49         int processors, maxIters, largeSize;
50         float signal, noise, cutoff, sigma;
51     int keepFirst, removeLast, maxAmbig;
52     
53     int readFile(vector<string>& sffFiles, vector<string>& oligosFiles);
54     int createProcesses(vector<string> sffFiles, vector<string> oligosFiles, string, string, string);
55     int driver(vector<string> sffFiles, vector<string> oligosFiles, int start, int end, string, string, string);
56     int mergeOutputFileList(map<string, vector<string> >& files, map<string, vector<string> >& temp);
57
58
59     
60 };
61
62 #endif