]> git.donarmstrong.com Git - mothur.git/blob - chimeraslayer.h
working on chimera change to add trim feature, fixed bug in print of distance file...
[mothur.git] / chimeraslayer.h
1 #ifndef CHIMERASLAYER_H
2 #define CHIMERASLAYER_H
3
4 /*
5  *  chimeraslayer.h
6  *  Mothur
7  *
8  *  Created by westcott on 9/25/09.
9  *  Copyright 2009 Schloss Lab. All rights reserved.
10  *
11  */
12
13
14 #include "chimera.h"
15 #include "maligner.h"
16 #include "slayer.h"
17
18
19
20 //***********************************************************************/
21 //This class was modeled after the chimeraSlayer written by the Broad Institute
22 /***********************************************************************/
23
24
25 class ChimeraSlayer : public Chimera {
26         
27         public:
28                 ChimeraSlayer(string, string, bool, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool);
29                 ChimeraSlayer(string, string, bool, string, string, string, int, int, int, int, float, int, int, int, int, int, int, int, int, bool);
30
31                 ~ChimeraSlayer();
32                 
33                 int getChimeras(Sequence*);
34                 Sequence* print(ostream&, ostream&);
35                 void printHeader(ostream&);
36                 int doPrep();
37                 
38                 #ifdef USE_MPI
39                 Sequence* print(MPI_File&, MPI_File&);
40                 #endif
41                 
42         private:
43                 Sequence* querySeq;
44                 Sequence* trimQuery;
45                 DeCalculator* decalc;
46                 map<int, int>  spotMap;
47                 Database* databaseRight;
48                 Database* databaseLeft;
49                 map<string, vector<string> > nameMapRank;  //sequence name to rank so you can construct a template of the abundant sequences if the user uses itself as template
50                 
51                 vector<data_struct>  chimeraResults;
52                 string chimeraFlags, searchMethod, fastafile, includeAbunds;
53                 bool realign, trimChimera;
54                 int window, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters, increment;
55                 float divR;
56         
57                 void printBlock(data_struct, string, ostream&);
58                 string getBlock(data_struct, string);
59                 int readNameFile(string);
60                 vector<Sequence*> getTemplate(Sequence*);
61                 
62 };
63
64 /************************************************************************/
65
66 #endif
67
68