1 #ifndef Mothur_sffmultiplecommand_h
2 #define Mothur_sffmultiplecommand_h
5 // sffmultiplecommand.h
8 // Created by Sarah Westcott on 8/14/12.
9 // Copyright (c) 2012 Schloss Lab. All rights reserved.
12 #include "command.hpp"
13 #include "sffinfocommand.h"
14 #include "seqsummarycommand.h"
15 #include "trimflowscommand.h"
16 #include "shhhercommand.h"
17 #include "trimseqscommand.h"
19 class SffMultipleCommand : public Command {
22 SffMultipleCommand(string);
24 ~SffMultipleCommand(){}
26 vector<string> setParameters();
27 string getCommandName() { return "sff.multiple"; }
28 string getCommandCategory() { return "Sequence Processing"; }
30 string getHelpString();
31 string getOutputPattern(string);
32 string getCitation() { return "http://www.mothur.org/wiki/Sff.multiple"; }
33 string getDescription() { return "run multiple sff files through, sffinfo, trim.flow, shhh.flows and trim.seqs combining the results"; }
36 void help() { m->mothurOut(getHelpString()); }
43 linePair(int i, int j) : start(i), end(j) {}
46 string filename, outputDir, flowOrder, lookupFileName, minDelta;
47 vector<string> outputNames;
48 bool abort, trim, large, flip, allFiles, keepforward, append, makeGroup;
49 int maxFlows, minFlows, minLength, maxLength, maxHomoP, tdiffs, bdiffs, pdiffs, sdiffs, ldiffs;
50 int processors, maxIters, largeSize;
51 float signal, noise, cutoff, sigma;
52 int keepFirst, removeLast, maxAmbig;
54 int readFile(vector<string>& sffFiles, vector<string>& oligosFiles);
55 int createProcesses(vector<string> sffFiles, vector<string> oligosFiles, string, string, string);
56 int driver(vector<string> sffFiles, vector<string> oligosFiles, int start, int end, string, string, string);
57 int mergeOutputFileList(map<string, vector<string> >& files, map<string, vector<string> >& temp);