struct seqPNode {
int numIdentical;
Sequence seq;
+ string names;
+ bool active;
seqPNode() {}
- seqPNode(int s, Sequence q) : numIdentical(s), seq(q) {}
+ seqPNode(int n, Sequence s, string nm) : numIdentical(n), seq(s), names(nm), active(1) {}
~seqPNode() {}
};
/************************************************************/
class PreClusterCommand : public Command {
public:
- PreClusterCommand(string);
+ PreClusterCommand(string);
+ PreClusterCommand();
~PreClusterCommand();
+ vector<string> getRequiredParameters();
+ vector<string> getValidParameters();
+ vector<string> getRequiredFiles();
+ map<string, vector<string> > getOutputFiles() { return outputTypes; }
int execute();
void help();
private:
int diffs, length;
bool abort;
- string fastafile, namefile;
+ string fastafile, namefile, outputDir;
vector<seqPNode> alignSeqs; //maps the number of identical seqs to a sequence
map<string, string> names; //represents the names file first column maps to second column
map<string, int> sizes; //this map a seq name to the number of identical seqs in the names file
- map<string, bool> active; //maps sequence name to whether it has already been merged or not.
+ map<string, int>::iterator itSize;
+// map<string, bool> active; //maps sequence name to whether it has already been merged or not.
+ vector<string> outputNames;
+ map<string, vector<string> > outputTypes;
- int readSeqs();
- int calcMisMatches(string, string);
+ int readFASTA();
void readNameFile();
+ //int readNamesFASTA();
+ int calcMisMatches(string, string);
void printData(string, string); //fasta filename, names file name
};