]> git.donarmstrong.com Git - mothur.git/blob - clusterfragmentscommand.h
changes while testing
[mothur.git] / clusterfragmentscommand.h
1 #ifndef CLUSTERFRAGMENTSCOMMAND_H
2 #define CLUSTERFRAGMENTSCOMMAND_H
3
4 /*
5  *  clusterfragmentscommand.h
6  *  Mothur
7  *
8  *  Created by westcott on 9/23/10.
9  *  Copyright 2010 Schloss Lab. All rights reserved.
10  *
11  */
12
13
14 #include "command.hpp"
15 #include "sequence.hpp"
16 #include "counttable.h"
17
18 /************************************************************/
19 struct seqRNode {
20         int numIdentical;
21         int length;
22         Sequence seq;
23         string names;
24         bool active;
25         seqRNode() {}
26         seqRNode(int n, Sequence s, string nm, int l) : numIdentical(n), seq(s), names(nm), active(1), length(l) {}
27         ~seqRNode() {}
28 };
29 /************************************************************/
30
31 class ClusterFragmentsCommand : public Command {
32         
33 public:
34         ClusterFragmentsCommand(string);
35         ClusterFragmentsCommand();
36         ~ClusterFragmentsCommand() {}
37         
38         vector<string> setParameters();
39         string getCommandName()                 { return "cluster.fragments";           }
40         string getCommandCategory()             { return "Sequence Processing";         }
41         
42         string getHelpString(); 
43     string getOutputPattern(string);    
44         string getCitation() { return "http://www.mothur.org/wiki/Cluster.fragments"; }
45         string getDescription()         { return "creates a namesfile with sequences that are a fragment of a larger sequence"; }
46         
47         int execute(); 
48         void help() { m->mothurOut(getHelpString()); }  
49         
50 private:
51     CountTable ct;
52         bool abort;
53         string fastafile, namefile, countfile, outputDir;
54         int diffs, percent;
55         vector<seqRNode> alignSeqs; 
56         map<string, string> names; //represents the names file first column maps to second column
57         map<string, int> sizes;  //this map a seq name to the number of identical seqs in the names file
58         map<string, int>::iterator itSize; 
59         vector<string> outputNames;
60         
61         int readFASTA();
62         void readNameFile();
63         void printData(string, string); //fasta filename, names file name
64         bool isFragment(string, string);
65         
66 };
67
68 /************************************************************/
69
70 #endif
71