]> git.donarmstrong.com Git - mothur.git/blob - slayer.h
Merge remote-tracking branch 'mothur/master'
[mothur.git] / slayer.h
1 #ifndef SLAYER_H
2 #define SLAYER_H
3 /*
4  *  slayer.h
5  *  Mothur
6  *
7  *  Created by westcott on 9/25/09.
8  *  Copyright 2009 Schloss Lab. All rights reserved.
9  *
10  */
11
12  
13 #include "sequence.hpp"
14 #include "chimera.h"
15
16 /***********************************************************************/
17 //This class was modeled after the chimeraSlayer written by the Broad Institute
18 /***********************************************************************/
19 struct snps { 
20         char queryChar;
21         char parentAChar;
22         char parentBChar;
23 };
24
25 /***********************************************************************/
26
27
28 class Slayer {
29
30         public:
31                 
32                 Slayer(int, int, int, float, int, int, int);
33                 ~Slayer() {};
34                 
35                 string getResults(Sequence, vector<Sequence>);
36                 vector<data_struct> getOutput()  {      return outputResults;                   }
37                 
38                                 
39         private:
40                 
41                 int windowSize, windowStep, parentFragmentThreshold, iters, percentSNPSample, minBS;
42                 float divRThreshold; 
43                 vector<data_struct>  outputResults;
44                 vector< map<int, int> > baseSpots;
45                 Sequence myQuery;
46                 
47                 map<int, int> verticalFilter(Sequence&, Sequence&, Sequence&);
48                 float computePercentID(string, string, int, int);
49                 
50                 vector<data_struct> runBellerophon(Sequence, Sequence, Sequence, map<int, int>&);
51                 vector<snps> getSNPS(string, string, string, int, int);
52                 int bootstrapSNPS(vector<snps>, vector<snps>, float&, float&, int);
53                 float snpQA(vector<snps>);
54                 float snpQB(vector<snps>);
55                 float snpAB(vector<snps>);
56                 MothurOut* m;
57                                 
58 };
59
60 /***********************************************************************/
61
62 #endif
63
64